Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
Invoice Class Reference
Inheritance diagram for Invoice:
AbstractPdf DataObject

Public Member Functions

 __construct (\Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Stdlib\StringUtils $string, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Filesystem $filesystem, Config $pdfConfig, \Magento\Sales\Model\Order\Pdf\Total\Factory $pdfTotalFactory, \Magento\Sales\Model\Order\Pdf\ItemsFactory $pdfItemsFactory, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, \Magento\Sales\Model\Order\Address\Renderer $addressRenderer, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Locale\ResolverInterface $localeResolver, array $data=[])
 
 getPdf ($invoices=[])
 
 newPage (array $settings=[])
 
- Public Member Functions inherited from AbstractPdf
 getPdf ()
 
 __construct (\Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Stdlib\StringUtils $string, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Filesystem $filesystem, Config $pdfConfig, \Magento\Sales\Model\Order\Pdf\Total\Factory $pdfTotalFactory, \Magento\Sales\Model\Order\Pdf\ItemsFactory $pdfItemsFactory, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, \Magento\Sales\Model\Order\Address\Renderer $addressRenderer, array $data=[])
 
 widthForStringUsingFontSize ($string, $font, $fontSize)
 
 getAlignRight ($string, $x, $columnWidth, \Zend_Pdf_Resource_Font $font, $fontSize, $padding=5)
 
 getAlignCenter ($string, $x, $columnWidth, \Zend_Pdf_Resource_Font $font, $fontSize)
 
 insertDocumentNumber (\Zend_Pdf_Page $page, $text)
 
 getRenderer ($type)
 
 newPage (array $settings=[])
 
 drawLineBlocks (\Zend_Pdf_Page $page, array $draw, array $pageSettings=[])
 
- Public Member Functions inherited from DataObject
 __construct (array $data=[])
 
 addData (array $arr)
 
 setData ($key, $value=null)
 
 unsetData ($key=null)
 
 getData ($key='', $index=null)
 
 getDataByPath ($path)
 
 getDataByKey ($key)
 
 setDataUsingMethod ($key, $args=[])
 
 getDataUsingMethod ($key, $args=null)
 
 hasData ($key='')
 
 toArray (array $keys=[])
 
 convertToArray (array $keys=[])
 
 toXml (array $keys=[], $rootName='item', $addOpenTag=false, $addCdata=true)
 
 convertToXml (array $arrAttributes=[], $rootName='item', $addOpenTag=false, $addCdata=true)
 
 toJson (array $keys=[])
 
 convertToJson (array $keys=[])
 
 toString ($format='')
 
 __call ($method, $args)
 
 isEmpty ()
 
 serialize ($keys=[], $valueSeparator='=', $fieldSeparator=' ', $quote='"')
 
 debug ($data=null, &$objects=[])
 
 offsetSet ($offset, $value)
 
 offsetExists ($offset)
 
 offsetUnset ($offset)
 
 offsetGet ($offset)
 

Protected Member Functions

 _drawHeader (\Zend_Pdf_Page $page)
 
- Protected Member Functions inherited from AbstractPdf
 insertLogo (&$page, $store=null)
 
 insertAddress (&$page, $store=null)
 
 _formatAddress ($address)
 
 _calcAddressHeight ($address)
 
 insertOrder (&$page, $obj, $putOrderId=true)
 
 _sortTotalsList ($a, $b)
 
 _getTotalsList ()
 
 insertTotals ($page, $source)
 
 _parseItemDescription ($item)
 
 _beforeGetPdf ()
 
 _afterGetPdf ()
 
 _formatOptionValue ($value, $order)
 
 _initRenderer ($type)
 
 _getRenderer ($type)
 
 _drawItem (\Magento\Framework\DataObject $item, \Zend_Pdf_Page $page, \Magento\Sales\Model\Order $order)
 
 _setFontRegular ($object, $size=7)
 
 _setFontBold ($object, $size=7)
 
 _setFontItalic ($object, $size=7)
 
 _setPdf (\Zend_Pdf $pdf)
 
 _getPdf ()
 
- Protected Member Functions inherited from DataObject
 _getData ($key)
 
 _underscore ($name)
 

Protected Attributes

 $_storeManager
 
 $_localeResolver
 
- Protected Attributes inherited from AbstractPdf
 $_renderers = []
 
 $_pdf
 
 $_paymentData
 
 $string
 
 $_localeDate
 
 $_scopeConfig
 
 $_mediaDirectory
 
 $_rootDirectory
 
 $_pdfConfig
 
 $_pdfTotalFactory
 
 $_pdfItemsFactory
 
 $inlineTranslation
 
 $addressRenderer
 
- Protected Attributes inherited from DataObject
 $_data = []
 

Additional Inherited Members

- Data Fields inherited from AbstractPdf
 $y
 
const XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID = 'sales_pdf/invoice/put_order_id'
 
const XML_PATH_SALES_PDF_SHIPMENT_PUT_ORDER_ID = 'sales_pdf/shipment/put_order_id'
 
const XML_PATH_SALES_PDF_CREDITMEMO_PUT_ORDER_ID = 'sales_pdf/creditmemo/put_order_id'
 
- Static Protected Attributes inherited from DataObject
static $_underscoreCache = []
 

Detailed Description

Sales Order Invoice PDF model @SuppressWarnings(PHPMD.CouplingBetweenObjects)

Definition at line 14 of file Invoice.php.

Constructor & Destructor Documentation

◆ __construct()

Parameters
\Magento\Payment\Helper\Data$paymentData
\Magento\Framework\Stdlib\StringUtils$string
\Magento\Framework\App\Config\ScopeConfigInterface$scopeConfig
\Magento\Framework\Filesystem$filesystem
Config$pdfConfig
\Magento\Sales\Model\Order\Pdf\Total\Factory$pdfTotalFactory
\Magento\Sales\Model\Order\Pdf\ItemsFactory$pdfItemsFactory
\Magento\Framework\Stdlib\DateTime\TimezoneInterface$localeDate
\Magento\Framework\Translate\Inline\StateInterface$inlineTranslation
\Magento\Sales\Model\Order\Address\Renderer$addressRenderer
\Magento\Store\Model\StoreManagerInterface$storeManager
\Magento\Framework\Locale\ResolverInterface$localeResolver
array$data@SuppressWarnings(PHPMD.ExcessiveParameterList)

Definition at line 43 of file Invoice.php.

57  {
58  $this->_storeManager = $storeManager;
59  $this->_localeResolver = $localeResolver;
60  parent::__construct(
61  $paymentData,
62  $string,
63  $scopeConfig,
65  $pdfConfig,
66  $pdfTotalFactory,
67  $pdfItemsFactory,
68  $localeDate,
71  $data
72  );
73  }
$storeManager
$filesystem

Member Function Documentation

◆ _drawHeader()

_drawHeader ( \Zend_Pdf_Page  $page)
protected

Draw header for item table

Parameters
\Zend_Pdf_Page$page
Returns
void

Definition at line 81 of file Invoice.php.

82  {
83  /* Add table head */
84  $this->_setFontRegular($page, 10);
85  $page->setFillColor(new \Zend_Pdf_Color_Rgb(0.93, 0.92, 0.92));
86  $page->setLineColor(new \Zend_Pdf_Color_GrayScale(0.5));
87  $page->setLineWidth(0.5);
88  $page->drawRectangle(25, $this->y, 570, $this->y - 15);
89  $this->y -= 10;
90  $page->setFillColor(new \Zend_Pdf_Color_Rgb(0, 0, 0));
91 
92  //columns headers
93  $lines[0][] = ['text' => __('Products'), 'feed' => 35];
94 
95  $lines[0][] = ['text' => __('SKU'), 'feed' => 290, 'align' => 'right'];
96 
97  $lines[0][] = ['text' => __('Qty'), 'feed' => 435, 'align' => 'right'];
98 
99  $lines[0][] = ['text' => __('Price'), 'feed' => 360, 'align' => 'right'];
100 
101  $lines[0][] = ['text' => __('Tax'), 'feed' => 495, 'align' => 'right'];
102 
103  $lines[0][] = ['text' => __('Subtotal'), 'feed' => 565, 'align' => 'right'];
104 
105  $lineBlock = ['lines' => $lines, 'height' => 5];
106 
107  $this->drawLineBlocks($page, [$lineBlock], ['table_header' => true]);
108  $page->setFillColor(new \Zend_Pdf_Color_GrayScale(0));
109  $this->y -= 20;
110  }
__()
Definition: __.php:13
$page
Definition: pages.php:8
drawLineBlocks(\Zend_Pdf_Page $page, array $draw, array $pageSettings=[])

