Fix for 500 on updating quote by removing contacts

This commit is contained in:
David Bomba 2021-01-25 21:54:36 +11:00
parent 6540a25531
commit f950f84b61
3 changed files with 15 additions and 56 deletions

View File

@ -32,51 +32,6 @@ class StoreQuoteRequest extends Request
return auth()->user()->can('create', Quote::class); return auth()->user()->can('create', Quote::class);
} }
protected function prepareForValidation()
{
$input = $this->all();
if (array_key_exists('design_id', $input) && is_string($input['design_id'])) {
$input['design_id'] = $this->decodePrimaryKey($input['design_id']);
}
if ($input['client_id']) {
$input['client_id'] = $this->decodePrimaryKey($input['client_id']);
}
if (array_key_exists('assigned_user_id', $input) && is_string($input['assigned_user_id'])) {
$input['assigned_user_id'] = $this->decodePrimaryKey($input['assigned_user_id']);
}
if (isset($input['client_contacts'])) {
foreach ($input['client_contacts'] as $key => $contact) {
if (! array_key_exists('send_email', $contact) || ! array_key_exists('id', $contact)) {
unset($input['client_contacts'][$key]);
}
}
}
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);
}
public function rules() public function rules()
{ {
$rules = []; $rules = [];
@ -98,4 +53,17 @@ class StoreQuoteRequest extends Request
return $rules; return $rules;
} }
protected function prepareForValidation()
{
$input = $this->all();
$input = $this->decodePrimaryKeys($input);
$input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
$input['amount'] = 0;
$input['balance'] = 0;
$this->replace($input);
}
} }

View File

@ -59,22 +59,12 @@ class UpdateQuoteRequest extends Request
{ {
$input = $this->all(); $input = $this->all();
if (array_key_exists('design_id', $input) && is_string($input['design_id'])) { $input = $this->decodePrimaryKeys($input);
$input['design_id'] = $this->decodePrimaryKey($input['design_id']);
}
if (isset($input['client_id'])) {
$input['client_id'] = $this->decodePrimaryKey($input['client_id']);
}
if (isset($input['line_items'])) { if (isset($input['line_items'])) {
$input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : []; $input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : [];
} }
if (array_key_exists('assigned_user_id', $input) && is_string($input['assigned_user_id'])) {
$input['assigned_user_id'] = $this->decodePrimaryKey($input['assigned_user_id']);
}
if (array_key_exists('documents', $input)) { if (array_key_exists('documents', $input)) {
unset($input['documents']); unset($input['documents']);
} }

View File

@ -41,6 +41,7 @@ class CreateInvitations
$invitation = QuoteInvitation::whereCompanyId($this->quote->company_id) $invitation = QuoteInvitation::whereCompanyId($this->quote->company_id)
->whereClientContactId($contact->id) ->whereClientContactId($contact->id)
->whereQuoteId($this->quote->id) ->whereQuoteId($this->quote->id)
->withTrashed()
->first(); ->first();
if (! $invitation && $contact->send_email) { if (! $invitation && $contact->send_email) {