Merge pull request #3865 from turbo124/v2

Fixes for Payment Repo
This commit is contained in:
David Bomba 2020-06-30 13:31:54 +10:00 committed by GitHub
commit 4bcab0d0d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 709 additions and 700 deletions

View File

@ -192,6 +192,11 @@ class BaseRepository
*/
protected function alternativeSave($data, $model)
{
$new_entity = false;
if(!$model->id)
$new_entity = true;
$class = new ReflectionClass($model);
if (array_key_exists('client_id', $data)) {
@ -205,9 +210,7 @@ class BaseRepository
$lcfirst_resource_id = lcfirst($resource) . '_id';
if ($class->name == Invoice::class || $class->name == Quote::class) {
info("class name = invoice");
$state['starting_amount'] = $model->amount;
info("starting amount = {$model->amount}");
}
if (!$model->id) {
@ -231,6 +234,9 @@ class BaseRepository
$model->fill($tmp_data);
$model->save();
if($new_entity)
$this->newEntityEvent($model);
if (array_key_exists('documents', $data)) {
$this->saveDocuments($data['documents'], $model);
}
@ -270,7 +276,7 @@ class BaseRepository
{
$new_invitation = $invitation_factory_class::create($model->company_id, $model->user_id);
$new_invitation->{$lcfirst_resource_id} = $model->id;
$new_invitation->client_contact_id = $invitation['client_contact_id'];
$new_invitation->client_contact_id = $contact->id;
$new_invitation->save();
}
}
@ -305,8 +311,6 @@ class BaseRepository
if(!$model->design_id)
$model->design_id = $this->decodePrimaryKey($client->getSetting('invoice_design_id'));
info("model design id = {$model->design_id}");
event(new InvoiceWasUpdated($model, $model->company));
}
@ -329,4 +333,16 @@ class BaseRepository
return $model->fresh();
}
public function newEntityEvent($model)
{
$className = $this->getEventClass($entity, 'Created');
if (class_exists($className)) {
event(new $className($model, $model->company));
}
}
}

View File

@ -115,20 +115,13 @@ class PaymentRepository extends BaseRepository
foreach ($data['invoices'] as $paid_invoice) {
$invoice = Invoice::whereId($paid_invoice['invoice_id'])->with('client')->first();
info("current client balance = {$invoice->client->balance}");
$invoice = Invoice::whereId($paid_invoice['invoice_id'])->first();
if ($invoice) {
info("apply payment amount {$paid_invoice['amount']}");
$invoice = $invoice->service()->markSent()->applyPayment($payment, $paid_invoice['amount'])->save();
info("after processing invoice the client balance is now {$invoice->client->balance}");
}
}
} else {

1374
package-lock.json generated

File diff suppressed because it is too large Load Diff