feat: simplify pay method in PayrollPeriodService by removing cash transaction handling

This commit is contained in:
Yoga Pangestu 2026-08-15 14:02:21 +07:00
parent 4758b19d2a
commit 0d1e6ba1fe

View File

@ -3,21 +3,18 @@
namespace App\Services\Admin\Finance\Payroll;
use App\Concerns\HasRoleChecks;
use App\Enums\CashTransactionType;
use App\Enums\PayrollPeriodStatus;
use App\Enums\PayrollStatus;
use App\Enums\Role;
use App\Models\Payroll;
use App\Models\PayrollPeriod;
use App\Services\Concerns\HandlesCashTransactions;
use App\Services\NotificationService;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Illuminate\Validation\ValidationException;
class PayrollPeriodService
{
use HandlesCashTransactions, HasRoleChecks;
use HasRoleChecks;
public function paginated(int $perPage = 25, string $search = '', string $sort = 'created_at', string $direction = 'desc', array $filters = [], ?int $highlight = null): LengthAwarePaginator
{
@ -126,22 +123,11 @@ public function pay(Payroll $payroll): Payroll
]);
}
$payroll = DB::transaction(function () use ($payroll) {
$cashTransaction = $this->debitCash(
amount: $payroll->total_amount,
description: 'Pembayaran gaji karyawan',
type: CashTransactionType::EXPENSE,
);
$payroll->update([
'status' => PayrollStatus::PAID,
'cash_transaction_id' => $cashTransaction->id,
'paid_by_id' => auth()->id(),
'paid_at' => now(),
]);
return $payroll;
});
$payroll->update([
'status' => PayrollStatus::PAID,
'paid_by_id' => auth()->id(),
'paid_at' => now(),
]);
$employeeUser = $payroll->employee->user ?? null;