Ejemplo n.º 1
0
 /**
  * @param  Invoice $invoice
  * @return string
  */
 protected function getIssueDateAddition(Invoice $invoice)
 {
     switch ($invoice->getStatus()) {
         case Invoice::STATUS_DRAFT:
         case Invoice::STATUS_SENT:
             if ($invoice->getDueDate() === null) {
                 return 'No due date';
             }
             $dueTime = $invoice->getDueDate()->diff($invoice->getIssueDate())->days;
             return sprintf('Due in %d %s', $dueTime, $dueTime === 1 ? 'day' : 'days');
         case Invoice::STATUS_LATE:
             $lateTime = $invoice->getDueDate()->diff($invoice->getIssueDate())->days;
             return sprintf('%d %s late', $lateTime, $lateTime === 1 ? 'day' : 'days');
         case Invoice::STATUS_PAID:
             $payTime = $invoice->getPayDate()->diff($invoice->getIssueDate())->days;
             return sprintf('Paid in %d %s', $payTime, $payTime === 1 ? 'day' : 'days');
     }
     throw new RuntimeException(sprintf('Invalid invoice status "%s"', $invoice->getStatus()));
 }
Ejemplo n.º 2
0
 /**
  * @param  Invoice $invoice
  * @return string
  */
 protected function getInvoicePath(Invoice $invoice)
 {
     return sprintf('%s/invoice-%d.pdf', $this->invoicePath, $invoice->getId());
 }
Ejemplo n.º 3
0
 public function generate(Invoice $invoice, $incrementer)
 {
     $issueDate = $invoice->getIssueDate();
     return sprintf($this->invoiceNumberFormat, $incrementer, $issueDate->format('Y'), $issueDate->format('m'), $issueDate->format('d'));
 }
Ejemplo n.º 4
0
 /**
  * @param XMLWriter $xmlWriter
  * @param Invoice   $invoice
  */
 protected function addTranslations(XMLWriter $xmlWriter, Invoice $invoice)
 {
     $xmlWriter->startElement('translations');
     foreach ($this->translationLoader->getMessages($invoice->getLocale()) as $id => $message) {
         $xmlWriter->startElement('message');
         $xmlWriter->writeAttribute('id', $id);
         $xmlWriter->text($message);
         $xmlWriter->endElement();
     }
     $xmlWriter->endElement();
 }