Client Paid To Date updates

This commit is contained in:
David Bomba 2022-09-05 11:51:47 +10:00
parent 78d8820dae
commit ccf8aa1dea
2 changed files with 40 additions and 8 deletions

View File

@ -84,23 +84,23 @@ class PaymentRepository extends BaseRepository {
$data['amount'] = array_sum(array_column($data['invoices'], 'amount')); $data['amount'] = array_sum(array_column($data['invoices'], 'amount'));
} }
// $client->service()->updatePaidToDate($data['amount'])->save(); $client->service()->updatePaidToDate($data['amount'])->save();
$client->paid_to_date += $data['amount']; // $client->paid_to_date += $data['amount'];
$client->save(); $client->save();
} }
else{ else{
//this fixes an edge case with unapplied payments //this fixes an edge case with unapplied payments
// $client->service()->updatePaidToDate($data['amount'])->save(); $client->service()->updatePaidToDate($data['amount'])->save();
$client->paid_to_date += $data['amount']; // $client->paid_to_date += $data['amount'];
$client->save(); $client->save();
} }
if (array_key_exists('credits', $data) && is_array($data['credits']) && count($data['credits']) > 0) { if (array_key_exists('credits', $data) && is_array($data['credits']) && count($data['credits']) > 0) {
$_credit_totals = array_sum(array_column($data['credits'], 'amount')); $_credit_totals = array_sum(array_column($data['credits'], 'amount'));
// $client->service()->updatePaidToDate($_credit_totals)->save(); $client->service()->updatePaidToDate($_credit_totals)->save();
$client->paid_to_date += $_credit_totals; // $client->paid_to_date += $_credit_totals;
$client->save(); $client->save();
} }

View File

@ -28,14 +28,46 @@ class ClientService
public function updateBalance(float $amount) public function updateBalance(float $amount)
{ {
$this->client->balance += $amount; // $this->client->balance += $amount;
\DB::connection(config('database.default'))->transaction(function () use($amount) {
$this->client = Client::where('id', $this->client->id)->lockForUpdate()->first();
$this->client->balance += $amount;
$this->client->save();
}, 2);
return $this;
}
public function updateBalanceAndPaidToDate(float $balance, float $paid_to_date)
{
// $this->client->balance += $amount;
\DB::connection(config('database.default'))->transaction(function () use($amount) {
$this->client = Client::where('id', $this->client->id)->lockForUpdate()->first();
$this->client->balance += $balance;
$this->client->paid_to_date += $paid_to_date;
$this->client->save();
}, 2);
return $this; return $this;
} }
public function updatePaidToDate(float $amount) public function updatePaidToDate(float $amount)
{ {
$this->client->paid_to_date += $amount; // $this->client->paid_to_date += $amount;
\DB::connection(config('database.default'))->transaction(function () use($amount) {
$this->client = Client::where('id', $this->client->id)->lockForUpdate()->first();
$this->client->paid_to_date += $amount;
$this->client->save();
}, 2);
return $this; return $this;
} }