mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Fixes for invoice invitation creation (#3370)
* Working on invoice invitations * Fixes for invitation creation
This commit is contained in:
parent
8121a0166d
commit
08b4c4f4e1
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user