app\models\Invoice::hasDocuments PHP Method

hasDocuments() public method

public hasDocuments ( ) : boolean
return boolean
    public function hasDocuments()
    {
        if (count($this->documents)) {
            return true;
        }
        return $this->hasExpenseDocuments();
    }

Usage Example

 public function sendInvoice(Invoice $invoice, $reminder = false, $pdfString = false)
 {
     $invoice->load('invitations', 'client.language', 'account');
     $entityType = $invoice->getEntityType();
     $client = $invoice->client;
     $account = $invoice->account;
     $response = null;
     if ($client->trashed()) {
         return trans('texts.email_errors.inactive_client');
     } elseif ($invoice->trashed()) {
         return trans('texts.email_errors.inactive_invoice');
     }
     $account->loadLocalizationSettings($client);
     $emailTemplate = $account->getEmailTemplate($reminder ?: $entityType);
     $emailSubject = $account->getEmailSubject($reminder ?: $entityType);
     $sent = false;
     if ($account->attatchPDF() && !$pdfString) {
         $pdfString = $invoice->getPDFString();
     }
     $documentStrings = array();
     if ($account->document_email_attachment && $invoice->hasDocuments()) {
         $documents = $invoice->documents;
         foreach ($invoice->expenses as $expense) {
             $documents = $documents->merge($expense->documents);
         }
         $documents = $documents->sortBy('size');
         $size = 0;
         $maxSize = MAX_EMAIL_DOCUMENTS_SIZE * 1000;
         foreach ($documents as $document) {
             $size += $document->size;
             if ($size > $maxSize) {
                 break;
             }
             $documentStrings[] = array('name' => $document->name, 'data' => $document->getRaw());
         }
     }
     foreach ($invoice->invitations as $invitation) {
         $response = $this->sendInvitation($invitation, $invoice, $emailTemplate, $emailSubject, $pdfString, $documentStrings);
         if ($response === true) {
             $sent = true;
         }
     }
     $account->loadLocalizationSettings();
     if ($sent === true) {
         if ($invoice->is_quote) {
             event(new QuoteWasEmailed($invoice));
         } else {
             event(new InvoiceWasEmailed($invoice));
         }
     }
     return $response;
 }