Example #1
0
 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;
 }
Example #3
0
 /**
  * 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;
 }