public function setRequest(Mage_Shipping_Model_Rate_Request $request) { $this->_request = $request; $r = new Varien_Object(); if ($request->getLimitMethod()) { $r->setService($request->getLimitMethod()); } if ($request->getTntAccount()) { $r->setTntAccount($request->getTntAccount()); } else { $r->setTntAccount($this->getConfigData('account')); } if ($request->getExpZipCode()) { $r->setExpZipCode($request->getExpZipCode()); } else { $r->setExpZipCode(Mage::getStoreConfig('carriers/tnt/code_postal', $this->getStore())); } if ($request->getExpCity()) { $r->setExpCity($request->getExpCity()); } else { $r->setExpCity(Mage::getStoreConfig('carriers/tnt/ville', $this->getStore())); } if ($request->getDestPostcode()) { $r->setDestPostcode($request->getDestPostcode()); } else { } if ($request->getDestCity()) { $r->setDestCity($request->getDestCity()); } else { } $this->_rawRequest = $r; return $this; }
public function collect(Mage_Sales_Model_Quote_Address $address) { $address->setData('zitec_dpd_cashondelivery_surcharge', 0); $address->setData('base_zitec_dpd_cashondelivery_surcharge', 0); $address->setData('zitec_dpd_cashondelivery_surcharge_tax', 0); $address->setData('base_zitec_dpd_cashondelivery_surcharge_tax', 0); $paymentMethod = $address->getQuote()->getPayment()->getMethod(); if ($paymentMethod == Mage::helper('zitec_dpd')->getDpdPaymentCode() && $address->getAddressType() == 'shipping') { $quote = $address->getQuote(); /* @var $quote Mage_Sales_Model_Quote */ $shippingAddress = $quote->getShippingAddress(); $request = new Varien_Object(); $request->setWebsiteId(Mage::helper('zitec_dpd/payment')->getWebsiteId()); $request->setDestCountryId($shippingAddress->getCountryId()); $request->setDestRegionId($shippingAddress->getRegionId()); $request->setDestPostcode($shippingAddress->getPostcode()); $request->setPackageWeight($shippingAddress->getWeight()); if ($this->_getTaxHelper()->shippingPriceIncludesTax($address->getQuote()->getStoreId())) { $request->setData('zitec_table_price', $shippingAddress->getBaseSubtotalInclTax()); } else { $request->setData('zitec_table_price', $shippingAddress->getBaseSubtotal()); } $request->setMethod(str_replace(Mage::helper('zitec_dpd')->getDPDCarrierCode() . '_', '', $shippingAddress->getShippingMethod())); $tablerateSurcharge = Mage::getResourceModel('zitec_dpd/carrier_tablerate')->getCashOnDeliverySurcharge($request); if (is_null($tablerateSurcharge)) { return $this; } elseif (!empty($tablerateSurcharge)) { $baseCashondeliverySurcharge = $this->_getHelper()->calculateQuoteBaseCashOnDeliverySurcharge($quote, $tablerateSurcharge); } else { $baseCashondeliverySurcharge = $this->_getHelper()->returnDefaultBaseCashOnDeliverySurcharge($quote); } if (!isset($baseCashondeliverySurcharge)) { return $this; } $baseCurrencyCode = $quote->getStore()->getBaseCurrencyCode(); $currentCurrencyCode = $quote->getStore()->getCurrentCurrencyCode(); $cashondeliverySurcharge = Mage::helper('directory')->currencyConvert($baseCashondeliverySurcharge, $baseCurrencyCode, $currentCurrencyCode); $address->setData('zitec_dpd_cashondelivery_surcharge', $cashondeliverySurcharge); $address->setData('base_zitec_dpd_cashondelivery_surcharge', $baseCashondeliverySurcharge); $this->_calculateSurchargeSalesTax($address); $quote->save(); } $address->setGrandTotal($address->getGrandTotal() + $address->getData('zitec_dpd_cashondelivery_surcharge')); $address->setBaseGrandTotal($address->getBaseGrandTotal() + $address->getData('base_zitec_dpd_cashondelivery_surcharge')); return $this; }
/** * Map request to shipment * * @param Varien_Object $request * @return null */ protected function _mapRequestToShipment(Varien_Object $request) { $customsValue = $request->getPackageParams()->getCustomsValue(); $request->setOrigPersonName($request->getShipperContactPersonName()); $request->setOrigPostal($request->getShipperAddressPostalCode()); $request->setOrigPhoneNumber($request->getShipperContactPhoneNumber()); $request->setOrigCompanyName($request->getShipperContactCompanyName()); $request->setOrigCountryId($request->getShipperAddressCountryCode()); $request->setOrigState($request->getShipperAddressStateOrProvinceCode()); $request->setOrigCity($request->getShipperAddressCity()); $request->setOrigStreet($request->getShipperAddressStreet1() . ' ' . $request->getShipperAddressStreet2()); $request->setOrigStreetLine2($request->getShipperAddressStreet2()); $request->setDestPersonName($request->getRecipientContactPersonName()); $request->setDestPostcode($request->getRecipientAddressPostalCode()); $request->setDestPhoneNumber($request->getRecipientContactPhoneNumber()); $request->setDestCompanyName($request->getRecipientContactCompanyName()); $request->setDestCountryId($request->getRecipientAddressCountryCode()); $request->setDestRegionCode($request->getRecipientAddressStateOrProvinceCode()); $request->setDestCity($request->getRecipientAddressCity()); $request->setDestStreet($request->getRecipientAddressStreet1()); $request->setDestStreetLine2($request->getRecipientAddressStreet2()); $request->setLimitMethod($request->getShippingMethod()); $request->setPackageValue($customsValue); $request->setValueWithDiscount($customsValue); $request->setPackageCustomsValue($customsValue); $request->setFreeMethodWeight(0); $request->setDhlShipmentType($request->getPackagingType()); $request->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax()); }
public function getSurchage() { if ($this->_surcharge === null) { $order = $this->fetchOrder(); if ($order) { $this->_surcharge = $order->getData('base_zitec_dpd_cashondelivery_surcharge'); } else { $quote = Mage::helper('zitec_dpd/payment')->getQuote(); /* @var $quote Mage_Sales_Model_Quote */ if ($quote) { $shippingAddress = $quote->getShippingAddress(); $request = new Varien_Object(); $request->setWebsiteId(Mage::helper('zitec_dpd/payment')->getWebsiteId()); $request->setDestCountryId($shippingAddress->getCountryId()); $request->setDestRegionId($shippingAddress->getRegionId()); $request->setDestPostcode($shippingAddress->getPostcode()); $request->setPackageWeight($shippingAddress->getWeight()); if ($this->_getTaxHelper()->shippingPriceIncludesTax($quote->getStoreId())) { $request->setData('zitec_table_price', $shippingAddress->getBaseSubtotalInclTax()); } else { $request->setData('zitec_table_price', $shippingAddress->getBaseSubtotal()); } $request->setMethod(str_replace(Mage::helper('zitec_dpd')->getDPDCarrierCode() . '_', '', $shippingAddress->getShippingMethod())); $tablerateSurcharge = Mage::getResourceModel('zitec_dpd/carrier_tablerate')->getCashOnDeliverySurcharge($request); if (is_null($tablerateSurcharge) || is_array($tablerateSurcharge) && is_null($tablerateSurcharge['cashondelivery_surcharge'])) { return null; } elseif (!empty($tablerateSurcharge)) { $this->_surcharge = $this->_getHelper()->calculateQuoteBaseCashOnDeliverySurcharge($quote, $tablerateSurcharge); } else { $this->_surcharge = $this->_getHelper()->returnDefaultBaseCashOnDeliverySurcharge($quote); } } } } return $this->_surcharge; }