feat: simplify pay method in PayrollPeriodService by removing cash transaction handling
This commit is contained in:
parent
4758b19d2a
commit
0d1e6ba1fe
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user