◆ getPdf()

getPdf (   $invoices = [])

Return PDF document

Parameters
array | Collection$invoices
Returns
\Zend_Pdf

Definition at line 118 of file Invoice.php.

119  {
120  $this->_beforeGetPdf();
121  $this->_initRenderer('invoice');
122 
123  $pdf = new \Zend_Pdf();
124  $this->_setPdf($pdf);
125  $style = new \Zend_Pdf_Style();
126  $this->_setFontBold($style, 10);
127 
128  foreach ($invoices as $invoice) {
129  if ($invoice->getStoreId()) {
130  $this->_localeResolver->emulate($invoice->getStoreId());
131  $this->_storeManager->setCurrentStore($invoice->getStoreId());
132  }
133  $page = $this->newPage();
134  $order = $invoice->getOrder();
135  /* Add image */
136  $this->insertLogo($page, $invoice->getStore());
137  /* Add address */
138  $this->insertAddress($page, $invoice->getStore());
139  /* Add head */
140  $this->insertOrder(
141  $page,
142  $order,
143  $this->_scopeConfig->isSetFlag(
144  self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID,
145  \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
146  $order->getStoreId()
147  )
148  );
149  /* Add document text and number */
150  $this->insertDocumentNumber($page, __('Invoice # ') . $invoice->getIncrementId());
151  /* Add table */
152  $this->_drawHeader($page);
153  /* Add body */
154  foreach ($invoice->getAllItems() as $item) {
155  if ($item->getOrderItem()->getParentItem()) {
156  continue;
157  }
158  /* Draw item */
159  $this->_drawItem($item, $page, $order);
160  $page = end($pdf->pages);
161  }
162  /* Add totals */
163  $this->insertTotals($page, $invoice);
164  if ($invoice->getStoreId()) {
165  $this->_localeResolver->revert();
166  }
167  }
168  $this->_afterGetPdf();
169  return $pdf;
170  }
_drawItem(\Magento\Framework\DataObject $item, \Zend_Pdf_Page $page, \Magento\Sales\Model\Order $order)
$order
Definition: order.php:55
__()
Definition: __.php:13
$invoices
insertDocumentNumber(\Zend_Pdf_Page $page, $text)
$page
Definition: pages.php:8
$invoice
_drawHeader(\Zend_Pdf_Page $page)
Definition: Invoice.php:81
insertOrder(&$page, $obj, $putOrderId=true)

◆ newPage()

newPage ( array  $settings = [])

Create new page and assign to PDF object

Parameters
array$settings
Returns
\Zend_Pdf_Page

Definition at line 178 of file Invoice.php.

179  {
180  /* Add new table head */
181  $page = $this->_getPdf()->newPage(\Zend_Pdf_Page::SIZE_A4);
182  $this->_getPdf()->pages[] = $page;
183  $this->y = 800;
184  if (!empty($settings['table_header'])) {
185  $this->_drawHeader($page);
186  }
187  return $page;
188  }
$page
Definition: pages.php:8
$settings
Definition: bootstrap.php:29
_drawHeader(\Zend_Pdf_Page $page)
Definition: Invoice.php:81
const SIZE_A4
Definition: Page.php:54

Field Documentation

◆ $_localeResolver

$_localeResolver
protected

Definition at line 24 of file Invoice.php.

◆ $_storeManager

$_storeManager
protected

Definition at line 19 of file Invoice.php.


The documentation for this class was generated from the following file: