diff --git a/app/Http/Requests/Invoice/UpdateInvoiceRequest.php b/app/Http/Requests/Invoice/UpdateInvoiceRequest.php index 21195c7a7ebd..797821c60c93 100644 --- a/app/Http/Requests/Invoice/UpdateInvoiceRequest.php +++ b/app/Http/Requests/Invoice/UpdateInvoiceRequest.php @@ -14,6 +14,7 @@ namespace App\Http\Requests\Invoice; use App\Http\Requests\Request; use App\Http\ValidationRules\Invoice\InvoiceBalanceSanity; use App\Http\ValidationRules\Invoice\LockedInvoiceRule; +use App\Http\ValidationRules\Project\ValidProjectForClient; use App\Models\Invoice; use App\Utils\Traits\ChecksEntityStatus; use App\Utils\Traits\CleanLineItems; @@ -59,6 +60,7 @@ class UpdateInvoiceRequest extends Request $rules['line_items'] = 'array'; $rules['discount'] = 'sometimes|numeric'; + $rules['project_id'] = ['bail', 'sometimes', new ValidProjectForClient($this->all())]; // if($this->input('status_id') != Invoice::STATUS_DRAFT) // $rules['balance'] = new InvoiceBalanceSanity($this->invoice, $this->all()); diff --git a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php index 430ab1f1055b..93af56563ac6 100644 --- a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\RecurringInvoice; use App\Http\Requests\Request; +use App\Http\ValidationRules\Project\ValidProjectForClient; use App\Http\ValidationRules\Recurring\UniqueRecurringInvoiceNumberRule; use App\Models\Client; use App\Models\RecurringInvoice; @@ -55,6 +56,8 @@ class StoreRecurringInvoiceRequest extends Request $rules['frequency_id'] = 'required|integer|digits_between:1,12'; + $rules['project_id'] = ['bail', 'sometimes', new ValidProjectForClient($this->all())]; + $rules['number'] = new UniqueRecurringInvoiceNumberRule($this->all()); return $rules; @@ -80,6 +83,11 @@ class StoreRecurringInvoiceRequest extends Request $input['vendor_id'] = $this->decodePrimaryKey($input['vendor_id']); } + if (array_key_exists('project_id', $input) && is_string($input['project_id'])) { + $input['project_id'] = $this->decodePrimaryKey($input['project_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)) { diff --git a/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php index d0c415056c98..eda41fd1da8d 100644 --- a/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\RecurringInvoice; use App\Http\Requests\Request; +use App\Http\ValidationRules\Project\ValidProjectForClient; use App\Utils\Traits\ChecksEntityStatus; use App\Utils\Traits\CleanLineItems; use App\Utils\Traits\MakesHash; @@ -51,6 +52,7 @@ class UpdateRecurringInvoiceRequest extends Request if($this->number) $rules['number'] = Rule::unique('recurring_invoices')->where('company_id', auth()->user()->company()->id)->ignore($this->recurring_invoice->id); + $rules['project_id'] = ['bail', 'sometimes', new ValidProjectForClient($this->all())]; return $rules; } @@ -59,16 +61,6 @@ class UpdateRecurringInvoiceRequest extends Request { $input = $this->all(); - // foreach($this->input('documents') as $document) - // { - // if($document instanceof UploadedFile){ - // nlog("i am an uploaded file"); - // nlog($document); - // } - // else - // nlog($document); - // } - if (array_key_exists('design_id', $input) && is_string($input['design_id'])) { $input['design_id'] = $this->decodePrimaryKey($input['design_id']); } @@ -81,6 +73,11 @@ class UpdateRecurringInvoiceRequest extends Request $input['assigned_user_id'] = $this->decodePrimaryKey($input['assigned_user_id']); } + if (array_key_exists('project_id', $input) && is_string($input['project_id'])) { + $input['project_id'] = $this->decodePrimaryKey($input['project_id']); + } + + if (isset($input['invitations'])) { foreach ($input['invitations'] as $key => $value) { if (is_numeric($input['invitations'][$key]['id'])) { diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index c85230a96bf0..9269d6174255 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -535,4 +535,16 @@ class Invoice extends BaseModel break; } } + + public function transaction_event() + { + return [ + 'id' => $this->id, + 'amount' => $this->amount, + 'partial' => $this->partial, + 'balance' => $this->balance, + 'paid_to_date' => $this->paid_to_date, + 'status_id' => $this->status_id, + ]; + } } diff --git a/app/Models/Payment.php b/app/Models/Payment.php index e2b96447ea54..826594043dea 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -324,4 +324,16 @@ class Payment extends BaseModel } + public function transaction_event() + { + return [ + 'payment_id' => $this->id, + 'payment_amount' => $this->amount, + 'payment_applied' => $this->applied, + 'payment_refunded' => $this->refunded, + 'payment_status' => $this->status_id, + 'paymentables' => $this->paymentables->toArray(), + ]; + } + }