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 Quote::class; } /** * @return mixed */ public function quote() { return $this->belongsTo(Quote::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 markViewed() { $this->viewed_date = Carbon::now(); $this->save(); } public function pdf_file_path() { $storage_path = Storage::url($this->quote->client->quote_filepath().$this->quote->number.'.pdf'); if (! Storage::exists($this->quote->client->quote_filepath().$this->quote->number.'.pdf')) { event(new QuoteWasUpdated($this->quote, $this->company, Ninja::eventVars())); CreateEntityPdf::dispatchNow($this); } return $storage_path; } }