本文整理汇总了PHP中Mage_Sales_Model_Order_Creditmemo::getSubtotal方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Creditmemo::getSubtotal方法的具体用法?PHP Mage_Sales_Model_Order_Creditmemo::getSubtotal怎么用?PHP Mage_Sales_Model_Order_Creditmemo::getSubtotal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Order_Creditmemo
的用法示例。
在下文中一共展示了Mage_Sales_Model_Order_Creditmemo::getSubtotal方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$store = $creditmemo->getStore();
$totalTax = 0;
$baseTotalTax = 0;
$weeeTaxAmount = 0;
$baseWeeeTaxAmount = 0;
foreach ($creditmemo->getAllItems() as $item) {
$orderItem = $item->getOrderItem();
if ($orderItem->isDummy()) {
continue;
}
$orderItemQty = $orderItem->getQtyOrdered();
$weeeRowDiscountAmount = $orderItem->getDiscountAppliedForWeeeTax();
$weeeDiscountAmount = $creditmemo->roundPrice($weeeRowDiscountAmount / $orderItemQty * $item->getQty(), 'regular', true);
$baseWeeeRowDiscountAmount = $orderItem->getBaseDiscountAppliedForWeeeTax();
$baseWeeeDiscountAmount = $creditmemo->roundPrice($baseWeeeRowDiscountAmount / $orderItemQty * $item->getQty(), 'base', true);
$weeeAmountExclTax = (Mage::helper('weee')->getWeeeTaxInclTax($item) - Mage::helper('weee')->getTotalTaxAppliedForWeeeTax($item)) * $item->getQty();
$totalTax += $weeeAmountExclTax - $weeeDiscountAmount;
$baseWeeeAmountExclTax = (Mage::helper('weee')->getBaseWeeeTaxInclTax($item) - Mage::helper('weee')->getBaseTotalTaxAppliedForWeeeTax($item)) * $item->getQty();
$baseTotalTax += $baseWeeeAmountExclTax - $baseWeeeDiscountAmount;
$item->setWeeeTaxAppliedRowAmount($weeeAmountExclTax);
$item->setBaseWeeeTaxAppliedRowAmount($baseWeeeAmountExclTax);
$weeeTaxAmount += Mage::helper('weee')->getWeeeTaxInclTax($item) * $item->getQty();
$baseWeeeTaxAmount += Mage::helper('weee')->getBaseWeeeTaxInclTax($item) * $item->getQty();
$newApplied = array();
$applied = Mage::helper('weee')->getApplied($item);
foreach ($applied as $one) {
$one['base_row_amount'] = $one['base_amount'] * $item->getQty();
$one['row_amount'] = $one['amount'] * $item->getQty();
$one['base_row_amount_incl_tax'] = $one['base_amount_incl_tax'] * $item->getQty();
$one['row_amount_incl_tax'] = $one['amount_incl_tax'] * $item->getQty();
$one['weee_discount'] = $weeeDiscountAmount;
$one['base_weee_discount'] = $baseWeeeDiscountAmount;
$newApplied[] = $one;
}
Mage::helper('weee')->setApplied($item, $newApplied);
$item->setWeeeTaxRowDisposition($item->getWeeeTaxDisposition() * $item->getQty());
$item->setBaseWeeeTaxRowDisposition($item->getBaseWeeeTaxDisposition() * $item->getQty());
}
/*
* please refer the description in weee - invoice section for reasoning
*/
if (Mage::helper('weee')->includeInSubtotal($store)) {
$creditmemo->setSubtotal($creditmemo->getSubtotal() + $totalTax);
$creditmemo->setBaseSubtotal($creditmemo->getBaseSubtotal() + $baseTotalTax);
} else {
$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $totalTax);
$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $baseTotalTax);
}
//Increment the subtotal
$creditmemo->setSubtotalInclTax($creditmemo->getSubtotalInclTax() + $weeeTaxAmount);
$creditmemo->setBaseSubtotalInclTax($creditmemo->getBaseSubtotalInclTax() + $baseWeeeTaxAmount);
//Increment the grand total
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $totalTax);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseTotalTax);
return $this;
}
示例2: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
if (Mage::helper('customfee')->canApply()) {
$amount = $this->getFeeAmount($creditmemo->getSubtotal());
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $amount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $amount);
}
return $this;
}
示例3: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$store = $creditmemo->getStore();
$totalTax = 0;
$baseTotalTax = 0;
foreach ($creditmemo->getAllItems() as $item) {
if ($item->getOrderItem()->isDummy()) {
continue;
}
$orderItemQty = $item->getOrderItem()->getQtyOrdered();
$totalTax += $item->getWeeeTaxAppliedAmount() * $item->getQty();
$baseTotalTax += $item->getBaseWeeeTaxAppliedAmount() * $item->getQty();
$newApplied = array();
$applied = Mage::helper('weee')->getApplied($item);
foreach ($applied as $one) {
$one['base_row_amount'] = $one['base_amount'] * $item->getQty();
$one['row_amount'] = $one['amount'] * $item->getQty();
$one['base_row_amount_incl_tax'] = $one['base_amount_incl_tax'] * $item->getQty();
$one['row_amount_incl_tax'] = $one['amount_incl_tax'] * $item->getQty();
$newApplied[] = $one;
}
Mage::helper('weee')->setApplied($item, $newApplied);
$item->setWeeeTaxRowDisposition($item->getWeeeTaxDisposition() * $item->getQty());
$item->setBaseWeeeTaxRowDisposition($item->getBaseWeeeTaxDisposition() * $item->getQty());
}
if (Mage::helper('weee')->includeInSubtotal($store)) {
$creditmemo->setSubtotal($creditmemo->getSubtotal() + $totalTax);
$creditmemo->setBaseSubtotal($creditmemo->getBaseSubtotal() + $baseTotalTax);
} else {
$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $totalTax);
$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $baseTotalTax);
}
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $totalTax);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseTotalTax);
return $this;
}
示例4: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
$paymentMethod = $order->getPayment()->getMethod();
if ($this->getHelper()->isBillpayPayment($paymentMethod)) {
$action = Mage::app()->getRequest()->getActionName();
switch ($action) {
case 'updateQty':
case 'new':
$gross = $order->getBillpayChargedFee();
$net = $order->getBillpayChargedFeeNet();
$baseGross = $order->getBaseBillpayChargedFee();
$baseNet = $order->getBaseBillpayChargedFeeNet();
$refundable = $order->getBillpayChargedFee() - $order->getBillpayChargedFeeRefunded();
$baseRefundable = $order->getBaseBillpayChargedFee() - $order->getBaseBillpayChargedFeeRefunded();
$refundableTax = $refundable - ($order->getBillpayChargedFeeNet() - $order->getBillpayChargedFeeRefundedNet());
$baseRefundableTax = $baseRefundable - ($order->getBaseBillpayChargedFeeNet() - $order->getBaseBillpayChargedFeeRefundedNet());
// increase tax amount
$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $refundableTax);
$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $baseRefundableTax);
// increase grand total
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $refundable);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseRefundable);
// We have to set the value for subtotal incl. tax here when a fee tax is present
// Otherwise the value will be calculated wrongly in Mage_Tax_Block_Sales_Order_Tax::_initSubtotal
if (!$creditmemo->getSubtotalInclTax() && $refundableTax > 0) {
$subtotalInclTax = $creditmemo->getSubtotal() + $creditmemo->getTaxAmount() - $creditmemo->getShippingTaxAmount() - $refundableTax;
$creditmemo->setSubtotalInclTax($subtotalInclTax);
}
break;
case 'save':
$data = Mage::app()->getRequest()->getPost('creditmemo');
if (isset($data)) {
if (array_key_exists('billpay_charged_fee_refund', $data)) {
$storeId = $creditmemo->getOrder()->getStore()->getStoreId();
$baseChargedFeeRefunded = Mage::app()->getStore()->roundPrice($data['billpay_charged_fee_refund']);
if ($baseChargedFeeRefunded < 0) {
Mage::throwException('Refunded billpay fee must not be smaller than zero');
}
$baseOrderGross = $order->getBaseBillpayChargedFee();
$baseOrderNet = $order->getBaseBillpayChargedFeeNet();
$orderGross = $order->getBillpayChargedFee();
$orderNet = $order->getBillpayChargedFeeNet();
$baseAllowedRefund = $baseOrderGross - $order->getBaseBillpayChargedFeeRefunded();
if ((string) (double) $baseChargedFeeRefunded > (string) (double) $baseAllowedRefund) {
$baseAllowedRefund = $order->formatBasePrice($baseAllowedRefund);
Mage::throwException("Maximum billpay fee amount to refund is: {$baseAllowedRefund}");
}
if ($baseOrderGross > 0 && $baseOrderNet > 0) {
if ($this->getHelper()->getConfigData('fee/display_incl_tax_admin', $storeId)) {
$part = $baseChargedFeeRefunded / $baseOrderGross;
$baseChargedFeeRefundedNet = Mage::app()->getStore()->roundPrice($baseOrderNet * $part);
} else {
$part = $baseChargedFeeRefunded / $baseOrderNet;
$baseChargedFeeRefundedNet = $baseChargedFeeRefunded;
$baseChargedFeeRefunded = Mage::app()->getStore()->roundPrice($baseOrderGross * $part);
}
$chargedFeeRefunded = Mage::app()->getStore()->roundPrice($orderGross * $part);
$chargedFeeRefundedNet = Mage::app()->getStore()->roundPrice($orderNet * $part);
$allowedRefund = $orderGross - $order->getBillpayChargedFeeRefunded();
$allowedRefundNet = $orderNet - $order->getBillpayChargedFeeRefundedNet();
if ($chargedFeeRefunded > $allowedRefund) {
$chargedFeeRefunded = $allowedRefund;
}
if ($chargedFeeRefundedNet > $allowedRefundNet) {
$chargedFeeRefundedNet = $allowedRefundNet;
}
$order->setBaseBillpayChargedFeeRefunded($order->getBaseBillpayChargedFeeRefunded() + $baseChargedFeeRefunded);
$order->setBaseBillpayChargedFeeRefundedNet($order->getBaseBillpayChargedFeeRefundedNet() + $baseChargedFeeRefundedNet);
$order->setBillpayChargedFeeRefunded($order->getBillpayChargedFeeRefunded() + $chargedFeeRefunded);
$order->setBillpayChargedFeeRefundedNet($order->getBillpayChargedFeeRefundedNet() + $chargedFeeRefundedNet);
$creditmemo->setBillpayChargedFeeRefunded($chargedFeeRefunded);
$creditmemo->setBillpayChargedFeeRefundedNet($chargedFeeRefundedNet);
$creditmemo->setBaseBillpayChargedFeeRefunded($baseChargedFeeRefunded);
$creditmemo->setBaseBillpayChargedFeeRefundedNet($baseChargedFeeRefundedNet);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseChargedFeeRefunded);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $chargedFeeRefunded);
$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + ($chargedFeeRefunded - $chargedFeeRefundedNet));
$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + ($baseChargedFeeRefunded - $baseChargedFeeRefundedNet));
}
}
}
break;
}
}
return $this;
}