Permalink
Browse files

Add custom setting for invoice pdf

  • Loading branch information...
1 parent 596708d commit bdf0d9fc04fa9f39741f04c45b1906f69e1d0383 @kiang committed Apr 21, 2012
Showing with 147 additions and 0 deletions.
  1. +147 −0 app/code/local/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category Mage
+ * @package Mage_Sales
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
+ */
+
+/**
+ * Sales Order Invoice Pdf default items renderer
+ *
+ * @category Mage
+ * @package Mage_Sales
+ * @author Magento Core Team <core@magentocommerce.com>
+ */
+class Mage_Sales_Model_Order_Pdf_Items_Invoice_Default extends Mage_Sales_Model_Order_Pdf_Items_Abstract
+{
+ /**
+ * Draw item line
+ */
+ public function draw()
+ {
+ $order = $this->getOrder();
+ $item = $this->getItem();
+ $pdf = $this->getPdf();
+ $page = $this->getPage();
+ $lines = array();
+
+ // draw Product name
+ $lines[0] = array(array(
+ 'text' => Mage::helper('core/string')->str_split($item->getName(), 35, true, true),
+ 'feed' => 35,
+ ));
+
+ // draw SKU
+ $lines[0][] = array(
+ 'text' => Mage::helper('core/string')->str_split($this->getSku($item), 17),
+ 'feed' => 290,
+ 'align' => 'right'
+ );
+
+ // draw QTY
+ $lines[0][] = array(
+ 'text' => $item->getQty() * 1,
+ 'feed' => 435,
+ 'align' => 'right'
+ );
+
+ // draw item Prices
+ $i = 0;
+ $prices = $this->getItemPricesForDisplay();
+ foreach ($prices as $priceData){
+ if (isset($priceData['label'])) {
+ // draw Price label
+ $lines[$i][] = array(
+ 'text' => $priceData['label'],
+ 'feed' => 360,
+ 'align' => 'right'
+ );
+ // draw Subtotal label
+ $lines[$i][] = array(
+ 'text' => $priceData['label'],
+ 'feed' => 530,
+ 'align' => 'right'
+ );
+ $i++;
+ }
+ // draw Price
+ $lines[$i][] = array(
+ 'text' => $priceData['price'],
+ 'feed' => 360,
+ 'font' => 'bold',
+ 'align' => 'right'
+ );
+ // draw Subtotal
+ $lines[$i][] = array(
+ 'text' => $priceData['subtotal'],
+ 'feed' => 570,
+ 'font' => 'bold',
+ 'align' => 'right'
+ );
+ $i++;
+ }
+
+ // draw Tax
+ $lines[0][] = array(
+ 'text' => $order->formatPriceTxt($item->getTaxAmount()),
+ 'feed' => 495,
+ 'font' => 'bold',
+ 'align' => 'right'
+ );
+
+ // custom options
+ $options = $this->getItemOptions();
+ if ($options) {
+ foreach ($options as $option) {
+ // draw options label
+ $lines[][] = array(
+ 'text' => Mage::helper('core/string')->str_split(strip_tags($option['label']), 40, true, true),
+ 'font' => 'italic',
+ 'feed' => 35
+ );
+
+ if ($option['value']) {
+ if (isset($option['print_value'])) {
+ $_printValue = $option['print_value'];
+ } else {
+ $_printValue = strip_tags($option['value']);
+ }
+ $values = explode(', ', $_printValue);
+ foreach ($values as $value) {
+ $lines[][] = array(
+ 'text' => Mage::helper('core/string')->str_split($value, 30, true, true),
+ 'feed' => 40
+ );
+ }
+ }
+ }
+ }
+
+ $lineBlock = array(
+ 'lines' => $lines,
+ 'height' => 20
+ );
+
+ $page = $pdf->drawLineBlocks($page, array($lineBlock), array('table_header' => true));
+ $this->setPage($page);
+ }
+}

0 comments on commit bdf0d9f

Please sign in to comment.