/** * @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())); }
/** * @param Invoice $invoice * @return string */ protected function getInvoicePath(Invoice $invoice) { return sprintf('%s/invoice-%d.pdf', $this->invoicePath, $invoice->getId()); }
public function generate(Invoice $invoice, $incrementer) { $issueDate = $invoice->getIssueDate(); return sprintf($this->invoiceNumberFormat, $incrementer, $issueDate->format('Y'), $issueDate->format('m'), $issueDate->format('d')); }
/** * @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(); }