entity->client ? $this->entity->client->getDisplayName() : ''; } public function user() { return $this->entity->user->getDisplayName(); } public function balanceDueLabel() { if ($this->entity->partial > 0) { return 'partial_due'; } elseif ($this->entity->isType(INVOICE_TYPE_QUOTE)) { return 'total'; } else { return 'balance_due'; } } // https://schema.org/PaymentStatusType public function paymentStatus() { if ( ! $this->entity->balance) { return 'PaymentComplete'; } elseif ($this->entity->isOverdue()) { return 'PaymentPastDue'; } else { return 'PaymentDue'; } } public function status() { if ($this->entity->is_deleted) { return trans('texts.deleted'); } elseif ($this->entity->trashed()) { return trans('texts.archived'); } elseif ($this->entity->is_recurring) { return trans('texts.active'); } else { $status = $this->entity->invoice_status ? $this->entity->invoice_status->name : 'draft'; $status = strtolower($status); return trans("texts.status_{$status}"); } } public function invoice_date() { return Utils::fromSqlDate($this->entity->invoice_date); } public function due_date() { return Utils::fromSqlDate($this->entity->due_date); } public function frequency() { return $this->entity->frequency ? $this->entity->frequency->name : ''; } public function email() { $client = $this->entity->client; return count($client->contacts) ? $client->contacts[0]->email : ''; } public function autoBillEmailMessage() { $client = $this->entity->client; $paymentMethod = $client->defaultPaymentMethod(); if ( ! $paymentMethod) { return false; } if ($paymentMethod->payment_type_id == PAYMENT_TYPE_ACH) { $paymentMethodString = trans('texts.auto_bill_payment_method_bank_transfer'); } elseif ($paymentMethod->payment_type_id == PAYMENT_TYPE_PAYPAL) { $paymentMethodString = trans('texts.auto_bill_payment_method_paypal'); } else { $paymentMethodString = trans('texts.auto_bill_payment_method_credit_card'); } $data = [ 'payment_method' => $paymentMethodString, 'due_date' => $this->due_date(), ]; return trans('texts.auto_bill_notification', $data); } }