Fixes for invoice invitation creation (#3370)

* Working on invoice invitations

* Fixes for invitation creation
This commit is contained in:
David Bomba 2020-02-25 09:00:28 +11:00 committed by GitHub
parent 8121a0166d
commit 08b4c4f4e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 5 deletions

View File

@ -61,6 +61,25 @@ class StoreInvoiceRequest extends Request
}
if(isset($input['invitations']))
{
foreach($input['invitations'] as $key => $value)
{
if(isset($input['invitations'][$key]['id']) && is_numeric($input['invitations'][$key]['id']))
unset($input['invitations'][$key]['id']);
if(isset($input['invitations'][$key]['id']) && is_string($input['invitations'][$key]['id']))
$input['invitations'][$key]['id'] = $this->decodePrimaryKey($input['invitations'][$key]['id']);
if(is_string($input['invitations'][$key]['client_contact_id']))
$input['invitations'][$key]['client_contact_id'] = $this->decodePrimaryKey($input['invitations'][$key]['client_contact_id']);
}
}
$input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
//$input['line_items'] = json_encode($input['line_items']);
$this->replace($input);

View File

@ -53,6 +53,25 @@ class UpdateInvoiceRequest extends Request
$input['client_id'] = $this->decodePrimaryKey($input['client_id']);
}
if(isset($input['invitations']))
{
foreach($input['invitations'] as $key => $value)
{
if(is_numeric($input['invitations'][$key]['id']))
unset($input['invitations'][$key]['id']);
if(is_string($input['invitations'][$key]['id']))
$input['invitations'][$key]['id'] = $this->decodePrimaryKey($input['invitations'][$key]['id']);
if(is_string($input['invitations'][$key]['client_contact_id']))
$input['invitations'][$key]['client_contact_id'] = $this->decodePrimaryKey($input['invitations'][$key]['client_contact_id']);
}
}
$input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
$this->replace($input);

View File

@ -68,12 +68,12 @@ class InvoiceRepository extends BaseRepository {
/* Get array of Keys which have been removed from the invitations array and soft delete each invitation */
$invoice->invitations->pluck('key')->diff($invitations->pluck('key'))->each(function ($invitation) {
$invite = $this->getInvitationByKey($invitation);
$invite = $this->getInvitationByKey($invitation);
if($invite)
$invite->forceDelete();
if($invite)
$invite->forceDelete();
});
});
foreach ($data['invitations'] as $invitation) {
$inv = false;
@ -91,15 +91,19 @@ class InvoiceRepository extends BaseRepository {
$new_invitation = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id);
//$new_invitation->fill($invitation);
$new_invitation->invoice_id = $invoice->id;
$new_invitation->client_contact_id = $this->decodePrimaryKey($invitation['client_contact_id']);
$new_invitation->client_contact_id = $invitation['client_contact_id'];
$new_invitation->save();
}
}
}
$invoice->load('invitations');
/* If no invitations have been created, this is our fail safe to maintain state*/
if ($invoice->invitations->count() == 0) {
\Log::error('making invitations');
$invoice->service()->createInvitations();
}