Fixed recurring invoices client balance

This commit is contained in:
Hillel Coren 2014-08-31 22:01:20 +03:00
parent 9ca974e49e
commit 77b055aff8

View File

@ -119,7 +119,7 @@ class Activity extends Eloquent
$adjustment = 0; $adjustment = 0;
$client = $invoice->client; $client = $invoice->client;
if (!$invoice->is_quote) if (!$invoice->is_quote && !$invoice->is_recurring)
{ {
$adjustment = $invoice->amount; $adjustment = $invoice->amount;
$client->balance = $client->balance + $adjustment; $client->balance = $client->balance + $adjustment;
@ -170,11 +170,12 @@ class Activity extends Eloquent
public static function updateInvoice($invoice) public static function updateInvoice($invoice)
{ {
$client = $invoice->client;
if ($invoice->is_deleted && !$invoice->getOriginal('is_deleted')) if ($invoice->is_deleted && !$invoice->getOriginal('is_deleted'))
{ {
if (!$invoice->is_quote) if (!$invoice->is_quote && !$invoice->is_recurring)
{ {
$client = $invoice->client;
$client->balance = $client->balance - $invoice->balance; $client->balance = $client->balance - $invoice->balance;
$client->paid_to_date = $client->paid_to_date - ($invoice->amount - $invoice->balance); $client->paid_to_date = $client->paid_to_date - ($invoice->amount - $invoice->balance);
$client->save(); $client->save();
@ -198,11 +199,13 @@ class Activity extends Eloquent
return; return;
} }
$backupInvoice = Invoice::with('invoice_items', 'client.account', 'client.contacts')->find($invoice->id); $backupInvoice = Invoice::with('invoice_items', 'client.account', 'client.contacts')->find($invoice->id);
$client = $invoice->client; if (!$invoice->is_quote && !$invoice->is_recurring)
$client->balance = $client->balance + $diff; {
$client->save(); $client->balance = $client->balance + $diff;
$client->save();
}
$activity = Activity::getBlank($invoice); $activity = Activity::getBlank($invoice);
$activity->client_id = $invoice->client_id; $activity->client_id = $invoice->client_id;
@ -210,7 +213,7 @@ class Activity extends Eloquent
$activity->activity_type_id = $invoice->is_quote ? ACTIVITY_TYPE_UPDATE_QUOTE : ACTIVITY_TYPE_UPDATE_INVOICE; $activity->activity_type_id = $invoice->is_quote ? ACTIVITY_TYPE_UPDATE_QUOTE : ACTIVITY_TYPE_UPDATE_INVOICE;
$activity->message = Utils::encodeActivity(Auth::user(), 'updated', $invoice); $activity->message = Utils::encodeActivity(Auth::user(), 'updated', $invoice);
$activity->balance = $client->balance; $activity->balance = $client->balance;
$activity->adjustment = $invoice->is_quote ? 0 : $diff; $activity->adjustment = $invoice->is_quote || $invoice->is_recurring ? 0 : $diff;
$activity->json_backup = $backupInvoice->hidePrivateFields()->toJSON(); $activity->json_backup = $backupInvoice->hidePrivateFields()->toJSON();
$activity->save(); $activity->save();
} }