From 41fdbd79785756456acec7589c3b9cc40aa822c7 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 23 Jul 2020 21:20:05 +1000 Subject: [PATCH 1/3] Add client ids to activities --- app/Http/Controllers/BaseController.php | 1 - .../Requests/Invoice/StoreInvoiceRequest.php | 4 +- .../Invoice/UniqueInvoiceNumberRule.php | 66 +++++++++++++++++++ .../Activity/CreatedCreditActivity.php | 2 + .../Activity/CreatedQuoteActivity.php | 1 + .../Activity/CreditArchivedActivity.php | 3 +- .../Activity/PaymentArchivedActivity.php | 1 + .../Activity/PaymentCreatedActivity.php | 1 + .../Activity/PaymentDeletedActivity.php | 1 + .../Activity/PaymentRefundedActivity.php | 1 + .../Activity/PaymentUpdatedActivity.php | 1 + .../Activity/QuoteUpdatedActivity.php | 3 +- .../Activity/UpdatedCreditActivity.php | 1 + .../Credit/CreditRestoredActivity.php | 1 + .../Invoice/CreateInvoiceActivity.php | 3 +- .../Invoice/CreateInvoiceHtmlBackup.php | 3 +- .../Invoice/InvoiceArchivedActivity.php | 1 + .../Invoice/InvoiceCancelledActivity.php | 3 +- .../Invoice/InvoiceDeletedActivity.php | 3 +- .../Invoice/InvoiceEmailFailedActivity.php | 3 +- .../Invoice/InvoiceRestoredActivity.php | 3 +- .../Invoice/InvoiceReversedActivity.php | 3 +- .../Payment/PaymentRestoredActivity.php | 3 +- app/Listeners/Quote/QuoteApprovedActivity.php | 3 +- app/Listeners/Quote/QuoteArchivedActivity.php | 3 +- app/Listeners/Quote/QuoteDeletedActivity.php | 3 +- app/Listeners/Quote/QuoteEmailActivity.php | 3 +- app/Listeners/Quote/QuoteRestoredActivity.php | 3 +- 28 files changed, 110 insertions(+), 17 deletions(-) create mode 100644 app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 549468bf5..ac3adf579 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -149,7 +149,6 @@ class BaseController extends Controller $query->with( [ 'company' => function ($query) use($updated_at){$query->where('updated_at', '>=', 0);}, - 'company.activities' => function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.clients' =>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.tax_rates'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.groups'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, diff --git a/app/Http/Requests/Invoice/StoreInvoiceRequest.php b/app/Http/Requests/Invoice/StoreInvoiceRequest.php index 10f6d72a7..dfcc0ba9c 100644 --- a/app/Http/Requests/Invoice/StoreInvoiceRequest.php +++ b/app/Http/Requests/Invoice/StoreInvoiceRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\Invoice; use App\Http\Requests\Request; +use App\Http\ValidationRules\Invoice\UniqueInvoiceNumberRule; use App\Models\ClientContact; use App\Models\Invoice; use App\Utils\Traits\CleanLineItems; @@ -51,7 +52,8 @@ class StoreInvoiceRequest extends Request $rules['invitations.*.client_contact_id'] = 'distinct'; - + $rules['number'] = new UniqueInvoiceNumberRule($this->all()); + return $rules; } diff --git a/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php b/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php new file mode 100644 index 000000000..ca2d604f7 --- /dev/null +++ b/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php @@ -0,0 +1,66 @@ +input = $input; + } + + /** + * @param string $attribute + * @param mixed $value + * @return bool + */ + public function passes($attribute, $value) + { + return $this->checkIfInvoiceNumberUnique(); //if it exists, return false! + } + + /** + * @return string + */ + public function message() + { + return "Invoice number already taken"; + } + + /** + * @param $email + * + * //off,when_sent,when_paid + * + * @return bool + */ + private function checkIfInvoiceNumberUnique($value) : bool + { + + return Invoice::where('client_id', $this->input['client_id']) + ->where('number', $this->input['number']) + ->withTrashed() + ->exists(); + + } +} diff --git a/app/Listeners/Activity/CreatedCreditActivity.php b/app/Listeners/Activity/CreatedCreditActivity.php index a2406e618..06529160a 100644 --- a/app/Listeners/Activity/CreatedCreditActivity.php +++ b/app/Listeners/Activity/CreatedCreditActivity.php @@ -45,6 +45,8 @@ class CreatedCreditActivity implements ShouldQueue $fields->credit_id = $event->credit->id; $fields->user_id = $event->credit->user_id; + $fields->client_id = $event->credit->client_id; + $fields->company_id = $event->credit->company_id; $fields->activity_type_id = Activity::CREATE_CREDIT; diff --git a/app/Listeners/Activity/CreatedQuoteActivity.php b/app/Listeners/Activity/CreatedQuoteActivity.php index 5b6bd86d7..2ff84f49a 100644 --- a/app/Listeners/Activity/CreatedQuoteActivity.php +++ b/app/Listeners/Activity/CreatedQuoteActivity.php @@ -44,6 +44,7 @@ class CreatedQuoteActivity implements ShouldQueue $fields = new \stdClass; $fields->quote_id = $event->quote->id; + $fields->client_id = $event->quote->client_id; $fields->user_id = $event->quote->user_id; $fields->company_id = $event->quote->company_id; $fields->activity_type_id = Activity::CREATE_QUOTE; diff --git a/app/Listeners/Activity/CreditArchivedActivity.php b/app/Listeners/Activity/CreditArchivedActivity.php index 1936fda8e..d5a52c97d 100644 --- a/app/Listeners/Activity/CreditArchivedActivity.php +++ b/app/Listeners/Activity/CreditArchivedActivity.php @@ -46,7 +46,8 @@ class CreditArchivedActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $event->credit->id; - $fields->user_id = $event->credit->user_id; + $fields->client_id = $event->credit->client_id; + $fields->user_id = $event->credit->user_id; $fields->company_id = $event->credit->company_id; $fields->activity_type_id = Activity::ARCHIVE_CREDIT; diff --git a/app/Listeners/Activity/PaymentArchivedActivity.php b/app/Listeners/Activity/PaymentArchivedActivity.php index 816e257ef..de3d7cd5d 100644 --- a/app/Listeners/Activity/PaymentArchivedActivity.php +++ b/app/Listeners/Activity/PaymentArchivedActivity.php @@ -50,6 +50,7 @@ class PaymentArchivedActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $payment->id; + $fields->client_id = $payment->client_id; $fields->user_id = $payment->user_id; $fields->company_id = $payment->company_id; $fields->activity_type_id = Activity::ARCHIVE_PAYMENT; diff --git a/app/Listeners/Activity/PaymentCreatedActivity.php b/app/Listeners/Activity/PaymentCreatedActivity.php index ba6c6b607..9ba47b05c 100644 --- a/app/Listeners/Activity/PaymentCreatedActivity.php +++ b/app/Listeners/Activity/PaymentCreatedActivity.php @@ -50,6 +50,7 @@ class PaymentCreatedActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $payment->id; + $fields->client_id = $payment->client_id; $fields->user_id = $payment->user_id; $fields->company_id = $payment->company_id; $fields->activity_type_id = Activity::CREATE_PAYMENT; diff --git a/app/Listeners/Activity/PaymentDeletedActivity.php b/app/Listeners/Activity/PaymentDeletedActivity.php index 171ee63f1..24754367d 100644 --- a/app/Listeners/Activity/PaymentDeletedActivity.php +++ b/app/Listeners/Activity/PaymentDeletedActivity.php @@ -50,6 +50,7 @@ class PaymentDeletedActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $payment->id; + $fields->client_id = $payment->client_id; $fields->user_id = $payment->user_id; $fields->company_id = $payment->company_id; $fields->activity_type_id = Activity::DELETE_PAYMENT; diff --git a/app/Listeners/Activity/PaymentRefundedActivity.php b/app/Listeners/Activity/PaymentRefundedActivity.php index 67c75af9c..582fce25b 100644 --- a/app/Listeners/Activity/PaymentRefundedActivity.php +++ b/app/Listeners/Activity/PaymentRefundedActivity.php @@ -43,6 +43,7 @@ class PaymentRefundedActivity implements ShouldQueue $fields = new \stdClass; $fields->client_id = $event->payment->id; + $fields->client_id = $event->payment->client_id; $fields->user_id = $event->payment->user_id; $fields->company_id = $event->payment->company_id; $fields->activity_type_id = Activity::REFUNDED_PAYMENT; diff --git a/app/Listeners/Activity/PaymentUpdatedActivity.php b/app/Listeners/Activity/PaymentUpdatedActivity.php index 5185b5621..b18e6ca12 100644 --- a/app/Listeners/Activity/PaymentUpdatedActivity.php +++ b/app/Listeners/Activity/PaymentUpdatedActivity.php @@ -50,6 +50,7 @@ class PaymentUpdatedActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $payment->id; + $fields->client_id = $payment->client_id; $fields->user_id = $payment->user_id; $fields->company_id = $payment->company_id; $fields->activity_type_id = Activity::UPDATE_PAYMENT; diff --git a/app/Listeners/Activity/QuoteUpdatedActivity.php b/app/Listeners/Activity/QuoteUpdatedActivity.php index 9a8da1507..9f3e4025a 100644 --- a/app/Listeners/Activity/QuoteUpdatedActivity.php +++ b/app/Listeners/Activity/QuoteUpdatedActivity.php @@ -50,7 +50,8 @@ class QuoteUpdatedActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $quote->id; - $fields->user_id = $quote->user_id; + $fields->client_id = $quote->client_id; + $fields->user_id = $quote->user_id; $fields->company_id = $quote->company_id; $fields->activity_type_id = Activity::UPDATE_QUOTE; diff --git a/app/Listeners/Activity/UpdatedCreditActivity.php b/app/Listeners/Activity/UpdatedCreditActivity.php index fb1868980..cef717924 100644 --- a/app/Listeners/Activity/UpdatedCreditActivity.php +++ b/app/Listeners/Activity/UpdatedCreditActivity.php @@ -44,6 +44,7 @@ class UpdatedCreditActivity implements ShouldQueue $fields = new \stdClass; $fields->credit_id = $event->credit->id; + $fields->client_id = $event->credit->client_id; $fields->user_id = $event->credit->user_id; $fields->company_id = $event->credit->company_id; $fields->activity_type_id = Activity::UPDATE_CREDIT; diff --git a/app/Listeners/Credit/CreditRestoredActivity.php b/app/Listeners/Credit/CreditRestoredActivity.php index 4920fb343..3111df9dd 100644 --- a/app/Listeners/Credit/CreditRestoredActivity.php +++ b/app/Listeners/Credit/CreditRestoredActivity.php @@ -48,6 +48,7 @@ class CreditRestoredActivity implements ShouldQueue $fields = new \stdClass; $fields->credit_id = $event->credit->id; + $fields->client_id = $event->credit->client_id; $fields->user_id = $event->credit->user_id; $fields->company_id = $event->credit->company_id; $fields->activity_type_id = Activity::RESTORE_CREDIT; diff --git a/app/Listeners/Invoice/CreateInvoiceActivity.php b/app/Listeners/Invoice/CreateInvoiceActivity.php index c9d94d625..38f5a8dc8 100644 --- a/app/Listeners/Invoice/CreateInvoiceActivity.php +++ b/app/Listeners/Invoice/CreateInvoiceActivity.php @@ -47,7 +47,8 @@ class CreateInvoiceActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::CREATE_INVOICE; diff --git a/app/Listeners/Invoice/CreateInvoiceHtmlBackup.php b/app/Listeners/Invoice/CreateInvoiceHtmlBackup.php index 1f4e4b73b..d50a799ca 100644 --- a/app/Listeners/Invoice/CreateInvoiceHtmlBackup.php +++ b/app/Listeners/Invoice/CreateInvoiceHtmlBackup.php @@ -43,7 +43,8 @@ class CreateInvoiceHtmlBackup implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::MARK_SENT_INVOICE; diff --git a/app/Listeners/Invoice/InvoiceArchivedActivity.php b/app/Listeners/Invoice/InvoiceArchivedActivity.php index c38db35b7..895eb7d27 100644 --- a/app/Listeners/Invoice/InvoiceArchivedActivity.php +++ b/app/Listeners/Invoice/InvoiceArchivedActivity.php @@ -48,6 +48,7 @@ class InvoiceArchivedActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; + $fields->client_id = $event->invoice->client_id; $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::ARCHIVE_INVOICE; diff --git a/app/Listeners/Invoice/InvoiceCancelledActivity.php b/app/Listeners/Invoice/InvoiceCancelledActivity.php index efb816ff5..9a2e820b6 100644 --- a/app/Listeners/Invoice/InvoiceCancelledActivity.php +++ b/app/Listeners/Invoice/InvoiceCancelledActivity.php @@ -48,7 +48,8 @@ class InvoiceCancelledActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::CANCELLED_INVOICE; diff --git a/app/Listeners/Invoice/InvoiceDeletedActivity.php b/app/Listeners/Invoice/InvoiceDeletedActivity.php index 436232b0f..0b4eee507 100644 --- a/app/Listeners/Invoice/InvoiceDeletedActivity.php +++ b/app/Listeners/Invoice/InvoiceDeletedActivity.php @@ -48,7 +48,8 @@ class InvoiceDeletedActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::DELETE_INVOICE; diff --git a/app/Listeners/Invoice/InvoiceEmailFailedActivity.php b/app/Listeners/Invoice/InvoiceEmailFailedActivity.php index 6a4f02873..4f924638e 100644 --- a/app/Listeners/Invoice/InvoiceEmailFailedActivity.php +++ b/app/Listeners/Invoice/InvoiceEmailFailedActivity.php @@ -47,7 +47,8 @@ class InvoiceEmailFailedActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::EMAIL_INVOICE_FAILED; diff --git a/app/Listeners/Invoice/InvoiceRestoredActivity.php b/app/Listeners/Invoice/InvoiceRestoredActivity.php index 1832ccdc8..78e799481 100644 --- a/app/Listeners/Invoice/InvoiceRestoredActivity.php +++ b/app/Listeners/Invoice/InvoiceRestoredActivity.php @@ -48,7 +48,8 @@ class InvoiceRestoredActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::RESTORE_INVOICE; diff --git a/app/Listeners/Invoice/InvoiceReversedActivity.php b/app/Listeners/Invoice/InvoiceReversedActivity.php index 8d42772dd..7f4656279 100644 --- a/app/Listeners/Invoice/InvoiceReversedActivity.php +++ b/app/Listeners/Invoice/InvoiceReversedActivity.php @@ -47,7 +47,8 @@ class InvoiceReversedActivity implements ShouldQueue $fields = new \stdClass; $fields->invoice_id = $event->invoice->id; - $fields->user_id = $event->invoice->user_id; + $fields->client_id = $event->invoice->client_id; + $fields->user_id = $event->invoice->user_id; $fields->company_id = $event->invoice->company_id; $fields->activity_type_id = Activity::REVERSED_INVOICE; diff --git a/app/Listeners/Payment/PaymentRestoredActivity.php b/app/Listeners/Payment/PaymentRestoredActivity.php index 828a0b046..ec97e9a57 100644 --- a/app/Listeners/Payment/PaymentRestoredActivity.php +++ b/app/Listeners/Payment/PaymentRestoredActivity.php @@ -48,7 +48,8 @@ class PaymentRestoredActivity implements ShouldQueue $fields = new \stdClass; $fields->payment_id = $event->payment->id; - $fields->user_id = $event->payment->user_id; + $fields->client_id = $event->payment->client_id; + $fields->user_id = $event->payment->user_id; $fields->company_id = $event->payment->company_id; $fields->activity_type_id = Activity::RESTORE_PAYMENT; diff --git a/app/Listeners/Quote/QuoteApprovedActivity.php b/app/Listeners/Quote/QuoteApprovedActivity.php index 5ac5c14d4..844593568 100644 --- a/app/Listeners/Quote/QuoteApprovedActivity.php +++ b/app/Listeners/Quote/QuoteApprovedActivity.php @@ -48,7 +48,8 @@ class QuoteApprovedActivity implements ShouldQueue $fields = new \stdClass; $fields->quote_id = $event->quote->id; - $fields->user_id = $event->quote->user_id; + $fields->client_id = $event->quote->client_id; + $fields->user_id = $event->quote->user_id; $fields->client_contact_id = $event->contact->id; $fields->company_id = $event->payment->company_id; $fields->activity_type_id = Activity::RESTORE_PAYMENT; diff --git a/app/Listeners/Quote/QuoteArchivedActivity.php b/app/Listeners/Quote/QuoteArchivedActivity.php index ea8cfb7d8..56dc5e770 100644 --- a/app/Listeners/Quote/QuoteArchivedActivity.php +++ b/app/Listeners/Quote/QuoteArchivedActivity.php @@ -48,7 +48,8 @@ class QuoteArchivedActivity implements ShouldQueue $fields = new \stdClass; $fields->quote_id = $event->quote->id; - $fields->user_id = $event->quote->user_id; + $fields->client_id = $event->quote->client_id; + $fields->user_id = $event->quote->user_id; $fields->company_id = $event->quote->company_id; $fields->activity_type_id = Activity::ARCHIVE_QUOTE; diff --git a/app/Listeners/Quote/QuoteDeletedActivity.php b/app/Listeners/Quote/QuoteDeletedActivity.php index f20f12a83..bea34f112 100644 --- a/app/Listeners/Quote/QuoteDeletedActivity.php +++ b/app/Listeners/Quote/QuoteDeletedActivity.php @@ -48,7 +48,8 @@ class QuoteDeletedActivity implements ShouldQueue $fields = new \stdClass; $fields->quote_id = $event->quote->id; - $fields->user_id = $event->quote->user_id; + $fields->client_id = $event->quote->client_id; + $fields->user_id = $event->quote->user_id; $fields->company_id = $event->quote->company_id; $fields->activity_type_id = Activity::DELETE_QUOTE; diff --git a/app/Listeners/Quote/QuoteEmailActivity.php b/app/Listeners/Quote/QuoteEmailActivity.php index dffcb72ce..13b4ecdf4 100644 --- a/app/Listeners/Quote/QuoteEmailActivity.php +++ b/app/Listeners/Quote/QuoteEmailActivity.php @@ -47,7 +47,8 @@ class QuoteEmailActivity implements ShouldQueue $fields = new \stdClass; $fields->quote_id = $event->invitation->quote->id; - $fields->user_id = $event->invitation->quote->user_id; + $fields->client_id = $event->invitation->quote->client_id; + $fields->user_id = $event->invitation->quote->user_id; $fields->company_id = $event->invitation->quote->company_id; $fields->client_contact_id = $event->invitation->quote->client_contact_id; $fields->activity_type_id = Activity::EMAIL_QUOTE; diff --git a/app/Listeners/Quote/QuoteRestoredActivity.php b/app/Listeners/Quote/QuoteRestoredActivity.php index 9c15bd911..2b480e556 100644 --- a/app/Listeners/Quote/QuoteRestoredActivity.php +++ b/app/Listeners/Quote/QuoteRestoredActivity.php @@ -48,7 +48,8 @@ class QuoteRestoredActivity implements ShouldQueue $fields = new \stdClass; $fields->quote_id = $event->quote->id; - $fields->user_id = $event->quote->user_id; + $fields->client_id = $event->quote->client_id; + $fields->user_id = $event->quote->user_id; $fields->company_id = $event->quote->company_id; $fields->activity_type_id = Activity::RESTORE_QUOTE; From 2f07a36d76b6d2acce3c2b8303d4b6b4ee6139cc Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 23 Jul 2020 21:30:51 +1000 Subject: [PATCH 2/3] Fixes for unique invoice number rule --- app/Http/Controllers/BaseController.php | 2 +- .../Invoice/UniqueInvoiceNumberRule.php | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index ac3adf579..ad12424f2 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -148,7 +148,7 @@ class BaseController extends Controller $query->with( [ - 'company' => function ($query) use($updated_at){$query->where('updated_at', '>=', 0);}, + 'company' => function ($query) use($updated_at){$query->whereNotNull('updated_at');}, 'company.clients' =>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.tax_rates'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.groups'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, diff --git a/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php b/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php index ca2d604f7..c3997f9ff 100644 --- a/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php +++ b/app/Http/ValidationRules/Invoice/UniqueInvoiceNumberRule.php @@ -54,13 +54,17 @@ class UniqueInvoiceNumberRule implements Rule * * @return bool */ - private function checkIfInvoiceNumberUnique($value) : bool + private function checkIfInvoiceNumberUnique() : bool { - return Invoice::where('client_id', $this->input['client_id']) + $invoice = Invoice::where('client_id', $this->input['client_id']) ->where('number', $this->input['number']) ->withTrashed() - ->exists(); + ->first(); + if($invoice) + return false; + + return true; } } From 8e02662fd0b04dca571953a558f10bae33e43755 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 23 Jul 2020 21:36:50 +1000 Subject: [PATCH 3/3] Fix for refresh route --- app/Http/Controllers/BaseController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index ad12424f2..e234298df 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -155,18 +155,18 @@ class BaseController extends Controller 'company.company_gateways.gateway'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.clients.contacts'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.products'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, - 'company.invoices.company'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, + 'company.invoices'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.invoices.invitations.contact'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, - 'company.invoices.invitations.company'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, + 'company.invoices.invitations'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.invoices.documents'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.payments.paymentables'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.quotes.invitations.contact'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, - 'company.quotes.invitations.company'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, + 'company.quotes.invitations'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.quotes.documents'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.credits.documents'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.credits.invitations.contact'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, - 'company.credits.invitations.company'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, - 'company.payment_terms.company'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, + 'company.credits.invitations'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, + 'company.payment_terms'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.vendors.contacts'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.expenses'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);}, 'company.tasks'=>function ($query) use($updated_at){$query->where('updated_at', '>=', $updated_at);},