1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Sales
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Sales Order Shipment Pdf default items renderer
29: *
30: * @category Mage
31: * @package Mage_Sales
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Sales_Model_Order_Pdf_Items_Shipment_Default extends Mage_Sales_Model_Order_Pdf_Items_Abstract
35: {
36: /**
37: * Draw item line
38: */
39: public function draw()
40: {
41: $item = $this->getItem();
42: $pdf = $this->getPdf();
43: $page = $this->getPage();
44: $lines = array();
45:
46: // draw Product name
47: $lines[0] = array(array(
48: 'text' => Mage::helper('core/string')->str_split($item->getName(), 60, true, true),
49: 'feed' => 100,
50: ));
51:
52: // draw QTY
53: $lines[0][] = array(
54: 'text' => $item->getQty()*1,
55: 'feed' => 35
56: );
57:
58: // draw SKU
59: $lines[0][] = array(
60: 'text' => Mage::helper('core/string')->str_split($this->getSku($item), 25),
61: 'feed' => 565,
62: 'align' => 'right'
63: );
64:
65: // Custom options
66: $options = $this->getItemOptions();
67: if ($options) {
68: foreach ($options as $option) {
69: // draw options label
70: $lines[][] = array(
71: 'text' => Mage::helper('core/string')->str_split(strip_tags($option['label']), 70, true, true),
72: 'font' => 'italic',
73: 'feed' => 110
74: );
75:
76: // draw options value
77: if ($option['value']) {
78: $_printValue = isset($option['print_value'])
79: ? $option['print_value']
80: : strip_tags($option['value']);
81: $values = explode(', ', $_printValue);
82: foreach ($values as $value) {
83: $lines[][] = array(
84: 'text' => Mage::helper('core/string')->str_split($value, 50, true, true),
85: 'feed' => 115
86: );
87: }
88: }
89: }
90: }
91:
92: $lineBlock = array(
93: 'lines' => $lines,
94: 'height' => 20
95: );
96:
97: $page = $pdf->drawLineBlocks($page, array($lineBlock), array('table_header' => true));
98: $this->setPage($page);
99: }
100: }
101: