本文整理汇总了PHP中Mage_Sales_Model_Order_Invoice::getBaseGrandTotal方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Invoice::getBaseGrandTotal方法的具体用法?PHP Mage_Sales_Model_Order_Invoice::getBaseGrandTotal怎么用?PHP Mage_Sales_Model_Order_Invoice::getBaseGrandTotal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Order_Invoice
的用法示例。
在下文中一共展示了Mage_Sales_Model_Order_Invoice::getBaseGrandTotal方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: collect
/**
* Collect reward total for invoice
*
* @param Mage_Sales_Model_Order_Invoice $invoice
* @return Enterprise_Reward_Model_Total_Invoice_Reward
*/
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$order = $invoice->getOrder();
$rewardCurrecnyAmountLeft = $order->getRewardCurrencyAmount() - $order->getRewardCurrencyAmountInvoiced();
$baseRewardCurrecnyAmountLeft = $order->getBaseRewardCurrencyAmount() - $order->getBaseRewardCurrencyAmountInvoiced();
if ($order->getBaseRewardCurrencyAmount() && $baseRewardCurrecnyAmountLeft > 0) {
if ($baseRewardCurrecnyAmountLeft < $invoice->getBaseGrandTotal()) {
$invoice->setGrandTotal($invoice->getGrandTotal() - $rewardCurrecnyAmountLeft);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() - $baseRewardCurrecnyAmountLeft);
} else {
$rewardCurrecnyAmountLeft = $invoice->getGrandTotal();
$baseRewardCurrecnyAmountLeft = $invoice->getBaseGrandTotal();
$invoice->setGrandTotal(0);
$invoice->setBaseGrandTotal(0);
}
$pointValue = $order->getRewardPointsBalance() / $order->getBaseRewardCurrencyAmount();
$rewardPointsBalance = $baseRewardCurrecnyAmountLeft * ceil($pointValue);
$rewardPointsBalanceLeft = $order->getRewardPointsBalance() - $order->getRewardPointsBalanceInvoiced();
if ($rewardPointsBalance > $rewardPointsBalanceLeft) {
$rewardPointsBalance = $rewardPointsBalanceLeft;
}
$invoice->setRewardPointsBalance($rewardPointsBalance);
$invoice->setRewardCurrencyAmount($rewardCurrecnyAmountLeft);
$invoice->setBaseRewardCurrencyAmount($baseRewardCurrecnyAmountLeft);
}
return $this;
}
示例2: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$invoice->setPaymentCharge(0);
$invoice->setBasePaymentCharge(0);
$paymentCharge = $invoice->getOrder()->getPaymentCharge();
$basePaymentCharge = $invoice->getOrder()->getBasePaymentCharge();
// we moeten de btw meenemen in de berekening
$paymentMethod = $invoice->getOrder()->getPayment()->getMethod();
$taxClass = Mage::helper('pay_payment')->getPaymentChargeTaxClass($paymentMethod);
$storeId = Mage::app()->getStore()->getId();
$taxCalculationModel = Mage::getSingleton('tax/calculation');
$request = $taxCalculationModel->getRateRequest($invoice->getOrder()->getShippingAddress(), $invoice->getOrder()->getBillingAddress(), null, $storeId);
$request->setStore(Mage::app()->getStore());
$rate = $taxCalculationModel->getRate($request->setProductClassId($taxClass));
if ($rate > 0) {
$baseChargeTax = round($invoice->getBasePaymentCharge() / (1 + $rate / 100) * ($rate / 100), 2);
$chargeTax = round($invoice->getPaymentCharge() / (1 + $rate / 100) * ($rate / 100), 2);
} else {
$baseChargeTax = 0;
$chargeTax = 0;
}
$invoice->setBaseTaxAmount($invoice->getBaseTaxAmount() + $baseChargeTax);
$invoice->setTaxAmount($invoice->getTaxAmount() + $chargeTax);
$invoice->setGrandTotal($invoice->getGrandTotal() + $invoice->getPaymentCharge());
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $invoice->getBasePaymentCharge());
$invoice->setPaymentCharge($paymentCharge);
$invoice->setBasePaymentCharge($basePaymentCharge);
$invoice->setGrandTotal($invoice->getGrandTotal() + $invoice->getPaymentCharge());
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $invoice->getBasePaymentCharge());
return $this;
}
示例3: collect
/**
* Collect customer balance totals for invoice
*
* @param Mage_Sales_Model_Order_Invoice $invoice
* @return Enterprise_CustomerBalance_Model_Total_Invoice_Customerbalance
*/
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
if (!Mage::helper('enterprise_customerbalance')->isEnabled()) {
return $this;
}
$order = $invoice->getOrder();
if ($order->getBaseCustomerBalanceAmount() && $order->getBaseCustomerBalanceInvoiced() != $order->getBaseCustomerBalanceAmount()) {
$gcaLeft = $order->getBaseCustomerBalanceAmount() - $order->getBaseCustomerBalanceInvoiced();
$used = 0;
$baseUsed = 0;
if ($gcaLeft >= $invoice->getBaseGrandTotal()) {
$baseUsed = $invoice->getBaseGrandTotal();
$used = $invoice->getGrandTotal();
$invoice->setBaseGrandTotal(0);
$invoice->setGrandTotal(0);
} else {
$baseUsed = $order->getBaseCustomerBalanceAmount() - $order->getBaseCustomerBalanceInvoiced();
$used = $order->getCustomerBalanceAmount() - $order->getCustomerBalanceInvoiced();
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() - $baseUsed);
$invoice->setGrandTotal($invoice->getGrandTotal() - $used);
}
$invoice->setBaseCustomerBalanceAmount($baseUsed);
$invoice->setCustomerBalanceAmount($used);
}
return $this;
}
示例4: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$order = $invoice->getOrder();
if ($order->getCustomercreditDiscount() < 0.0001) {
return;
}
if ($invoice->isLast()) {
$baseDiscount = $order->getBaseCustomercreditDiscount();
$discount = $order->getCustomercreditDiscount();
foreach ($order->getInvoiceCollection() as $existedInvoice) {
if ($baseDiscount > 0.0001) {
$baseDiscount -= $existedInvoice->getBaseCustomercreditDiscount();
$discount -= $existedInvoice->getCustomercreditDiscount();
}
}
} else {
$orderData = $order->getData();
$invoiceData = $invoice->getData();
if ($invoiceData['shipping_incl_tax']) {
$ratio = ($invoiceData['subtotal_incl_tax'] + $invoiceData['shipping_incl_tax']) / ($orderData['subtotal_incl_tax'] + $orderData['shipping_incl_tax']);
} else {
$ratio = $invoiceData['subtotal_incl_tax'] / ($orderData['subtotal_incl_tax'] + $orderData['shipping_incl_tax']);
}
$baseDiscount = $order->getBaseCustomercreditDiscount() * $ratio;
$discount = $order->getCustomercreditDiscount() * $ratio;
$maxBaseDiscount = $order->getBaseCustomercreditDiscount();
$maxDiscount = $order->getCustomercreditDiscount();
foreach ($order->getInvoiceCollection() as $existedInvoice) {
if ($maxBaseDiscount > 0.0001) {
$maxBaseDiscount -= $existedInvoice->getBaseCustomercreditDiscount();
$maxDiscount -= $existedInvoice->getCustomercreditDiscount();
}
}
if ($baseDiscount > $maxBaseDiscount) {
$baseDiscount = $maxBaseDiscount;
$discount = $maxDiscount;
}
}
if ($baseDiscount > 0.0001) {
if ($invoice->getBaseGrandTotal() <= $baseDiscount) {
$invoice->setBaseCustomercreditDiscount($invoice->getBaseGrandTotal());
$invoice->setCustomercreditDiscount($invoice->getGrandTotal());
$invoice->setBaseGrandTotal(0.0);
$invoice->setGrandTotal(0.0);
} else {
$invoice->setBaseCustomercreditDiscount($baseDiscount);
$invoice->setCustomercreditDiscount($discount);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() - $baseDiscount);
$invoice->setGrandTotal($invoice->getGrandTotal() - $discount);
}
}
}
示例5: collect
/**
* Collect reward total for invoice
*
* @param Mage_Sales_Model_Order_Invoice $invoice
* @return Rewards_Model_Sales_Invoice_Total
*/
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$order = $invoice->getOrder();
if (!$order->getHasSpentPoints()) {
return $this;
}
list($acc_diff, $acc_diff_base) = $this->getAccumulatedDiscounts($order);
//@nelkaake -a 12/01/11: This will help us make sure we never go below $0
$acc_diff = min($acc_diff, $invoice->getGrandTotal());
$acc_diff_base = min($acc_diff_base, $invoice->getBaseGrandTotal());
$invoice->setGrandTotal($invoice->getGrandTotal() - $acc_diff);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() - $acc_diff_base);
return $this;
}
示例6: collect
/**
* @param Mage_Sales_Model_Order_Invoice $invoice
*
* @return $this
*/
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$order = $invoice->getOrder();
/**
* The COD fee is always added to the first invoice, so if this order already has invoices, we don't have to add
* anything.
*/
if ($order->hasInvoices()) {
return $this;
}
/**
* Get the COD fee amounts.
*/
$fee = $order->getBuckarooFee();
$baseFee = $order->getBaseBuckarooFee();
/**
* If no COD fee is set, there is nothing to add/
*/
if ($fee < 0.01 || $baseFee < 0.01) {
return $this;
}
/**
* Add the COD fee amounts to the invoice and update the amounts for the order.
*/
$grandTotal = $invoice->getGrandTotal();
$baseGrandTotal = $invoice->getBaseGrandTotal();
$invoice->setBuckarooFee($fee)->setBaseBuckarooFee($baseFee)->setGrandTotal($grandTotal + $fee)->setBaseGrandTotal($baseGrandTotal + $baseFee);
$order->setBuckarooFeeInvoiced($fee)->setBaseBuckarooFeeInvoiced($baseFee);
return $this;
}
示例7: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$order = $invoice->getOrder();
if ($order->getPayment()->getMethodInstance()->getCode() != 'cashondelivery') {
return $this;
}
if (!$order->getCodFee()) {
return $this;
}
foreach ($invoice->getOrder()->getInvoiceCollection() as $previusInvoice) {
if ($previusInvoice->getCodAmount() && !$previusInvoice->isCanceled()) {
$includeCodTax = false;
}
}
$baseCodFee = $order->getBaseCodFee();
$baseCodFeeInvoiced = $order->getBaseCodFeeInvoiced();
$baseInvoiceTotal = $invoice->getBaseGrandTotal();
$codFee = $order->getCodFee();
$codFeeInvoiced = $order->getCodFeeInvoiced();
$invoiceTotal = $invoice->getGrandTotal();
if (!$baseCodFee || $baseCodFeeInvoiced == $baseCodFee) {
return $this;
}
$baseCodFeeToInvoice = $baseCodFee - $baseCodFeeInvoiced;
$codFeeToInvoice = $codFee - $codFeeInvoiced;
$baseInvoiceTotal = $baseInvoiceTotal + $baseCodFeeToInvoice;
$invoiceTotal = $invoiceTotal + $codFeeToInvoice;
$invoice->setBaseGrandTotal($baseInvoiceTotal);
$invoice->setGrandTotal($invoiceTotal);
$invoice->setBaseCodFee($baseCodFeeToInvoice);
$invoice->setCodFee($codFeeToInvoice);
$order->setBaseCodFeeInvoiced($baseCodFeeInvoiced + $baseCodFeeToInvoice);
$order->setCodFeeInvoiced($codFeeInvoiced + $codFeeToInvoice);
return $this;
}
示例8: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$invoice->setGomageGiftWrapAmount(0);
$invoice->setBaseGomageGiftWrapAmount(0);
$totalGomageGiftWrapAmount = 0;
$baseTotalGomageGiftWrapAmount = 0;
foreach ($invoice->getAllItems() as $item) {
if ($item->getOrderItem()->isDummy()) {
continue;
}
$orderItem = $item->getOrderItem();
$orderItemGomageGiftWrap = (double) $orderItem->getGomageGiftWrapAmount();
$baseOrderItemGomageGiftWrap = (double) $orderItem->getBaseGomageGiftWrapAmount();
$orderItemQty = $orderItem->getQtyOrdered();
if ($orderItemGomageGiftWrap && $orderItemQty) {
$GomageGiftWrap = $orderItemGomageGiftWrap * $item->getQty() / $orderItemQty;
$baseGomageGiftWrap = $baseOrderItemGomageGiftWrap * $item->getQty() / $orderItemQty;
$GomageGiftWrap = $invoice->getStore()->roundPrice($GomageGiftWrap);
$baseGomageGiftWrap = $invoice->getStore()->roundPrice($baseGomageGiftWrap);
$item->setGomageGiftWrapAmount($GomageGiftWrap);
$item->setBaseGomageGiftWrapAmount($baseGomageGiftWrap);
$totalGomageGiftWrapAmount += $GomageGiftWrap;
$baseTotalGomageGiftWrapAmount += $baseGomageGiftWrap;
}
}
$invoice->setGomageGiftWrapAmount($totalGomageGiftWrapAmount);
$invoice->setBaseGomageGiftWrapAmount($baseTotalGomageGiftWrapAmount);
$invoice->setGrandTotal($invoice->getGrandTotal() + $totalGomageGiftWrapAmount);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseTotalGomageGiftWrapAmount);
return $this;
}
示例9: collect
/**
* Collect invoice subtotal
*
* @param Mage_Sales_Model_Order_Invoice $invoice
* @return Mage_Sales_Model_Order_Invoice_Total_Subtotal
*/
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$subtotal = 0;
$baseSubtotal = 0;
$subtotalInclTax = 0;
$baseSubtotalInclTax = 0;
$order = $invoice->getOrder();
foreach ($invoice->getAllItems() as $item) {
$item->calcRowTotal();
if ($item->getOrderItem()->isDummy()) {
continue;
}
$subtotal += $item->getRowTotal();
$baseSubtotal += $item->getBaseRowTotal();
$subtotalInclTax += $item->getRowTotalInclTax();
$baseSubtotalInclTax += $item->getBaseRowTotalInclTax();
}
$allowedSubtotal = $order->getSubtotal() - $order->getSubtotalInvoiced();
$baseAllowedSubtotal = $order->getBaseSubtotal() - $order->getBaseSubtotalInvoiced();
if ($invoice->isLast()) {
$subtotal = $allowedSubtotal;
$baseSubtotal = $baseAllowedSubtotal;
} else {
$subtotal = min($allowedSubtotal, $subtotal);
$baseSubtotal = min($baseAllowedSubtotal, $baseSubtotal);
}
$invoice->setSubtotal($subtotal);
$invoice->setBaseSubtotal($baseSubtotal);
$invoice->setSubtotalInclTax($subtotalInclTax);
$invoice->setBaseSubtotalInclTax($baseSubtotalInclTax);
$invoice->setGrandTotal($invoice->getGrandTotal() + $subtotal);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseSubtotal);
return $this;
}
示例10: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$totalTax = 0;
$baseTotalTax = 0;
foreach ($invoice->getAllItems() as $item) {
$orderItem = $item->getOrderItem();
$orderItemTax = $orderItem->getTaxAmount();
$baseOrderItemTax = $orderItem->getBaseTaxAmount();
$orderItemQty = $orderItem->getQtyOrdered();
if ($orderItemTax && $orderItemQty) {
/**
* Resolve rounding problems
*/
if ($item->isLast()) {
$tax = $orderItemTax - $orderItem->getTaxInvoiced();
$baseTax = $baseOrderItemTax - $orderItem->getBaseTaxInvoiced();
} else {
$tax = $orderItemTax * $item->getQty() / $orderItemQty;
$baseTax = $baseOrderItemTax * $item->getQty() / $orderItemQty;
$tax = $invoice->getStore()->roundPrice($tax);
$baseTax = $invoice->getStore()->roundPrice($baseTax);
}
$item->setTaxAmount($tax);
$item->setBaseTaxAmount($baseTax);
$totalTax += $tax;
$baseTotalTax += $baseTax;
}
}
$invoice->setTaxAmount($totalTax);
$invoice->setBaseTaxAmount($baseTotalTax);
$invoice->setGrandTotal($invoice->getGrandTotal() + $totalTax);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseTotalTax);
return $this;
}
示例11: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$order = $invoice->getOrder();
if (!preg_match('/^capayable/', $order->getPayment()->getMethodInstance()->getCode())) {
return $this;
}
if (!$order->getCapayableFee()) {
return $this;
}
foreach ($invoice->getOrder()->getInvoiceCollection() as $prevInvoice) {
if ($prevInvoice->getCapayableFeeAmount() && !$prevInvoice->isCanceled()) {
$includeFeeTax = FALSE;
}
}
$basePaymentFee = $order->getBaseCapayableFee();
$basePaymentFeeInvoiced = $order->getBaseCapayableFeeInvoiced();
$baseInvoiceTotal = $invoice->getBaseGrandTotal();
$paymentFee = $order->getCapayableFee();
$paymentFeeInvoiced = $order->getCapayableFeeInvoiced();
$invoiceTotal = $invoice->getGrandTotal();
if (!$basePaymentFee || $basePaymentFeeInvoiced == $basePaymentFee) {
return $this;
}
$basePaymentFeeToInvoice = $basePaymentFee - $basePaymentFeeInvoiced;
$paymentFeeToInvoice = $paymentFee - $paymentFeeInvoiced;
$baseInvoiceTotal = $baseInvoiceTotal + $basePaymentFeeToInvoice;
$invoiceTotal = $invoiceTotal + $paymentFeeToInvoice;
$invoice->setBaseGrandTotal($baseInvoiceTotal);
$invoice->setGrandTotal($invoiceTotal);
$invoice->setBaseCapayableFee($basePaymentFeeToInvoice);
$invoice->setCapayableFee($paymentFeeToInvoice);
$order->setBaseCapayableFeeInvoiced($basePaymentFeeInvoiced + $basePaymentFeeToInvoice);
$order->setCapayableFeeInvoiced($paymentFeeInvoiced + $paymentFeeToInvoice);
return $this;
}
示例12: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$invoice->setData('zitec_dpd_cashondelivery_surcharge', 0);
$invoice->setData('base_zitec_dpd_cashondelivery_surcharge', 0);
$invoice->setData('zitec_dpd_cashondelivery_surcharge_tax', 0);
$invoice->setData('base_zitec_dpd_cashondelivery_surcharge_tax', 0);
$order = $invoice->getOrder();
$amount = $order->getData('zitec_dpd_cashondelivery_surcharge');
if ($amount) {
// We look at the bills to see if it has already claimed the COD surcharge.
foreach ($order->getInvoiceCollection() as $previousInvoice) {
/* @var $previousInvoice Mage_Sales_Model_Order_Invoice */
if (!$previousInvoice->isCanceled() && $previousInvoice->getData('base_zitec_dpd_cashondelivery_surcharge')) {
return $this;
}
}
$invoice->setData('zitec_dpd_cashondelivery_surcharge', $amount);
$baseAmount = $order->getData('base_zitec_dpd_cashondelivery_surcharge');
$invoice->setData('base_zitec_dpd_cashondelivery_surcharge', $baseAmount);
$invoice->setGrandTotal($invoice->getGrandTotal() + $amount);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $amount);
// NB. We do not add taxes grand total here.
// Are added Zitec_Dpd_Model_Sales_Order_Invoice_Total_Tax.
}
return $this;
}
示例13: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$store = $invoice->getStore();
$totalTax = 0;
$baseTotalTax = 0;
foreach ($invoice->getAllItems() as $item) {
$orderItem = $item->getOrderItem();
$orderItemQty = $orderItem->getQtyOrdered();
if ($orderItemQty) {
if ($orderItem->isDummy()) {
continue;
}
$weeeTaxAmount = $item->getWeeeTaxAppliedAmount() * $item->getQty();
$baseWeeeTaxAmount = $item->getBaseWeeeTaxAppliedAmount() * $item->getQty();
$item->setWeeeTaxAppliedRowAmount($weeeTaxAmount);
$item->setBaseWeeeTaxAppliedRowAmount($baseWeeeTaxAmount);
$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());
$totalTax += $weeeTaxAmount;
$baseTotalTax += $baseWeeeTaxAmount;
}
}
/*
* Add FPT to totals
* Notice that we check restriction on allowed tax, because
* a) for last invoice we don't need to collect FPT - it is automatically collected by subtotal/tax collector,
* that adds whole remaining (not invoiced) subtotal/tax value, so fpt is automatically included into it
* b) FPT tax is included into order subtotal/tax value, so after multiple invoices with partial item quantities
* it can happen that other collector will take some FPT value from shared subtotal/tax order value
*/
$order = $invoice->getOrder();
if (Mage::helper('weee')->includeInSubtotal($store)) {
$allowedSubtotal = $order->getSubtotal() - $order->getSubtotalInvoiced() - $invoice->getSubtotal();
$allowedBaseSubtotal = $order->getBaseSubtotal() - $order->getBaseSubtotalInvoiced() - $invoice->getBaseSubtotal();
$totalTax = min($allowedSubtotal, $totalTax);
$baseTotalTax = min($allowedBaseSubtotal, $baseTotalTax);
$invoice->setSubtotal($invoice->getSubtotal() + $totalTax);
$invoice->setBaseSubtotal($invoice->getBaseSubtotal() + $baseTotalTax);
} else {
$allowedTax = $order->getTaxAmount() - $order->getTaxInvoiced() - $invoice->getTaxAmount();
$allowedBaseTax = $order->getBaseTaxAmount() - $order->getBaseTaxInvoiced() - $invoice->getBaseTaxAmount();
$totalTax = min($allowedTax, $totalTax);
$baseTotalTax = min($allowedBaseTax, $baseTotalTax);
$invoice->setTaxAmount($invoice->getTaxAmount() + $totalTax);
$invoice->setBaseTaxAmount($invoice->getBaseTaxAmount() + $baseTotalTax);
}
$invoice->setGrandTotal($invoice->getGrandTotal() + $totalTax);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseTotalTax);
return $this;
}
示例14: collect
/**
* collect discout total for invoice
*
* - on payment method "sofortrechnung" discount will invoice on first invoice complete including canceled items
*
* @param Mage_Sales_Model_Order_Invoice $invoice
* @return Mage_Sales_Model_Order_Invoice_Total_Discount
* @see app/code/core/Mage/Sales/Model/Order/Invoice/Total/Mage_Sales_Model_Order_Invoice_Total_Discount::collect()
*/
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
// special case for modified sofortrechnung
if ($invoice->getOrder()->getPayment()->getMethod() == "sofortrechnung") {
// special special case if configurable product is in basket
$hackDiff = 0;
$enableDiff = false;
$discountTax = 100;
foreach ($invoice->getOrder()->getAllVisibleItems() as $item) {
$enableDiff = $enableDiff || $item->product_type == 'configurable';
if ($item->getTaxPercent() > 0) {
// tax of discount is min of cart-items
$discountTax = min($item->getTaxPercent(), $discountTax);
}
}
$totalDiscountAmount = -$invoice->getOrder()->getDiscountInvoiced() - $invoice->getOrder()->getDiscountAmount();
$baseTotalDiscountAmount = -$invoice->getOrder()->getBaseDiscountInvoiced() - $invoice->getOrder()->getBaseDiscountAmount();
$invoice->setDiscountAmount(-$totalDiscountAmount);
$invoice->setBaseDiscountAmount(-$baseTotalDiscountAmount);
if ($enableDiff) {
$hackDiff = $totalDiscountAmount - $totalDiscountAmount * (100 / ($discountTax + 100));
}
$invoice->setGrandTotal($invoice->getGrandTotal() - $totalDiscountAmount + $hackDiff);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() - $baseTotalDiscountAmount + $hackDiff);
return $this;
}
return parent::collect($invoice);
}
示例15: collect
public function collect(Mage_Sales_Model_Order_Invoice $invoice)
{
$invoice->setShippingAmount(0);
$invoice->setBaseShippingAmount(0);
$orderShippingAmount = $invoice->getOrder()->getShippingAmount();
$baseOrderShippingAmount = $invoice->getOrder()->getBaseShippingAmount();
$shippingInclTax = $invoice->getOrder()->getShippingInclTax();
$baseShippingInclTax = $invoice->getOrder()->getBaseShippingInclTax();
if ($orderShippingAmount) {
/**
* Check shipping amount in previus invoices
*/
foreach ($invoice->getOrder()->getInvoiceCollection() as $previusInvoice) {
if ($previusInvoice->getShippingAmount() && !$previusInvoice->isCanceled()) {
return $this;
}
}
$invoice->setShippingAmount($orderShippingAmount);
$invoice->setBaseShippingAmount($baseOrderShippingAmount);
$invoice->setShippingInclTax($shippingInclTax);
$invoice->setBaseShippingInclTax($baseShippingInclTax);
$invoice->setGrandTotal($invoice->getGrandTotal() + $orderShippingAmount);
$invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseOrderShippingAmount);
}
return $this;
}