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 sales order create totals block
29: *
30: * @category Mage
31: * @package Mage_Adminhtml
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34:
35: class Mage_Adminhtml_Block_Sales_Order_Create_Totals extends Mage_Adminhtml_Block_Sales_Order_Create_Abstract
36: {
37: protected $_totalRenderers;
38: protected $_defaultRenderer = 'adminhtml/sales_order_create_totals_default';
39:
40: public function __construct()
41: {
42: parent::__construct();
43: $this->setId('sales_order_create_totals');
44: }
45:
46: public function getTotals()
47: {
48: return $this->getQuote()->getTotals();
49: }
50:
51: public function getHeaderText()
52: {
53: return Mage::helper('sales')->__('Order Totals');
54: }
55:
56: public function getHeaderCssClass()
57: {
58: return 'head-money';
59: }
60:
61: protected function _getTotalRenderer($code)
62: {
63: $blockName = $code.'_total_renderer';
64: $block = $this->getLayout()->getBlock($blockName);
65: if (!$block) {
66: $block = $this->_defaultRenderer;
67: $config = Mage::getConfig()->getNode("global/sales/quote/totals/{$code}/admin_renderer");
68: if ($config) {
69: $block = (string) $config;
70: }
71:
72: $block = $this->getLayout()->createBlock($block, $blockName);
73: }
74: /**
75: * Transfer totals to renderer
76: */
77: $block->setTotals($this->getTotals());
78: return $block;
79: }
80:
81: public function renderTotal($total, $area = null, $colspan = 1)
82: {
83: return $this->_getTotalRenderer($total->getCode())
84: ->setTotal($total)
85: ->setColspan($colspan)
86: ->setRenderingArea(is_null($area) ? -1 : $area)
87: ->toHtml();
88: }
89:
90: public function renderTotals($area = null, $colspan = 1)
91: {
92: $html = '';
93: foreach($this->getTotals() as $total) {
94: if ($total->getArea() != $area && $area != -1) {
95: continue;
96: }
97: $html .= $this->renderTotal($total, $area, $colspan);
98: }
99: return $html;
100: }
101:
102: public function canSendNewOrderConfirmationEmail()
103: {
104: return Mage::helper('sales')->canSendNewOrderConfirmationEmail($this->getQuote()->getStoreId());
105: }
106: }
107: