- Menambahkan `AccountBalanceService` dengan transaksi PostgreSQL dan proper error handling. - Implementasi `BalanceServiceProvider` untuk mendukung dependency injection pattern. - Registrasi `BalanceServiceProvider` dalam `WebstatementServiceProvider`. - Penambahan `CAST` ke `DECIMAL(15,2)` untuk kompatibilitas PostgreSQL. - Perhitungan balance summary mencakup opening balance dan closing balance. - Agregasi transaksi dengan type casting yang aman. - Implementasi database transaction handling dengan mekanisme rollback dan commit. - Logging komprehensif untuk debugging dan audit trail. - Mendukung balance inquiry berdasarkan tanggal maupun periode tertentu. - Validasi akun dengan pengecekan `exists` untuk memastikan data valid.
32 lines
673 B
PHP
32 lines
673 B
PHP
<?php
|
|
|
|
namespace Modules\Webstatement\Providers;
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Modules\Webstatement\Services\AccountBalanceService;
|
|
|
|
class BalanceServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register the service provider.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register(): void
|
|
{
|
|
$this->app->singleton(AccountBalanceService::class, function ($app) {
|
|
return new AccountBalanceService();
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Get the services provided by the provider.
|
|
*
|
|
* @return array<string>
|
|
*/
|
|
public function provides(): array
|
|
{
|
|
return [AccountBalanceService::class];
|
|
}
|
|
}
|