irwan-runtuwene/id-payroll-calculator
Composer 安装命令:
composer require irwan-runtuwene/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 HPP 2021
- 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 irwan-runtuwene/id-payroll-calculator
Penggunaan
use IrwanRuntuwene\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 tunjangan karyawan yang tidak dipotong pajak $payrollCalculator->employee->nonTaxAllowances->offsetSet('fasilitas', 2750000); // 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 pinjaman karyawan $payrollCalculator->employee->loans->offsetSet('pinjamanKaryawan', 1000000); // NOTE: Jumlah pinjaman 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
Credits
Repo ini merukapan forking dari https://github.com/steevenz/id-payroll-calculator
Terima kasih kepada Steeven Andrian Salim untuk code awal yang cemerlang.
Bugs and Issues
Jika anda menemukan bugs atau issue, anda dapat mempostingnya di Github Issues.
Requirements
- PHP 7.2+
- Composer
- O2System Spl
irwan-runtuwene/id-payroll-calculator 适用场景与选型建议
irwan-runtuwene/id-payroll-calculator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 80 次下载、GitHub Stars 达 1, 最近一次更新时间为 2022 年 08 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「id-payroll-calculator」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 irwan-runtuwene/id-payroll-calculator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 irwan-runtuwene/id-payroll-calculator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 irwan-runtuwene/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+
统计信息
- 总下载量: 80
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-08-21