本文整理汇总了PHP中Mage_Sales_Model_Quote_Address::setBaseDiscountAmount方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Quote_Address::setBaseDiscountAmount方法的具体用法?PHP Mage_Sales_Model_Quote_Address::setBaseDiscountAmount怎么用?PHP Mage_Sales_Model_Quote_Address::setBaseDiscountAmount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Quote_Address
的用法示例。
在下文中一共展示了Mage_Sales_Model_Quote_Address::setBaseDiscountAmount方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: resetAddress
protected function resetAddress(Mage_Sales_Model_Quote_Address $address)
{
$address->setDiscountAmount(0.0);
$address->setBaseDiscountAmount(0.0);
$address->setSubtotalWithDiscount($address->getSubtotal());
$address->setBaseSubtotalWithDiscount($address->getBaseSubtotal());
$address->setDiscountDescription('');
$address->setDiscountDescriptionArray([]);
if (!$address->getData('__applied_rules_reset__')) {
$address->setAppliedRuleIds('');
$address->setData('__applied_rules_reset__', true);
}
$address->setShippingDiscountAmount(0);
$address->setBaseShippingDiscountAmount(0);
$address->setFreeShipping(false);
}
示例2: collect
public function collect(Mage_Sales_Model_Quote_Address $address)
{
$quote = $address->getQuote();
$credit = Mage::helper('credit')->exchangeCreditToMoney(Mage::getSingleton('checkout/session')->getCredit());
$subtotalWithDiscount = 0;
$items = $address->getAllItems();
if (!count($items)) {
return $this;
}
$address->setCreditDiscount($credit);
$address->setSubtotalWithDiscount($subtotalWithDiscount - $credit);
$address->setBaseCreditDiscount($credit);
$address->setBaseSubtotalWithDiscount($subtotalWithDiscount - $credit);
$address->setGrandTotal($address->getGrandTotal() - $address->getCreditDiscount());
$address->setBaseGrandTotal($address->getBaseGrandTotal() - $address->getBaseCreditDiscount());
$address->setBaseDiscountAmount($address->getBaseDiscountAmount() - $address->getBaseCreditDiscount());
return $this;
}
示例3: collect
public function collect(Mage_Sales_Model_Quote_Address $address)
{
$quote = $address->getQuote();
$eventArgs = array('website_id' => Mage::app()->getStore($quote->getStoreId())->getWebsiteId(), 'customer_group_id' => $quote->getCustomerGroupId(), 'coupon_code' => $quote->getCouponCode());
$address->setFreeShipping(0);
$totalDiscountAmount = 0;
$subtotalWithDiscount = 0;
$baseTotalDiscountAmount = 0;
$baseSubtotalWithDiscount = 0;
$hasDiscount = false;
foreach ($address->getAllItems() as $item) {
if ($item->getNoDiscount()) {
$item->setDiscountAmount(0);
$item->setBaseDiscountAmount(0);
$item->setRowTotalWithDiscount($item->getRowTotal());
$item->setBaseRowTotalWithDiscount($item->getRowTotal());
$subtotalWithDiscount += $item->getRowTotal();
$baseSubtotalWithDiscount += $item->getBaseRowTotal();
} else {
$eventArgs['item'] = $item;
Mage::dispatchEvent('sales_quote_address_discount_item', $eventArgs);
if ($item->getDiscountAmount()) {
$hasDiscount = true;
}
$totalDiscountAmount += $item->getDiscountAmount();
$baseTotalDiscountAmount += $item->getBaseDiscountAmount();
$item->setRowTotalWithDiscount($item->getRowTotal() - $item->getDiscountAmount());
$item->setBaseRowTotalWithDiscount($item->getBaseRowTotal() - $item->getBaseDiscountAmount());
$subtotalWithDiscount += $item->getRowTotalWithDiscount();
$baseSubtotalWithDiscount += $item->getBaseRowTotalWithDiscount();
}
}
$address->setDiscountAmount($totalDiscountAmount);
$address->setSubtotalWithDiscount($subtotalWithDiscount);
$address->setBaseDiscountAmount($baseTotalDiscountAmount);
$address->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
if (!$hasDiscount) {
$quote->setCouponCode(null);
}
$address->setGrandTotal($address->getGrandTotal() - $address->getDiscountAmount());
$address->setBaseGrandTotal($address->getBaseGrandTotal() - $address->getBaseDiscountAmount());
return $this;
}
示例4: collect
public function collect(Mage_Sales_Model_Quote_Address $address)
{
$quote = $address->getQuote();
$eventArgs = array('website_id' => Mage::app()->getStore($quote->getStoreId())->getWebsiteId(), 'customer_group_id' => $quote->getCustomerGroupId(), 'coupon_code' => $quote->getCouponCode());
$address->setFreeShipping(0);
$totalDiscountAmount = 0;
$subtotalWithDiscount = 0;
$baseTotalDiscountAmount = 0;
$baseSubtotalWithDiscount = 0;
$items = $address->getAllItems();
if (!count($items)) {
$address->setDiscountAmount($totalDiscountAmount);
$address->setSubtotalWithDiscount($subtotalWithDiscount);
$address->setBaseDiscountAmount($baseTotalDiscountAmount);
$address->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
return $this;
}
$hasDiscount = false;
foreach ($items as $item) {
if ($item->getNoDiscount()) {
$item->setDiscountAmount(0);
$item->setBaseDiscountAmount(0);
$item->setRowTotalWithDiscount($item->getRowTotal());
$item->setBaseRowTotalWithDiscount($item->getRowTotal());
$subtotalWithDiscount += $item->getRowTotal();
$baseSubtotalWithDiscount += $item->getBaseRowTotal();
} else {
/**
* Child item discount we calculate for parent
*/
if ($item->getParentItemId()) {
continue;
}
/**
* Composite item discount calculation
*/
if ($item->getHasChildren() && $item->isChildrenCalculated()) {
foreach ($item->getChildren() as $child) {
$eventArgs['item'] = $child;
Mage::dispatchEvent('sales_quote_address_discount_item', $eventArgs);
if ($child->getDiscountAmount() || $child->getFreeShipping()) {
$hasDiscount = true;
}
/**
* Parent free shipping we apply to all children
*/
if ($item->getFreeShipping()) {
$child->setFreeShipping($item->getFreeShipping());
}
/**
* @todo Parent discount we apply for all children without discount
*/
if (!$child->getDiscountAmount() && $item->getDiscountPercent()) {
}
$totalDiscountAmount += $child->getDiscountAmount();
//*$item->getQty();
$baseTotalDiscountAmount += $child->getBaseDiscountAmount();
//*$item->getQty();
$child->setRowTotalWithDiscount($child->getRowTotal() - $child->getDiscountAmount());
$child->setBaseRowTotalWithDiscount($child->getBaseRowTotal() - $child->getBaseDiscountAmount());
$subtotalWithDiscount += $child->getRowTotalWithDiscount();
$baseSubtotalWithDiscount += $child->getBaseRowTotalWithDiscount();
}
} else {
$eventArgs['item'] = $item;
Mage::dispatchEvent('sales_quote_address_discount_item', $eventArgs);
if ($item->getDiscountAmount() || $item->getFreeShipping()) {
$hasDiscount = true;
}
$totalDiscountAmount += $item->getDiscountAmount();
$baseTotalDiscountAmount += $item->getBaseDiscountAmount();
$item->setRowTotalWithDiscount($item->getRowTotal() - $item->getDiscountAmount());
$item->setBaseRowTotalWithDiscount($item->getBaseRowTotal() - $item->getBaseDiscountAmount());
$subtotalWithDiscount += $item->getRowTotalWithDiscount();
$baseSubtotalWithDiscount += $item->getBaseRowTotalWithDiscount();
}
}
}
$address->setDiscountAmount($totalDiscountAmount);
$address->setSubtotalWithDiscount($subtotalWithDiscount);
$address->setBaseDiscountAmount($baseTotalDiscountAmount);
$address->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
$address->setGrandTotal($address->getGrandTotal() - $address->getDiscountAmount());
$address->setBaseGrandTotal($address->getBaseGrandTotal() - $address->getBaseDiscountAmount());
return $this;
}
示例5: collect
public function collect(Mage_Sales_Model_Quote_Address $address)
{
$session = Mage::getSingleton('admin/session');
$store_id = Mage::app()->getStore()->getId();
if (Mage::helper('affiliate/data')->getEnabledStore($store_id)) {
$quote = $address->getQuote();
$items = $address->getAllVisibleItems();
//$items = $address->getAllNonNominalItems();
if (!count($items)) {
return $this;
}
// xu ly code
// zend_debug::dump($items);die();
$discountAmount = 0;
$referral_code = Mage::helper('affiliate')->getReferralCodeByCheckout();
$customer_id = (int) Mage::getSingleton("customer/session")->getCustomer()->getId();
$program_priority = Mage::helper('affiliate/data')->getAffiliatePositionStore($store_id);
$position_discount = Mage::helper('affiliate/data')->getAffiliateDiscountStore($store_id);
$programs = array();
$programs = $this->getAllProgram();
if (!Mage::app()->isSingleStoreMode()) {
$programs = $this->getProgramByStoreView($programs);
}
$programs = $this->getProgramByEnable($programs);
$_programs = $this->getProgramByTime($programs);
foreach ($items as $item) {
$product_id = $item->getProductId();
$qty = $item->getQty();
//$price = $item->getPrice();
//$item->setBaseDiscountAmount($item->getBaseDiscountAmount() - $item->getAffiliateDiscount());
if ($position_discount == 1) {
$price = $item->getBasePrice();
} else {
$price = $item->getBasePrice() - $item->getBaseDiscountAmount() / $qty;
}
//$price = $item->getPrice();
$programs = $this->processRule($item, $_programs);
//var_dump($programs);exit;
// neu mang program > 0
$programs = $this->getProgramByCustomer($programs, $referral_code);
//var_dump($programs);exit;
if (sizeof($programs) >= 2) {
$array_customer_inviteds = array_splice($programs, sizeof($programs) - 1, 1);
foreach ($array_customer_inviteds as $array_customer_invited) {
$customer_invited = $array_customer_invited;
break;
}
// lay program theo 3 tieu chi
if ($program_priority == 1) {
$program_id = $this->getProgramByCommission($programs, $qty, $price, $customer_invited);
} else {
if ($program_priority == 2) {
$program_id = $this->getProgramByDiscount($programs, $qty, $price, $customer_invited);
} else {
if ($program_priority == 3) {
$program_id = $this->getProgramByPosition($programs);
}
}
}
$discount = $this->getDiscountByProgram($program_id, $qty, $price, $customer_invited);
} else {
$discount = 0;
}
$discount = round($discount, 2);
$discountAmount = $discountAmount + $discount;
$item->setDiscountAmount($item->getDiscountAmount() + Mage::helper('core')->currency($discount, false, false));
$item->setBaseDiscountAmount($item->getBaseDiscountAmount() + $discount);
$item->setMwAffiliateDiscount($discount);
// tim ra mang chuong trinh cho moi san pham $programs
// kiem tra xem san pham do dung chuong trinh khuyen mai nao
//var_dump($program_id);die();
}
//$discountAmount = 100;
//phan xu ly cuoi cung
$discountAmount_show = Mage::helper('core')->currency($discountAmount, false, false);
//$address->setDiscountAmount($address->getDiscountAmount() - $discountAmount_show);// gia de hien thi
$address->setBaseDiscountAmount($address->getBaseDiscountAmount() - $discountAmount);
// gia de tinh toan
$address->setAffiliateDiscount($discountAmount_show);
// gia de hien thi
$address->setBaseAffiliateDiscount($discountAmount);
$address->setGrandTotal($address->getGrandTotal() - $address->getAffiliateDiscount());
$address->setBaseGrandTotal($address->getBaseGrandTotal() - $address->getBaseAffiliateDiscount());
return $this;
}
}