format('Y-m-d'); // } // return $value; // } // public function getSentDateAttribute($value) // { // if (!$value) { // return (new Carbon($value))->format('Y-m-d'); // } // return $value; // } // public function getViewedDateAttribute($value) // { // if (!$value) { // return (new Carbon($value))->format('Y-m-d'); // } // return $value; // } // public function getOpenedDateAttribute($value) // { // if (!$value) { // return (new Carbon($value))->format('Y-m-d'); // } // return $value; // } public function entityType() { return Invoice::class; } /** * @return mixed */ public function invoice() { return $this->belongsTo(Invoice::class)->withTrashed(); } /** * @return mixed */ public function contact() { return $this->belongsTo(ClientContact::class, 'client_contact_id', 'id')->withTrashed(); } /** * @return mixed */ public function user() { return $this->belongsTo(User::class)->withTrashed(); } /** * @return BelongsTo */ public function company() { return $this->belongsTo(Company::class); } public function signatureDiv() { if (! $this->signature_base64) { return false; } return sprintf('

%s: %s', $this->signature_base64, ctrans('texts.signed'), $this->createClientDate($this->signature_date, $this->contact->client->timezone()->name)); } public function getName() { return $this->key; } public function markViewed() { $this->viewed_date = Carbon::now(); $this->save(); } public function markOpened() { $this->opened_date = Carbon::now(); $this->save(); } public function pdf_file_path() { $storage_path = Storage::url($this->invoice->client->invoice_filepath().$this->invoice->numberFormatter().'.pdf'); if (! Storage::exists($this->invoice->client->invoice_filepath($this).$this->invoice->numberFormatter().'.pdf')) { event(new InvoiceWasUpdated($this->invoice, $this->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); CreateEntityPdf::dispatchNow($this); } return $storage_path; } }