diff --git a/app/Jobs/Cron/AutoBill.php b/app/Jobs/Cron/AutoBill.php index 8fde5b16374c..824f9463f29a 100644 --- a/app/Jobs/Cron/AutoBill.php +++ b/app/Jobs/Cron/AutoBill.php @@ -48,16 +48,19 @@ class AutoBill implements ShouldQueue MultiDB::setDb($this->db); } + $invoice = false; + try { nlog("autobill {$this->invoice_id}"); $invoice = Invoice::withTrashed()->find($this->invoice_id); $invoice->service()->autoBill(); + } catch (\Exception $e) { nlog("Failed to capture payment for {$this->invoice_id} ->".$e->getMessage()); - if($this->send_email_on_failure) + if($this->send_email_on_failure && $invoice) { $invoice->invitations->each(function ($invitation) use ($invoice) { diff --git a/app/Jobs/Entity/EmailEntity.php b/app/Jobs/Entity/EmailEntity.php index 561cb0ed83b6..82cbef192937 100644 --- a/app/Jobs/Entity/EmailEntity.php +++ b/app/Jobs/Entity/EmailEntity.php @@ -61,7 +61,7 @@ class EmailEntity implements ShouldQueue * EmailEntity constructor. * * - * @param Invitation $invitation + * @param mixed $invitation * @param Company $company * @param ?string $reminder_template * @param array $template_data @@ -146,21 +146,26 @@ class EmailEntity implements ShouldQueue } elseif ($this->invitation instanceof RecurringInvoiceInvitation) { return 'recurring_invoice'; } + + return ''; } - /* Switch statement to handle failure notifications */ - private function entityEmailFailed($message) - { - switch ($this->entity_string) { - case 'invoice': - event(new InvoiceWasEmailedAndFailed($this->invitation, $this->company, $message, $this->reminder_template, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); - break; + /** + * @deprecated + * @unused + */ + // private function entityEmailFailed($message) + // { + // switch ($this->entity_string) { + // case 'invoice': + // event(new InvoiceWasEmailedAndFailed($this->invitation, $this->company, $message, $this->reminder_template, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); + // break; - default: - // code... - break; - } - } + // default: + // // code... + // break; + // } + // } /* Builds the email builder object */ private function resolveEmailBuilder() diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index eab645792ac8..8c45cc3e9475 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -96,6 +96,8 @@ use Laracasts\Presenter\PresentableTrait; * @property-read mixed $hashed_id * @property-read mixed $status * @property-read \Illuminate\Database\Eloquent\Collection $history + * @property-read \Illuminate\Database\Eloquent\Collection $client + * @property-read \Illuminate\Database\Eloquent\Collection $company * @property-read int|null $history_count * @property-read \Illuminate\Database\Eloquent\Collection $invitations * @property-read int|null $invitations_count diff --git a/app/Models/User.php b/app/Models/User.php index 0738ae1497e4..4195e715f656 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -11,26 +11,25 @@ namespace App\Models; +use App\Models\Company; +use App\Utils\TruthSource; use App\Jobs\Mail\NinjaMailer; +use Illuminate\Support\Carbon; +use App\Utils\Traits\MakesHash; use App\Jobs\Mail\NinjaMailerJob; +use App\Services\User\UserService; +use App\Utils\Traits\UserSettings; use App\Jobs\Mail\NinjaMailerObject; use App\Mail\Admin\ResetPasswordObject; +use Illuminate\Database\Eloquent\Model; use App\Models\Presenters\UserPresenter; -use App\Notifications\ResetPasswordNotification; -use App\Services\User\UserService; -use App\Utils\Traits\MakesHash; +use Illuminate\Notifications\Notifiable; +use Laracasts\Presenter\PresentableTrait; use App\Utils\Traits\UserSessionAttributes; -use App\Utils\Traits\UserSettings; -use App\Utils\TruthSource; +use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; -use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; -use Illuminate\Notifications\Notifiable; -use Illuminate\Support\Carbon; -use Illuminate\Support\Facades\Auth; -use Laracasts\Presenter\PresentableTrait; /** * App\Models\User @@ -178,7 +177,7 @@ class User extends Authenticatable implements MustVerifyEmail protected $dateFormat = 'Y-m-d H:i:s.u'; - public $company; + public Company $company; protected $appends = [ 'hashed_id',