/** * load customer addresses in defined format * * @param Fooman_PdfCustomiser_Helper_Pdf $helper * @param $order * @param $which * * @return mixed|string */ public function PrepareCustomerAddress(Fooman_PdfCustomiser_Helper_Pdf $helper, $order, $which) { if (version_compare(Mage::getVersion(), '1.4.2.0') < 0) { $format = Mage::getStoreConfig('sales_pdf/all/alladdressformat', $helper->getStoreId()); } else { $format = 'pdf'; } if ($which == 'billing') { $billingAddress = $this->_fixAddress($order->getBillingAddress()->format($format)); if ($order->getCustomerTaxvat()) { $billingAddress .= "<br/>" . Mage::helper('sales')->__('TAX/VAT Number') . ": " . $order->getCustomerTaxvat(); } elseif (!$order->getCustomerIsGuest()) { $customer = Mage::getModel('customer/customer')->load($order->getCustomerId()); if ($customer->getTaxvat()) { $billingAddress .= "<br/>" . Mage::helper('sales')->__('TAX/VAT Number') . ": " . $customer->getTaxvat(); } } // show the email address underneath the billing address if (Mage::getStoreConfig('sales_pdf/all/alldisplayemail', $helper->getStoreId())) { $billingAddress .= "<br/>" . $order->getCustomerEmail(); } $billingAddress = str_replace("|", "<br/>", $billingAddress); $billingAddress = preg_replace("/(<br\\s*\\/?>\\s*)+/", "<br/>", $billingAddress); return $this->_fixAddressEncoding($billingAddress); } else { if (!$order->getIsVirtual()) { $shippingAddress = $this->_fixAddress($order->getShippingAddress()->format($format)); } else { $shippingAddress = ''; } $shippingAddress = str_replace("|", "<br/>", $shippingAddress); $shippingAddress = preg_replace("/(<br\\s*\\/?>\\s*)+/", "<br/>", $shippingAddress); return $this->_fixAddressEncoding($shippingAddress); } }
/** * adjust sort order of global pdf config nodes * based on settings in database * * @param $helper * */ protected function adjustPdfTotalsConfig(Fooman_PdfCustomiser_Helper_Pdf $helper) { if (!$helper->hasAdjustedTotalsSort) { $existingConfig = Mage::getConfig()->getNode('global/pdf/totals'); foreach ($existingConfig as $totals) { foreach ($totals as $total => $settings) { $newSortOrder = Mage::getStoreConfig('sales_pdf/totals/' . (string) $total, $helper->getStoreId()); if ($newSortOrder) { Mage::getConfig()->setNode('global/pdf/totals/' . $total . '/sort_order', $newSortOrder, true); } } } } $helper->hasAdjustedTotalsSort = true; }
/** * Prepare the payment info as html * * @param Fooman_PdfCustomiser_Helper_Pdf $helper * @param $order * @param $printItem * * @return mixed * @throws Exception */ public function PreparePayment(Fooman_PdfCustomiser_Helper_Pdf $helper, $order, $printItem) { try { $order->getPayment()->getMethodInstance()->setStore($helper->getStoreId()); } catch (Exception $e) { //in case the payment method has been deleted. return $order->getPayment()->getMethod(); } //try if template exists in admin for pdf try { $theme = (string) Mage::getConfig()->getNode('stores/admin/design/theme/default'); if (empty($theme)) { $theme = 'default'; } Mage::getDesign()->setPackageName('default'); Mage::getDesign()->setTheme($theme); $paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true)->setArea(Mage_Core_Model_App_Area::AREA_ADMINHTML)->setTheme($theme)->setPackageName('default'); $paymentBlock->getMethod()->setStore($helper->getStoreId()); $paymentInfo = $paymentBlock->toPdf(); if (!$paymentInfo) { throw new Exception('empty payment method - try toHtml method'); } //unfortunately not all payment methods supply a file/method, fall back on standard html output } catch (Exception $e) { Mage::getDesign()->setPackageName(''); Mage::getDesign()->setTheme(''); $paymentInfo = Mage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true)->toHtml(); } Mage::getDesign()->setPackageName(''); Mage::getDesign()->setTheme(''); $paymentInfo = str_replace("{{pdf_row_separator}}", "<br/>", $paymentInfo); return $paymentInfo; }