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_Adminhtml
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: * Adminhtml invoice create form
29: *
30: * @category Mage
31: * @package Mage_Adminhtml
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Adminhtml_Block_Sales_Order_Invoice_Create_Form extends Mage_Adminhtml_Block_Sales_Order_Abstract
35: {
36: /**
37: * Retrieve invoice order
38: *
39: * @return Mage_Sales_Model_Order
40: */
41: public function getOrder()
42: {
43: return $this->getInvoice()->getOrder();
44: }
45:
46: /**
47: * Retrieve source
48: *
49: * @return Mage_Sales_Model_Order_Invoice
50: */
51: public function getSource()
52: {
53: return $this->getInvoice();
54: }
55:
56: /**
57: * Retrieve invoice model instance
58: *
59: * @return Mage_Sales_Model_Order_Invoice
60: */
61: public function getInvoice()
62: {
63: return Mage::registry('current_invoice');
64: }
65:
66: protected function _prepareLayout()
67: {
68: /* $infoBlock = $this->getLayout()->createBlock('adminhtml/sales_order_view_info')
69: ->setOrder($this->getInvoice()->getOrder());
70: $this->setChild('order_info', $infoBlock);
71: */
72: /* $this->setChild(
73: 'items',
74: $this->getLayout()->createBlock('adminhtml/sales_order_invoice_create_items')
75: );
76: */
77: $trackingBlock = $this->getLayout()->createBlock('adminhtml/sales_order_invoice_create_tracking');
78: //$this->setChild('order_tracking', $trackingBlock);
79: $this->setChild('tracking', $trackingBlock);
80:
81:
82: /*
83: $paymentInfoBlock = $this->getLayout()->createBlock('adminhtml/sales_order_payment')
84: ->setPayment($this->getInvoice()->getOrder()->getPayment());
85: $this->setChild('payment_info', $paymentInfoBlock);
86: */
87: return parent::_prepareLayout();
88: }
89:
90: public function getSaveUrl()
91: {
92: return $this->getUrl('*/*/save', array('order_id' => $this->getInvoice()->getOrderId()));
93: }
94:
95: public function canCreateShipment()
96: {
97: foreach ($this->getInvoice()->getAllItems() as $item) {
98: if ($item->getOrderItem()->getQtyToShip()) {
99: return true;
100: }
101: }
102: return false;
103: }
104:
105: public function hasInvoiceShipmentTypeMismatch() {
106: foreach ($this->getInvoice()->getAllItems() as $item) {
107: if ($item->getOrderItem()->isChildrenCalculated() && !$item->getOrderItem()->isShipSeparately()) {
108: return true;
109: }
110: }
111: return false;
112: }
113:
114: public function canShipPartiallyItem()
115: {
116: $value = $this->getOrder()->getCanShipPartiallyItem();
117: if (!is_null($value) && !$value) {
118: return false;
119: }
120: return true;
121: }
122:
123: /**
124: * Return forced creating of shipment flag
125: *
126: * @return integer
127: */
128: public function getForcedShipmentCreate()
129: {
130: return (int) $this->getOrder()->getForcedDoShipmentWithInvoice();
131: }
132: }
133: