/** * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Quote_Address_Total_Abstract */ public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); $payment = $quote->getPayment(); if ($address->getAddressType() === 'billing') { return $this; } $configId = $payment->getPayoneConfigPaymentMethodId(); if (empty($configId)) { return $this; } $config = $this->helperConfig()->getConfigPaymentMethodById($configId, $quote->getStoreId()); if (empty($config)) { return $this; } $feeConfig = $config->getFeeConfigForQuote($quote); if (!is_array($feeConfig) or !array_key_exists('fee_config', $feeConfig)) { return $this; } $paymentFee = $feeConfig['fee_config']; $oldShippingAmount = $address->getBaseShippingAmount(); $newShippingAmount = $oldShippingAmount + $paymentFee; $address->setBaseShippingAmount($newShippingAmount); $address->setShippingAmount($quote->getStore()->convertPrice($newShippingAmount, false)); return parent::collect($address); }
/** * Prepare Data to Storage for Order * * @param Mage_Sales_Model_Quote_Address $address * @return Magestore_Webpos_Model_Total_Quote_Cash */ public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); $cashin = Mage::getSingleton('webpos/session')->getWebposCash(); if ($cashin && $cashin <= 0) { return $this; } $baseCashin = $cashin / $quote->getStore()->convertPrice(1); $quote->setWebposCash($cashin); $quote->setWebposBaseCash($baseCashin); if (!$quote->isVirtual() && $address->getAddressType() == 'billing') { return $this; } $address->setWebposCash($quote->getWebposCash())->setWebposBaseCash($quote->getWebposBaseCash()); /* $address->setTotalPaid($quote->getWebposCash()) ->setBaseTotalPaid($quote->getWebposBaseCash()); */ if ($quote->getWebposCash() >= $address->getGrandTotal()) { /* $address->setTotalRefunded($quote->getWebposCash() - $address->getGrandTotal()) ->setBaseTotalRefunded($quote->getWebposBaseCash() - $address->getBaseGrandTotal()); if ($payment = $quote->getPayment()) { if ($method = $payment->getMethodInstance()) { $address->setTotalPaid($address->getTotalRefunded()) ->setBaseTotalPaid($address->getBaseTotalRefunded()); } } */ } else { //$address->setGrandTotal($address->getGrandTotal() - $quote->getWebposCash() ); //$address->setBaseGrandTotal($address->getBaseGrandTotal() - $quote->getWebposBaseCash()); } return $this; }
/** * Collect the order total * * @param object $address The address instance to collect from * * @return Sisow_Model_Quote_TaxTotal */ public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); if ($quote->getId() == null || $address->getAddressType() != "shipping") { return $this; } $payment = $quote->getPayment(); if (substr($payment->getMethod(), 0, 6) != 'sisow_' && (!count($quote->getPaymentsCollection()) || !$payment->hasMethodInstance())) { return $this; } $methodInstance = $payment->getMethodInstance(); if (substr($methodInstance->getCode(), 0, 6) != 'sisow_') { return $this; } $helper = Mage::helper('sisow/paymentfee'); $fee = $helper->getPaymentFeeArray($methodInstance->getCode(), $quote); if (!is_array($fee)) { return $this; } $address->setTaxAmount($address->getTaxAmount() + $fee['taxamount']); $address->setBaseTaxAmount($address->getBaseTaxAmount() + $fee['base_taxamount']); $address->setInvoiceTaxAmount($fee['taxamount']); $address->setBaseInvoiceTaxAmount($fee['base_taxamount']); return $this; }
/** * Set correct values on subscription address based on given subscription and order address * * @param Adyen_Subscription_Model_Subscription $subscription * @param Mage_Sales_Model_Order_Address|Mage_Sales_Model_Quote_Address $address * @return $this */ public function initAddress(Adyen_Subscription_Model_Subscription $subscription, $address) { $this->setSubscriptionId($subscription->getId()); // Reset (possible) original values $this->setOrderAddressId(null)->setCustomerAddressId(null)->setQuoteAddressId(null); if ($address->getAddressType() == Mage_Sales_Model_Order_Address::TYPE_BILLING) { $this->setType(self::ADDRESS_TYPE_BILLING); } else { $this->setType(self::ADDRESS_TYPE_SHIPPING); } // Note: Only use customer address if 'save_in_address_book' or 'same_as_billing' // is also checked at the address, because it's not enough to rely solely on the // customer address ID, because an address can be changed when creating an order // in the backend, but this ID still remains when a quote is converted to an order if ($address->getCustomerAddressId() && $address->getData('save_in_address_book')) { // Create customer address $this->setSource(self::ADDRESS_SOURCE_CUSTOMER)->setCustomerAddressId($address->getCustomerAddressId()); } elseif ($address instanceof Mage_Sales_Model_Quote_Address) { // Create quote address $this->setSource(self::ADDRESS_SOURCE_QUOTE)->setQuoteAddressId($address->getId()); } else { // Create order address $this->setSource(self::ADDRESS_SOURCE_ORDER)->setOrderAddressId($address->getId()); } return $this; }
/** * Prepare Data to Storage for Order * * @param Mage_Sales_Model_Quote_Address $address * @return Magestore_Webpos_Model_Total_Quote_Cash */ public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); //Mage::getSingleton('webpos/session')->setWebposCash(null); $cashin = Mage::getSingleton('webpos/session')->getWebposCash(); $baseCashin = $cashin / $quote->getStore()->convertPrice(1); $quote->setWebposCash($cashin); $quote->setWebposBaseCash($baseCashin); if (!$quote->isVirtual() && $address->getAddressType() == 'billing') { return $this; } if ($quote->getWebposCash() < 0.0001) { return $this; } // Order Cash $address->setWebposCash($quote->getWebposCash())->setWebposBaseCash($quote->getWebposBaseCash()); // Update total Paid and Refund $address->setTotalPaid($quote->getWebposCash())->setBaseTotalPaid($quote->getWebposBaseCash()); if ($quote->getWebposCash() >= $address->getGrandTotal()) { $address->setTotalRefunded($quote->getWebposCash() - $address->getGrandTotal())->setBaseTotalRefunded($quote->getWebposBaseCash() - $address->getBaseGrandTotal()); if ($payment = $quote->getPayment()) { if ($method = $payment->getMethodInstance()) { if ($method->getCode() == 'cashforpos') { // prepair for cashin invoice $address->setTotalPaid($address->getTotalRefunded())->setBaseTotalPaid($address->getBaseTotalRefunded()); } } } } return $this; }
/** * Convert quote address to order address * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Order_Address */ public function addressToOrderAddress(Mage_Sales_Model_Quote_Address $address) { $orderAddress = Mage::getModel('Mage_Sales_Model_Order_Address')->setStoreId($address->getStoreId())->setAddressType($address->getAddressType())->setCustomerId($address->getCustomerId())->setCustomerAddressId($address->getCustomerAddressId()); Mage::helper('Mage_Core_Helper_Data')->copyFieldset('sales_convert_quote_address', 'to_order_address', $address, $orderAddress); Mage::dispatchEvent('sales_convert_quote_address_to_order_address', array('address' => $address, 'order_address' => $orderAddress)); return $orderAddress; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING) { return $this; } $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('sales')->__('Points Earned'))); return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { // Only display for the shipping address quote if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_BILLING) { return true; } $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('sales')->__('Points Earned'))); return $this; }
/** * Triggers AFTER collection methods, only when Magento is trying to show the total amount. * @see Mage_Sales_Model_Quote_Address_Total_Abstract::fetch() */ public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING) { return $this; } if ($this->discount_amt != 0) { $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('sales')->__('Item Discounts'), 'value' => $this->discount_amt)); } return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'billing') { return $this; } if (Mage::helper('customfee')->canApply()) { $amount = $this->getFeeAmount($address->getSubtotal()); $address->addTotal(array('code' => $this->getCode(), 'title' => $this->getLabel(), 'value' => $amount)); } return $this; }
/** * Collect address subtotal * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Quote_Address_Total_Subtotal */ public function collect(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'billing') { return $this; } $juros = Mage::getSingleton('checkout/session')->getJuros(); $address->setBaseJurosAmount($juros); $address->setJurosAmount($juros); $address->setBaseTotalAmount($this->getCode(), $juros); $address->setTotalAmount($this->getCode(), $juros); return $this; }
/** * Collect the Buckaroo fee for the given address. * * @param Mage_Sales_Model_Quote_Address $address * * @return $this */ public function collect(Mage_Sales_Model_Quote_Address $address) { /** * We can only add the fee to the shipping address. */ if ($address->getAddressType() != 'shipping') { return $this; } $quote = $address->getQuote(); $store = $quote->getStore(); if (!$quote->getId()) { return $this; } $items = $address->getAllItems(); if (!count($items)) { return $this; } /** * First, reset the fee amounts to 0 for this address and the quote. */ $address->setBuckarooFee(0)->setBaseBuckarooFee(0); $quote->setBuckarooFee(0)->setBaseBuckarooFee(0); /** * Check if the order was placed using Buckaroo */ $paymentMethod = $quote->getPayment()->getMethod(); if (strpos($paymentMethod, 'buckaroo') === false) { return $this; } /** * Get the fee amount. */ $baseFee = $this->_getPaymentFee($quote, $paymentMethod); if ($baseFee <= 0) { return $this; } /** * Convert the fee to the base fee amount. */ $fee = $store->convertPrice($baseFee); /** * Set the fee for the address and quote. */ $address->setBuckarooFee($fee)->setBaseBuckarooFee($baseFee); $quote->setBuckarooFee($fee)->setBaseBuckarooFee($baseFee); /** * Update the address' grand total amounts. */ $address->setBaseGrandTotal($address->getBaseGrandTotal() + $baseFee); $address->setGrandTotal($address->getGrandTotal() + $fee); return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() != "shipping") { return $this; } $incl = $address->getInvoiceFee(); $data = Mage::helper("billmateinvoice"); if ($incl == 0) { return $this; } $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('payment')->__('Billmate Invoice Fee'), 'value' => $incl)); return $this; }
/** * Add giftcard totals information to address object * * @param Mage_Sales_Model_Quote_Address $address */ public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'billing') { //$amount = $address->getReferralrewardAmount(); $helper = Mage::helper('referralreward'); $points = (int) Mage::getSingleton('core/session')->getPointsDiscount(); $amount = -1 * $helper->convertPoints($points); if ($amount != 0) { $address->addTotal(array('code' => $this->getCode(), 'title' => $this->getLabel(), 'value' => $amount)); } } return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { //file_put_contents('test1.log', file_get_contents('test1.log') . '->'.$address->getAmount()); $amount = $address->getAmount(); if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_BILLING) { return; } if ($amount > 0) { $title = Mage::helper('vc_giftwrap')->__('Gift Wrap'); $address->addTotal(array('code' => $this->getCode(), 'title' => $title, 'value' => $amount)); } return $this; }
/** * Add giftcard totals information to address object * * @param Mage_Sales_Model_Quote_Address $address */ public function fetch(Mage_Sales_Model_Quote_Address $address) { if (Mage::getStoreConfig('deals/general/enabled')) { $amount = $this->getAmount(); if ($amount > 0) { if ($address->getAddressType() == 'billing') { if ($amount != 0) { $address->addTotal(array('code' => $this->getCode(), 'title' => $this->getLabel(), 'value' => -$amount)); } } return $this; } } }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'shipping' && $address->getQuote()->getIsActive()) { $paymentMethod = $address->getQuote()->getPayment()->getMethod(); if (isset($paymentMethod) && $this->getHelper()->isBillpayRatPayment($paymentMethod)) { $quote = $address->getQuote(); $baseAmount = $this->getCalculation()->getCalculationBaseAmount($quote); $baseAmount = $this->getHelper()->currencyToSmallerUnit($baseAmount); if ($this->getSession()->validateRateOptions($baseAmount)) { $address->addTotal(array('area' => 'footer', 'code' => $this->getCode(), 'title' => Mage::helper('billpay')->__('billpay_rate_calculation_partial_price'), 'value' => $this->getSession()->getTotalPaymentAmount())); } else { $this->getSession()->clearCurrentRateOptions(); } } } return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'shipping' && $address->getQuote()->getIsActive()) { $paymentMethod = $address->getQuote()->getPayment()->getMethod(); if (isset($paymentMethod) && $this->getHelper()->isBillpayRatPayment($paymentMethod)) { $quote = $address->getQuote(); $baseAmount = $this->getCalculation()->getCalculationBaseAmount($quote); $baseAmount = $this->getHelper()->currencyToSmallerUnit($baseAmount); if ($this->getSession()->validateRateOptions($baseAmount)) { $interestFormula = $this->getCalculation()->getRateSurchargeFormula($this->format($this->getCalculation()->getCalculationBaseAmount($quote)), $this->getSession()->getInterestRate(), $this->getSession()->getBillpayRates()); $address->addTotal(array('area' => 'footer', 'code' => $this->getCode(), 'title' => Mage::helper('billpay')->__('billpay_rate_calculation_interest_add') . ' ' . Mage::helper('billpay')->__('billpay_rate_for_text') . ' ' . $this->getSession()->getBillpayRates() . ' ' . Mage::helper('billpay')->__('billpay_rate_rate_text') . '<br />' . $interestFormula, 'value' => $this->getSession()->getSurchargeAmount())); } else { $this->getSession()->clearCurrentRateOptions(); } } } return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'shipping' && $address->getQuote()->getIsActive()) { $paymentMethod = $address->getQuote()->getPayment()->getMethod(); if (isset($paymentMethod) && $this->getHelper()->isBillpayRatPayment($paymentMethod)) { $quote = $address->getQuote(); if ($this->getSession()->getTransationFee() > 0) { $title = $this->getHelper()->__('billpay_rate_transaction_fee'); $feeTaxAmount = $this->getSession()->getTransationFee() - $this->getSession()->getTransationFeeNet(); if ($feeTaxAmount > 0) { $title .= '<br >(' . $this->getHelper()->__('billpay_rate_included_tax') . ': ' . $this->format($feeTaxAmount) . ')'; } $address->addTotal(array('area' => 'footer', 'code' => $this->getCode(), 'title' => $title, 'value' => $this->getSession()->getTransationFee())); } } } return $this; }
/** * Set correct values on subscription address based on given subscription and order address * * @param Adyen_Subscription_Model_Subscription $subscription * @param Mage_Sales_Model_Order_Address|Mage_Sales_Model_Quote_Address $address * @return $this */ public function initAddress(Adyen_Subscription_Model_Subscription $subscription, $address) { $this->setSubscriptionId($subscription->getId()); // Reset (possible) original values $this->setOrderAddressId(null)->setCustomerAddressId(null)->setQuoteAddressId(null); if ($address->getAddressType() == Mage_Sales_Model_Order_Address::TYPE_BILLING) { $this->setType(self::ADDRESS_TYPE_BILLING); } else { $this->setType(self::ADDRESS_TYPE_SHIPPING); } if ($address instanceof Mage_Sales_Model_Quote_Address) { // Create quote address $this->setSource(self::ADDRESS_SOURCE_QUOTE)->setQuoteAddressId($address->getId()); } else { // Create order address $this->setSource(self::ADDRESS_SOURCE_ORDER)->setOrderAddressId($address->getId()); } return $this; }
/** * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Quote_Address_Total_Abstract */ public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); $payment = $quote->getPayment(); if ($address->getAddressType() === 'billing') { return $this; } $configId = $payment->getPayoneConfigPaymentMethodId(); if (empty($configId)) { return $this; } $config = $this->helperConfig()->getConfigPaymentMethodById($configId, $quote->getStoreId()); if (empty($config)) { return $this; } $feeConfig = $config->getFeeConfigForQuote($quote); if (!is_array($feeConfig) or !array_key_exists('fee_config', $feeConfig)) { return $this; } if ($payment && $payment->getId() && $payment->hasMethodInstance() && !$payment->getMethodInstance() instanceof Payone_Core_Model_Payment_Method_Abstract) { $this->_setNewPayonePaymentAmount($quote, $address, 0); return parent::collect($address); } /* * This does not work here: * $quote->getSubtotal(); * $quote->getGrandTotal(); * * because this method is called during the calculation process of those methods and thus the value is not available then */ $aTotals = $quote->getTotals(); $dSubTotal = 0; if (isset($aTotals['subtotal'])) { $dSubTotal = $aTotals['subtotal']->getValue(); } $paymentFee = $feeConfig['fee_config']; if (isset($feeConfig['fee_type'][0]) && $feeConfig['fee_type'][0] == 'percent') { $paymentFee = $dSubTotal * $paymentFee / 100; } $this->_setNewPayonePaymentAmount($quote, $address, $paymentFee); return parent::collect($address); }
public function collect(Mage_Sales_Model_Quote_Address $address) { // Changed By Adam 28/07/2014 if (!Mage::helper('affiliateplus')->isAffiliateModuleEnabled()) { return $this; } if (!$this->_getConfigHelper()->getPaymentConfig('store_credit')) { return $this; } if (!$address->getQuote()->isVirtual() && $address->getAddressType() == 'billing') { return $this; } $discount = 0; $session = Mage::getSingleton('checkout/session'); $helper = Mage::helper('affiliateplus/account'); if ($session->getUseAffiliateCredit() && $helper->isLoggedIn() && !$helper->disableStoreCredit() && $helper->isEnoughBalance()) { $balance = $helper->getAccount()->getBalance(); $discount = floatval($session->getAffiliateCredit()); if ($discount > $balance) { $discount = $balance; } if ($discount > $address->getGrandTotal()) { $discount = $address->getGrandTotal(); } if ($discount < 0) { $discount = 0; } $session->setAffiliateCredit($discount); } else { $session->setUseAffiliateCredit(''); } if ($discount) { $baseDiscount = $discount / Mage::app()->getStore()->convertPrice(1); $address->setBaseAffiliateCredit(-$baseDiscount); $address->setAffiliateCredit(-$discount); $address->setBaseGrandTotal($address->getBaseGrandTotal() - $baseDiscount); $address->setGrandTotal($address->getGrandTotal() - $discount); } return $this; }
public function collect(Mage_Sales_Model_Quote_Address $address) { if (!Mage::getSingleton('checkout/session')->getQuoteId()) { return $this; } $_helper = Mage::helper('msp_cashondelivery'); $_model = Mage::getModel('msp_cashondelivery/cashondelivery'); $_subtotal = $address->getSubtotal(); $quote = $address->getQuote(); $baseAmount = $_model->getBaseExtraFee($_subtotal); $amount = $_model->getExtraFee($_subtotal); $codTax = $_helper->getTaxAmount($amount); $codBaseTax = $_helper->getTaxAmount($baseAmount); if ($quote->getPayment()->getMethod() == $_model->getCode() && $address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING) { $address->setTaxAmount($address->getTaxAmount() + $codTax); $address->setBaseTaxAmount($address->getBaseTaxAmount() + $codBaseTax); $this->_saveAppliedTaxes($address, $_helper->getAppliedRates(), $codTax, $codBaseTax, $_helper->getRate()); $address->setGrandTotal($address->getGrandTotal() + $codTax); $address->setBaseGrandTotal($address->getBaseGrandTotal() + $codBaseTax); } return $this; }
public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); $session = Mage::getSingleton('checkout/session'); if ($address->getAddressType() == 'billing' && !$quote->isVirtual()) { return $this; } if ($codes = $session->getGiftCodes()) { $codesArray = array_unique(explode(',', $codes)); $store = $quote->getStore(); if ($address->getAllBaseTotalAmounts()) { $baseTotal = array_sum($address->getAllBaseTotalAmounts()); } else { $baseTotal = $address->getBaseGrandTotal(); } $baseTotalDiscount = 0; $totalDiscount = 0; $codesBaseDiscount = array(); $codesDiscount = array(); $baseSessionAmountUsed = explode(',', $session->getBaseAmountUsed()); $baseAmountUsed = array_combine($codesArray, $baseSessionAmountUsed); $amountUsed = $baseAmountUsed; foreach ($codesArray as $code) { $model = Mage::getModel('giftvoucher/giftvoucher')->loadByCode($code); if ($baseTotal == 0 || $model->getStatus() != Magestore_Giftvoucher_Model_Status::STATUS_ACTIVE || $model->getBalance() == 0 || $model->getBaseBalance() <= $baseAmountUsed[$code]) { $codesBaseDiscount[] = 0; $codesDiscount[] = 0; } else { $baseBalance = $model->getBaseBalance() - $baseAmountUsed[$code]; $baseDiscount = min($baseBalance, $baseTotal); $discount = $store->convertPrice($baseDiscount); $baseAmountUsed[$code] += $baseDiscount; $amountUsed[$code] = $store->convertPrice($baseAmountUsed[$code]); $baseTotal -= $baseDiscount; $baseTotalDiscount += $baseDiscount; $totalDiscount += $discount; $codesBaseDiscount[] = $baseDiscount; $codesDiscount[] = $discount; } } $codesBaseDiscountString = implode(',', $codesBaseDiscount); $codesDiscountString = implode(',', $codesDiscount); //update session $session->setBaseAmountUsed(implode(',', $baseAmountUsed)); $session->setBaseGiftVoucherDiscount($session->getBaseGiftVoucherDiscount() + $baseTotalDiscount); $session->setGiftVoucherDiscount($session->getGiftVoucherDiscount() + $totalDiscount); $session->setCodesBaseDiscount($session->getBaseAmountUsed()); $session->setCodesDiscount(implode(',', $amountUsed)); //update address $address->setBaseGrandTotal($baseTotal); $address->setGrandTotal($store->convertPrice($baseTotal)); $address->setBaseGiftVoucherDiscount($baseTotalDiscount); $address->setGiftVoucherDiscount($totalDiscount); $address->setGiftCodes($codes); $address->setCodesBaseDiscount($codesBaseDiscountString); $address->setCodesDiscount($codesDiscountString); //update quote $quote->setBaseGiftVoucherDiscount($session->getBaseGiftVoucherDiscount()); $quote->setGiftVoucherDiscount($session->getGiftVoucherDiscount()); $quote->setGiftCodes($codes); $quote->setCodesBaseDiscount($session->getCodesBaseDiscount()); $quote->setCodesDiscount($session->getCodesDiscount()); } return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { $store_id = Mage::app()->getStore()->getId(); if ((int) Mage::helper('rewardpoints')->getRedeemPointsOnTax($store_id) == MW_RewardPoints_Model_Redeemtax::BEFORE && in_array(Mage::getStoreConfig(Mage_Tax_Model_Config::CONFIG_XML_PATH_BASED_ON, $store_id), array('shipping', 'billing')) && $address->getAddressType() == Mage::getStoreConfig(Mage_Tax_Model_Config::CONFIG_XML_PATH_BASED_ON, $store_id)) { if (Mage::app()->getRequest()->getControllerName() == "multishipping" && Mage::app()->getRequest()->getActionName() == "overview") { $addresss = Mage::getSingleton('checkout/session')->getQuote()->getAllShippingAddresses(); } else { $store_id = Mage::app()->getStore()->getId(); $point = Mage::getSingleton('core/session')->getMwRewardpointAfterDrop(); $point_show = Mage::helper('rewardpoints')->formatPoints($point, $store_id); $amount = Mage::helper('core')->currency(Mage::helper('rewardpoints')->exchangePointsToMoneys($point), false, false); if ($amount != 0) { $title = Mage::helper('rewardpoints')->__('You Redeem (%s)', $point_show); if (Mage::app()->getStore()->isAdmin()) { $title = Mage::helper('rewardpoints')->__('You Redeem (%s points)', $point); } $address->addTotal(array('code' => $this->getCode(), 'title' => $title, 'value' => -$amount, 'strong' => false)); } } } return $this; }
/** * Add invoice fee total information to address * * @param object $address The address instance * * @return Sisow_Model_Quote_Total */ public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() != "shipping") { return $this; } $excl = $address->getInvoiceFeeExcludedVat(); $incl = $address->getInvoiceFee(); //$lang = Mage::helper('klarnaPaymentModule/lang'); $country = $address->getCountry(); $storeId = Mage::app()->getStore()->getId(); $isOSCEnabled = Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links', $storeId); if ($isOSCEnabled) { $OSCDisplayAmountsInclTax = Mage::getStoreConfig('onestepcheckout/general/display_tax_included', $storeId); $value = $OSCDisplayAmountsInclTax ? $incl : $excl; } else { $value = $incl; } if ($value != 0) { $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::getStoreConfig('payment/' . $this->payment->getMethodInstance()->getCode() . '/payment_fee_label'), 'value' => $value)); } return $this; }
/** * Determine if the address is a valid destination. * * @return bool */ protected function _validateAddressIsDestination() { return $this->_address->getAddressType() === Mage_Sales_Model_Quote_Address::TYPE_BILLING || $this->_validateAddressIsShipGroup(); }
/** * Add giftcard totals information to address object * * @param Mage_Sales_Model_Quote_Address $address */ public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'billing') { $amount = number_format($address->getQuote()->getGiftCardValue(), 2); if ($amount != 0) { $address->addTotal(array('code' => $this->getCode(), 'title' => $this->getLabel(), 'value' => -$amount)); } } return $this; }
/** * collect reward points total * * @param Mage_Sales_Model_Quote_Address $address * @return Magestore_RewardPoints_Model_Total_Quote_Point */ public function collect(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); $applyTaxAfterDiscount = (bool) Mage::getStoreConfig('rewardpoints/spending/discount_before_tax', $quote->getStoreId()); if ($applyTaxAfterDiscount) { return $this; } if (!Mage::helper('rewardpoints')->isEnable($quote->getStoreId())) { return $this; } if ($quote->isVirtual() && $address->getAddressType() == 'shipping') { return $this; } if (!$quote->isVirtual() && $address->getAddressType() == 'billing') { return $this; } $session = Mage::getSingleton('checkout/session'); if (!$session->getData('use_point')) { return $this; } $rewardSalesRules = $session->getRewardSalesRules(); $rewardCheckedRules = $session->getRewardCheckedRules(); if (!$rewardSalesRules && !$rewardCheckedRules) { return $this; } /** @var $helper Magestore_RewardPoints_Helper_Calculation_Spending */ $helper = Mage::helper('rewardpoints/calculation_spending'); $baseTotal = $helper->getQuoteBaseTotal($quote, $address); $maxPoints = Mage::helper('rewardpoints/customer')->getBalance(); if ($maxPointsPerOrder = $helper->getMaxPointsPerOrder($quote->getStoreId())) { $maxPoints = min($maxPointsPerOrder, $maxPoints); } $maxPoints -= $helper->getPointItemSpent(); if ($maxPoints <= 0) { return $this; } $baseDiscount = 0; $pointUsed = 0; // Checked Rules Discount First if (is_array($rewardCheckedRules)) { $newRewardCheckedRules = array(); foreach ($rewardCheckedRules as $ruleData) { if ($baseTotal < 0.0001) { break; } $rule = $helper->getQuoteRule($ruleData['rule_id']); if (!$rule || !$rule->getId() || $rule->getSimpleAction() != 'fixed') { continue; } if ($maxPoints < $rule->getPointsSpended()) { $session->addNotice($helper->__('Not enough points to spend')); continue; } $points = $rule->getPointsSpended(); $ruleDiscount = $helper->getQuoteRuleDiscount($quote, $rule, $points); if ($ruleDiscount < 0.0001) { continue; } $baseTotal -= $ruleDiscount; $maxPoints -= $points; $baseDiscount += $ruleDiscount; $pointUsed += $points; $newRewardCheckedRules[$rule->getId()] = array('rule_id' => $rule->getId(), 'use_point' => $points, 'base_discount' => $ruleDiscount); if ($rule->getStopRulesProcessing()) { break; } } $session->setRewardCheckedRules($newRewardCheckedRules); } // Sales Rule (slider) discount Last if (is_array($rewardSalesRules)) { $newRewardSalesRules = array(); if ($baseTotal > 0.0 && isset($rewardSalesRules['rule_id'])) { $rule = $helper->getQuoteRule($rewardSalesRules['rule_id']); if ($rule && $rule->getId() && $rule->getSimpleAction() == 'by_price') { $points = min($rewardSalesRules['use_point'], $maxPoints); $ruleDiscount = $helper->getQuoteRuleDiscount($quote, $rule, $points); if ($ruleDiscount > 0.0) { $baseTotal -= $ruleDiscount; $maxPoints -= $points; $baseDiscount += $ruleDiscount; $pointUsed += $points; $newRewardSalesRules = array('rule_id' => $rule->getId(), 'use_point' => $points, 'base_discount' => $ruleDiscount); } } } $session->setRewardSalesRules($newRewardSalesRules); } // verify quote total data if ($baseTotal < 0.0001) { $baseTotal = 0.0; $baseDiscount = $helper->getQuoteBaseTotal($quote, $address); } if ($baseDiscount) { // Prepare reward points discount and point spent for each item $this->_prepareDiscountForTaxAmount($address, $baseDiscount, $pointUsed); $discount = Mage::app()->getStore()->convertPrice($baseDiscount); $address->setBaseGrandTotal($address->getBaseGrandTotal() - $baseDiscount); $address->setGrandTotal($address->getGrandTotal() - $discount); $address->setRewardpointsSpent($address->getRewardpointsSpent() + $pointUsed); $address->setRewardpointsBaseDiscount($address->getRewardpointsBaseDiscount() + $baseDiscount); $address->setRewardpointsDiscount($address->getRewardpointsDiscount() + $discount); $quote->setRewardpointsBaseDiscount($address->getRewardpointsBaseDiscount()); $quote->setRewardpointsDiscount($address->getRewardpointsDiscount()); $address->setMagestoreBaseDiscount($address->getMagestoreBaseDiscount() + $baseDiscount); } return $this; }
public function fetch(Mage_Sales_Model_Quote_Address $address) { if ($address->getAddressType() == 'shipping') { $paymentMethod = $this->getPaymentMethod($address); if ($paymentMethod && $this->getHelper()->isBillpayPayment($paymentMethod)) { $quote = $address->getQuote(); if ($this->getHelper()->getConfigData('fee/display_incl_tax_frontend', $quote->getStoreId())) { $feeCharged = $address->getQuote()->getBillpayChargedFee(); } else { $feeCharged = $address->getQuote()->getBillpayChargedFeeNet(); } if (isset($feeCharged) && $feeCharged > 0) { $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('billpay')->__($paymentMethod . '_step_fee_text'), 'value' => $feeCharged)); } } } return $this; }