承接 meita/wps 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 BankAdapterRegistry in a service provider before resolving PayrollProtectionManager.

Adding a custom bank adapter

  1. Extend Meita\Wps\Adapters\AbstractDelimitedAdapter.
  2. Implement key(), bankName(), header() (optional), and fields() to shape each row.
  3. Register the adapter in BankAdapterRegistry (either manually or via a Laravel service provider).

Supported adapters

  • alrajhi
  • riyad
  • alahli (SNB)
  • alinma
  • anb

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-15