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 \Illuminate\Database\Eloquent\Relations\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 pdf_file_path() { $storage_path = Storage::url($this->invoice->client->invoice_filepath() . $this->invoice->number . '.pdf'); if (!Storage::exists($this->invoice->client->invoice_filepath() . $this->invoice->number . '.pdf')) { event(new InvoiceWasUpdated($this->invoice, $this->company)); CreateInvoicePdf::dispatchNow($this); } return $storage_path; } }