invoice; $account = Auth::user()->account; if ($invoice->invoice_design_id && $account->invoice_design_id != $invoice->invoice_design_id) { $account->invoice_design_id = $invoice->invoice_design_id; $account->save(); } } } /** * @param InvoiceWasUpdated $event */ public function updatedInvoice(InvoiceWasUpdated $event) { $invoice = $event->invoice; $invoice->updatePaidStatus(false, false); } /** * @param InvoiceInvitationWasViewed $event */ public function viewedInvoice(InvoiceInvitationWasViewed $event) { $invitation = $event->invitation; $invitation->markViewed(); } /** * @param InvoiceWasEmailed $event */ public function emailedInvoice(InvoiceWasEmailed $event) { $invoice = $event->invoice; $invoice->last_sent_date = date('Y-m-d'); $invoice->save(); } /** * @param PaymentWasCreated $event */ public function createdPayment(PaymentWasCreated $event) { $payment = $event->payment; $invoice = $payment->invoice; $adjustment = $payment->amount * -1; $partial = max(0, $invoice->partial - $payment->amount); $invoice->updateBalances($adjustment, $partial); $invoice->updatePaidStatus(true); // store a backup of the invoice $activity = Activity::wherePaymentId($payment->id) ->whereActivityTypeId(ACTIVITY_TYPE_CREATE_PAYMENT) ->first(); $activity->json_backup = $invoice->hidePrivateFields()->toJSON(); $activity->save(); if ($invoice->balance == 0 && $payment->account->auto_archive_invoice) { $invoiceRepo = app('App\Ninja\Repositories\InvoiceRepository'); $invoiceRepo->archive($invoice); } } /** * @param PaymentWasDeleted $event */ public function deletedPayment(PaymentWasDeleted $event) { $payment = $event->payment; if ($payment->isFailedOrVoided()) { return; } $invoice = $payment->invoice; $adjustment = $payment->getCompletedAmount(); $invoice->updateBalances($adjustment); $invoice->updatePaidStatus(); } /** * @param PaymentWasRefunded $event */ public function refundedPayment(PaymentWasRefunded $event) { $payment = $event->payment; $invoice = $payment->invoice; $adjustment = $event->refundAmount; $invoice->updateBalances($adjustment); $invoice->updatePaidStatus(); } /** * @param PaymentWasVoided $event */ public function voidedPayment(PaymentWasVoided $event) { $payment = $event->payment; $invoice = $payment->invoice; $adjustment = $payment->amount; $invoice->updateBalances($adjustment); $invoice->updatePaidStatus(); } /** * @param PaymentFailed $event */ public function failedPayment(PaymentFailed $event) { $payment = $event->payment; $invoice = $payment->invoice; $adjustment = $payment->getCompletedAmount(); $invoice->updateBalances($adjustment); $invoice->updatePaidStatus(); } /** * @param PaymentWasRestored $event */ public function restoredPayment(PaymentWasRestored $event) { if (! $event->fromDeleted) { return; } $payment = $event->payment; if ($payment->isFailedOrVoided()) { return; } $invoice = $payment->invoice; $adjustment = $payment->getCompletedAmount() * -1; $invoice->updateBalances($adjustment); $invoice->updatePaidStatus(); } public function jobFailed(JobExceptionOccurred $exception) { /* if ($errorEmail = env('ERROR_EMAIL')) { \Mail::raw(print_r($exception->data, true), function ($message) use ($errorEmail) { $message->to($errorEmail) ->from(CONTACT_EMAIL) ->subject('Job failed'); }); } */ Utils::logError($exception->exception); } }