steevenz/id-payroll-calculator
Composer 安装命令:
composer require steevenz/id-payroll-calculator
包简介
Indonesian Employee Payroll Calculator
README 文档
README
Ini merupakan PHP Component pembantu proses perhitungan gaji yang disesuaikan dengan peraturan-peraturan yang berlaku di Indonesia.
Fitur
- Perhitungan PPH21
- Perhitungan PPH23
- Perhitungan PPH26
- Perhitungan Perpajakan Bonus dan Tunjangan Hari Raya
- Perhitungan Overtime sesuai ketentuan
- Perhitungan Split Shift
Referensi
Instalasi
Cara terbaik untuk melakukan instalasi library ini adalah dengan menggunakan Composer
composer require steevenz/id-payroll-calculator
Penggunaan
use Steevenz\IndonesiaPayrollCalculator\PayrollCalculator; // Inisiasi class PayrollCalculator $payrollCalculator = new PayrollCalculator(); // Khusus Perhitungan PPH 21 ------- // Calculation method $payrollCalculator->method = PayrollCalculator::NETT_CALCULATION; // Tax Number $payrollCalculator->taxNumber = 21; // Set data karyawan $payrollCalculator->employee->permanentStatus = true; // Tetap (true), Tidak Tetap (false), secara default sudah terisi nilai true. $payrollCalculator->employee->maritalStatus = true; // Menikah (true), Tidak Menikah/Single (false), secara default sudah terisi nilai false. $payrollCalculator->employee->hasNPWP = true; // Secara default sudah terisi nilai true. Jika tidak memiliki npwp akan dikenakan potongan tambahan 20% $payrollCalculator->employee->numOfDependentsFamily = 0; // Jumlah tanggungan, max 5 jika lebih akan dikenakan tambahannya perorang sesuai ketentuan BPJS Kesehatan // Set data pendapatan karyawan $payrollCalculator->employee->earnings->base = 8000000; // Besaran nilai gaji pokok/bulan $payrollCalculator->employee->earnings->fixedAllowance = 0; // Besaran nilai tunjangan tetap $payrollCalculator->employee->calculateHolidayAllowance = 0; // jumlah bulan proporsional // NOTE: besaran nilai diatas bukan nilai hasil proses perhitungan absensi tetapi nilai default sebagai faktor perhitungan gaji. // Set data kehadiran karyawan $payrollCalculator->employee->presences->workDays = 25; // jumlah hari masuk kerja $payrollCalculator->employee->presences->overtime = 2; // perhitungan jumlah lembur dalam satuan jam $payrollCalculator->employee->presences->latetime = 0; // perhitungan jumlah keterlambatan dalam satuan jam $payrollCalculator->employee->presences->travelDays = 0; // perhitungan jumlah hari kepergian dinas $payrollCalculator->employee->presences->indisposedDays = 0; // perhitungan jumlah hari sakit yang telah memiliki surat dokter $payrollCalculator->employee->presences->absentDays = 0; // perhitungan jumlah hari alpha $payrollCalculator->employee->presences->splitShifts = 0; // perhitungan jumlah split shift // Set data tunjangan karyawan diluar tunjangan BPJS Kesehatan dan Ketenagakerjaan $payrollCalculator->employee->allowances->offsetSet('tunjanganMakan', 100000); // NOTE: Jumlah allowances tidak ada batasan // Set data potongan karyawan diluar potongan BPJS Kesehatan dan Ketenagakerjaan $payrollCalculator->employee->deductions->offsetSet('kasbon', 100000); // NOTE: Jumlah deductions tidak ada batasan // Set data bonus karyawan diluar tunjangan $payrollCalculator->employee->bonus->offsetSet('serviceCharge', 100000); // NOTE: Jumlah bonus tidak ada batasan // Set data ketentuan negara $payrollCalculator->provisions->state->overtimeRegulationCalculation = true; // Jika false maka akan dihitung sesuai kebijakan perusahaan $payrollCalculator->provisions->state->provinceMinimumWage = 3940972; // Ketentuan UMP sesuai propinsi lokasi perusahaan // Set data ketentuan perusahaan $payrollCalculator->provisions->company->numOfWorkingDays = 25; // Jumlah hari kerja dalam satu bulan $payrollCalculator->provisions->company->numOfWorkingHours = 8; // Jumlah hari kerja dalam satu hari $payrollCalculator->provisions->company->calculateOvertime = true; // Apakah perusahaan menghitung lembur // Jika $payrollCalculator->provisions->state->overtimeRegulationCalculation = false; $payrollCalculator->provisions->company->overtimeRate = 10000 // Nilai rate overtime per jam, Jika bernilai 0 namun $payrollCalculator->provisions->company->calculateOvertime, maka rate akan dihitung secara otomatis berdasarkan renumerasi besaran gaji, hari dan jam kerja $payrollCalculator->provisions->company->calculateSplitShifts = true; // Apakah perusahan menghitung split shifts $payrollCalculator->provisions->company->splitShiftsRate = 25000; // Rate Split Shift perusahaan $payrollCalculator->provisions->company->calculateBPJSKesehatan = true; // Apakah perusahaan menyediakan BPJS Kesehatan / tidak untuk orang tersebut // Apakah perusahaan menyediakan BPJS Ketenagakerjaan / tidak untuk orang tersebut $payrollCalculator->provisions->company->JKK = true; $payrollCalculator->provisions->company->JKM = true; $payrollCalculator->provisions->company->JHT = true; $payrollCalculator->provisions->company->JIP = true; $payrollCalculator->provisions->company->riskGrade = 2; // Golongan resiko ketenagakerjaan, umumnya 2 $payrollCalculator->provisions->company->absentPenalty = 55000; // Perhitungan nilai potongan gaji/hari sebagai penalty. $payrollCalculator->provisions->company->latetimePenalty = 100000; // Perhitungan nilai keterlambatan sebagai penalty. // Mengambil hasil perhitungan $payrollCalculator->getCalculation(); // Berupa SplArrayObject yang berisi seluruh data perhitungan gaji, lengkap dengan perhitungan BPJS dan PPh21 // Khusus Perhitungan PPH 23 ------- $payrollCalculator->taxNumber = 23; $payrollCalculator->employee->hasNPWP = true; $payrollCalculator->employee->earnings->base = 8000000; // Khusus Perhitungan PPH 26 ------- $payrollCalculator->taxNumber = 26; $payrollCalculator->employee->hasNPWP = true; $payrollCalculator->employee->earnings->base = 8000000; // Mengambil hasil perhitungan $payrollCalculator->getCalculation(); // Berupa SplArrayObject yang berisi lengkap dengan perhitungan pajak
Untuk keterangan lebih lengkap dapat dibaca di Wiki
Ide, Kritik dan Saran
Jika anda memiliki ide, kritik ataupun saran, anda dapat mengirimkan email ke steevenz@stevenz.com. Anda juga dapat mengunjungi situs pribadi saya di steevenz.com
Bugs and Issues
Jika anda menemukan bugs atau issue, anda dapat mempostingnya di Github Issues.
Requirements
- PHP 7.2+
- Composer
- O2System Spl
steevenz/id-payroll-calculator 适用场景与选型建议
steevenz/id-payroll-calculator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 550 次下载、GitHub Stars 达 21, 最近一次更新时间为 2019 年 05 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「id-payroll-calculator」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 steevenz/id-payroll-calculator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 steevenz/id-payroll-calculator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 steevenz/id-payroll-calculator 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
Indonesian Employee Payroll Calculator
A lightweight plain-PHP framework for database-backed CRUD APIs.
Modern, strongly-typed, PSR-compliant PHP client for the WeFact v2 API.
PHP SDK for the Enconvert file conversion API
支付宝开放平台v3协议文档,支持最新版PHP8+
统计信息
- 总下载量: 550
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 22
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-05-08