1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
26:
27: 28: 29: 30: 31: 32: 33:
34: class Mage_Checkout_Multishipping_AddressController extends Mage_Core_Controller_Front_Action
35: {
36: 37: 38: 39: 40:
41: protected function _getCheckout()
42: {
43: return Mage::getSingleton('checkout/type_multishipping');
44: }
45:
46: 47: 48: 49: 50:
51: protected function _getState()
52: {
53: return Mage::getSingleton('checkout/type_multishipping_state');
54: }
55:
56:
57: 58: 59:
60: public function newShippingAction()
61: {
62: $this->_getState()->setActiveStep(Mage_Checkout_Model_Type_Multishipping_State::STEP_SELECT_ADDRESSES);
63: $this->loadLayout();
64: $this->_initLayoutMessages('customer/session');
65: if ($addressForm = $this->getLayout()->getBlock('customer_address_edit')) {
66: $addressForm->setTitle(Mage::helper('checkout')->__('Create Shipping Address'))
67: ->setSuccessUrl(Mage::getUrl('*/*/shippingSaved'))
68: ->setErrorUrl(Mage::getUrl('*/*/*'));
69:
70: if ($headBlock = $this->getLayout()->getBlock('head')) {
71: $headBlock->setTitle($addressForm->getTitle() . ' - ' . $headBlock->getDefaultTitle());
72: }
73:
74: if ($this->_getCheckout()->getCustomerDefaultShippingAddress()) {
75: $addressForm->setBackUrl(Mage::getUrl('*/multishipping/addresses'));
76: }
77: else {
78: $addressForm->setBackUrl(Mage::getUrl('*/cart/'));
79: }
80: }
81: $this->renderLayout();
82: }
83:
84: public function shippingSavedAction()
85: {
86: 87: 88:
89: if (count($this->_getCheckout()->getCustomer()->getAddresses()) == 1) {
90: $this->_getCheckout()->reset();
91: }
92: $this->_redirect('*/multishipping/addresses');
93: }
94:
95: public function editShippingAction()
96: {
97: $this->_getState()->setActiveStep(Mage_Checkout_Model_Type_Multishipping_State::STEP_SHIPPING);
98: $this->loadLayout();
99: $this->_initLayoutMessages('customer/session');
100: if ($addressForm = $this->getLayout()->getBlock('customer_address_edit')) {
101: $addressForm->setTitle(Mage::helper('checkout')->__('Edit Shipping Address'))
102: ->setSuccessUrl(Mage::getUrl('*/*/editShippingPost', array('id'=>$this->getRequest()->getParam('id'))))
103: ->setErrorUrl(Mage::getUrl('*/*/*'));
104:
105: if ($headBlock = $this->getLayout()->getBlock('head')) {
106: $headBlock->setTitle($addressForm->getTitle() . ' - ' . $headBlock->getDefaultTitle());
107: }
108:
109: if ($this->_getCheckout()->getCustomerDefaultShippingAddress()) {
110: $addressForm->setBackUrl(Mage::getUrl('*/multishipping/shipping'));
111: }
112: }
113: $this->renderLayout();
114: }
115:
116: public function editShippingPostAction()
117: {
118: if ($addressId = $this->getRequest()->getParam('id')) {
119: Mage::getModel('checkout/type_multishipping')
120: ->updateQuoteCustomerShippingAddress($addressId);
121: }
122: $this->_redirect('*/multishipping/shipping');
123: }
124:
125: public function selectBillingAction()
126: {
127: $this->_getState()->setActiveStep(Mage_Checkout_Model_Type_Multishipping_State::STEP_BILLING);
128: $this->loadLayout();
129: $this->_initLayoutMessages('customer/session');
130: $this->_initLayoutMessages('checkout/session');
131: $this->renderLayout();
132: }
133:
134: public function newBillingAction()
135: {
136: $this->loadLayout();
137: $this->_initLayoutMessages('customer/session');
138: if ($addressForm = $this->getLayout()->getBlock('customer_address_edit')) {
139: $addressForm->setTitle(Mage::helper('checkout')->__('Create Billing Address'))
140: ->setSuccessUrl(Mage::getUrl('*/*/selectBilling'))
141: ->setErrorUrl(Mage::getUrl('*/*/*'))
142: ->setBackUrl(Mage::getUrl('*/*/selectBilling'));
143:
144: if ($headBlock = $this->getLayout()->getBlock('head')) {
145: $headBlock->setTitle($addressForm->getTitle() . ' - ' . $headBlock->getDefaultTitle());
146: }
147: }
148: $this->renderLayout();
149: }
150:
151: public function editAddressAction()
152: {
153: $this->loadLayout();
154: $this->_initLayoutMessages('customer/session');
155: if ($addressForm = $this->getLayout()->getBlock('customer_address_edit')) {
156: $addressForm->setTitle(Mage::helper('checkout')->__('Edit Address'))
157: ->setSuccessUrl(Mage::getUrl('*/*/selectBilling'))
158: ->setErrorUrl(Mage::getUrl('*/*/*', array('id'=>$this->getRequest()->getParam('id'))))
159: ->setBackUrl(Mage::getUrl('*/*/selectBilling'));
160:
161: if ($headBlock = $this->getLayout()->getBlock('head')) {
162: $headBlock->setTitle($addressForm->getTitle() . ' - ' . $headBlock->getDefaultTitle());
163: }
164: }
165: $this->renderLayout();
166: }
167:
168: public function editBillingAction()
169: {
170: $this->_getState()->setActiveStep(
171: Mage_Checkout_Model_Type_Multishipping_State::STEP_BILLING
172: );
173: $this->loadLayout();
174: $this->_initLayoutMessages('customer/session');
175: if ($addressForm = $this->getLayout()->getBlock('customer_address_edit')) {
176: $addressForm->setTitle(Mage::helper('checkout')->__('Edit Billing Address'))
177: ->setSuccessUrl(Mage::getUrl('*/*/saveBilling', array('id'=>$this->getRequest()->getParam('id'))))
178: ->setErrorUrl(Mage::getUrl('*/*/*', array('id'=>$this->getRequest()->getParam('id'))))
179: ->setBackUrl(Mage::getUrl('*/multishipping/overview'));
180: if ($headBlock = $this->getLayout()->getBlock('head')) {
181: $headBlock->setTitle($addressForm->getTitle() . ' - ' . $headBlock->getDefaultTitle());
182: }
183: }
184: $this->renderLayout();
185: }
186:
187: public function setBillingAction()
188: {
189: if ($addressId = $this->getRequest()->getParam('id')) {
190: Mage::getModel('checkout/type_multishipping')
191: ->setQuoteCustomerBillingAddress($addressId);
192: }
193: $this->_redirect('*/multishipping/billing');
194: }
195:
196: public function saveBillingAction()
197: {
198: if ($addressId = $this->getRequest()->getParam('id')) {
199: Mage::getModel('checkout/type_multishipping')
200: ->setQuoteCustomerBillingAddress($addressId);
201: }
202: $this->_redirect('*/multishipping/overview');
203: }
204: }
205: