meita/wps
最新稳定版本:1.0.1
Composer 安装命令:
composer require meita/wps
包简介
Saudi WPS payroll protection file generator with multi-bank support (Al Rajhi, Riyad, AlAhli, Alinma, ANB) for any PHP or Laravel project.
README 文档
README
PHP/Laravel package that generates Saudi WPS payroll files with multi-bank support (Al Rajhi, Riyad, SNB AlAhli, Alinma, ANB). All classes live under the Meita\Wps namespace.
Requirements
- PHP 8.1+
- Works in any PHP app or Laravel project.
Installation
composer require meita/wps
Quick start (PHP)
use Meita\Wps\Adapters\{AlRajhiAdapter, RiyadAdapter, AlAhliAdapter, AlinmaAdapter, ArabNationalBankAdapter}; use Meita\Wps\BankAdapterRegistry; use Meita\Wps\PayrollProtectionManager; use Meita\Wps\DTO\{Payment, PaymentBatch}; $registry = new BankAdapterRegistry([ 'alrajhi' => new AlRajhiAdapter(), 'riyad' => new RiyadAdapter(), 'alahli' => new AlAhliAdapter(), 'alinma' => new AlinmaAdapter(), 'anb' => new ArabNationalBankAdapter(), ]); $batch = new PaymentBatch( companyId: '1234567890', companyName: 'Meita LLC', payrollMonth: '2024-05', payments: [ new Payment('EMP-1', 'Ali Saleh', '1010101010', 'SA123...', 5500.75), new Payment('EMP-2', 'Sara Ahmed', '2020202020', 'SA456...', 4300.00, notes: 'Commission included'), ], reference: 'MAY-24', contactEmail: 'payroll@meita.sa' ); $manager = new PayrollProtectionManager($registry); $file = $manager->generate('alrajhi', $batch); file_put_contents($file->filename, $file->content);
Laravel usage
- The service provider auto-registers the default adapters and binds
PayrollProtectionManager. - Example:
use Meita\Wps\PayrollProtectionManager; use Meita\Wps\DTO\{Payment, PaymentBatch}; $batch = /* build your PaymentBatch */; $file = app(PayrollProtectionManager::class)->generate('riyad', $batch); Storage::put(\"wps/{$file->filename}\", $file->content);
- To override or add adapters, bind your own
BankAdapterRegistryin a service provider before resolvingPayrollProtectionManager.
Adding a custom bank adapter
- Extend
Meita\Wps\Adapters\AbstractDelimitedAdapter. - Implement
key(),bankName(),header()(optional), andfields()to shape each row. - Register the adapter in
BankAdapterRegistry(either manually or via a Laravel service provider).
Supported adapters
alrajhiriyadalahli(SNB)alinmaanb
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-15