本文整理汇总了PHP中Mage_Sales_Model_Order_Creditmemo::getPaymentFeeTax方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Creditmemo::getPaymentFeeTax方法的具体用法?PHP Mage_Sales_Model_Order_Creditmemo::getPaymentFeeTax怎么用?PHP Mage_Sales_Model_Order_Creditmemo::getPaymentFeeTax使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Order_Creditmemo
的用法示例。
在下文中一共展示了Mage_Sales_Model_Order_Creditmemo::getPaymentFeeTax方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
//recalculate tax amounts in case if refund shipping value was changed
if ((double) $creditmemo->getBasePaymentFeeAmount() && (double) $order->getBasePaymentFeeAmount()) {
$taxFactor = $creditmemo->getBasePaymentFeeAmount() / $order->getBasePaymentFeeAmount();
$paymentFeeTax = $creditmemo->getPaymentFeeTax() * $taxFactor;
$paymentBaseFeeTax = $creditmemo->getBasePaymentFeeTax() * $taxFactor;
} else {
$paymentFeeTax = $creditmemo->getPaymentFeeTax();
$paymentBaseFeeTax = $creditmemo->getBasePaymentFeeTax();
}
// set the tax fee
$creditmemo->setPaymentFeeTax($paymentFeeTax);
$creditmemo->setBasePaymentFeeTax($paymentBaseFeeTax);
// use the tax fee to calculate total tax amount
$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $creditmemo->getPaymentFeeTax());
$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $creditmemo->getBasePaymentFeeTax());
return $this;
}
示例2: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $creditmemo->getPaymentFeeTax());
$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $creditmemo->getBasePaymentFeeTax());
return $this;
}
示例3: collect
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
{
/**
* Only option to receive the payment fee entered to modify the creditMemo refund fee.
*/
$order = $creditmemo->getOrder();
$data = $this->_getRequest('creditmemo');
// add Refunded amount to refunded
$basePaymentFeeAmountRefunded = $order->getPayment()->getAdditionalInformation("base_payment_fee_amount_refunded");
$paymentFeeAmountRefunded = $order->getPayment()->getAdditionalInformation("payment_fee_amount_refunded");
$isPaymentFeeInclTax = Mage::getSingleton('adyen_fee/tax_config')->displaySalesPaymentFeeInclTax($order->getStoreId());
if ($this->_isLoggedIn()) {
if ($data) {
if (isset($data['adyen_fee_payment_fee_refund'])) {
if ($data['adyen_fee_payment_fee_refund'] == '') {
$data['adyen_fee_payment_fee_refund'] = 0;
}
$store = $order->getStore();
$refundAmount = $data['adyen_fee_payment_fee_refund'];
$baseRefundAmount = $store->convertPrice($refundAmount, false);
// if refundAmount is set to empty set amount to zero
if ($refundAmount == 0 || $refundAmount == "") {
$creditmemo->setPaymentFeeAmount(0);
$creditmemo->setPaymentFeeTax(0);
$creditmemo->setBasePaymentFeeAmount(0);
$creditmemo->setBasePaymentFeeTax(0);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $creditmemo->getPaymentFeeAmount() + $creditmemo->getPaymentFeeTax());
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $creditmemo->getBasePaymentFeeAmount() + $creditmemo->getBasePaymentFeeTax());
return $this;
}
/*
* if payment fee is incl tax remove the tax from the amount
*/
if ($isPaymentFeeInclTax && $refundAmount > 0) {
$refundAmountInclTax = $refundAmount;
$baseRefundAmountInclTax = $baseRefundAmount;
// calculate tax
// get base tax rate
$basePaymentFeeAmount = Mage::app()->getStore()->roundPrice($order->getBasePaymentFeeAmount());
$basePaymentFeeTax = Mage::app()->getStore()->roundPrice($order->getBasePaymentFeeTax());
// get tax rate
$paymentFeeAmount = Mage::app()->getStore()->roundPrice($order->getPaymentFeeAmount());
$paymentFeeTax = Mage::app()->getStore()->roundPrice($order->getPaymentFeeTax());
// tax rate
$baseRate = $basePaymentFeeTax / $basePaymentFeeAmount;
// rate is already in the amount so + 1 because example 21% = 121% = 1.21
$baseRate = $baseRate + 1;
$rate = $paymentFeeTax / $paymentFeeAmount;
// rate is already in the amount so + 1 because example 21% = 121% = 1.21
$rate = $rate + 1;
// tax amount
$baseRefundAmount = $baseRefundAmountInclTax / $baseRate;
$refundAmount = $refundAmountInclTax / $rate;
$baseRefundAmount = $store->convertPrice($baseRefundAmount, false);
// tax amount
$taxAmount = $refundAmountInclTax - $refundAmount;
$baseTaxAmount = $baseRefundAmountInclTax - $baseRefundAmount;
$creditmemo->setPaymentFeeAmount($refundAmount);
$creditmemo->setBasePaymentFeeAmount($baseRefundAmount);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $creditmemo->getPaymentFeeAmount() + $taxAmount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $creditmemo->getBasePaymentFeeAmount() + $baseTaxAmount);
} else {
// set amount
$creditmemo->setPaymentFeeAmount($refundAmount);
$baseRefundAmount = $store->convertPrice($refundAmount, false);
$creditmemo->setBasePaymentFeeAmount($baseRefundAmount);
// get base tax rate
$basePaymentFeeAmount = Mage::app()->getStore()->roundPrice($order->getBasePaymentFeeAmount());
$basePaymentFeeTax = Mage::app()->getStore()->roundPrice($order->getBasePaymentFeeTax());
// get tax rate
$paymentFeeAmount = Mage::app()->getStore()->roundPrice($order->getPaymentFeeAmount());
$paymentFeeTax = Mage::app()->getStore()->roundPrice($order->getPaymentFeeTax());
// tax rate
$baseRate = $basePaymentFeeTax / $basePaymentFeeAmount;
$rate = $paymentFeeTax / $paymentFeeAmount;
// tax amount
$baseTaxAmount = $refundAmount * $baseRate;
$taxAmount = $refundAmount * $rate;
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $creditmemo->getPaymentFeeAmount() + $taxAmount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $creditmemo->getBasePaymentFeeAmount() + $baseTaxAmount);
}
// add fee to refunded variable so it can be substracten from open amount
if ($basePaymentFeeAmountRefunded > 0) {
$order->getPayment()->setAdditionalInformation("base_payment_fee_amount_refunded", $basePaymentFeeAmountRefunded + $baseRefundAmount);
} else {
$order->getPayment()->setAdditionalInformation("base_payment_fee_amount_refunded", $baseRefundAmount);
}
if ($paymentFeeAmountRefunded > 0) {
$order->getPayment()->setAdditionalInformation("payment_fee_amount_refunded", $paymentFeeAmountRefunded + $refundAmount);
} else {
$order->getPayment()->setAdditionalInformation("payment_fee_amount_refunded", $refundAmount);
}
// do not do other logic
return $this;
}
}
}
// Substract the already refunded amount off the GrandTotal and paymentFee amount.
if ($basePaymentFeeAmountRefunded > 0) {
$allowedRefundedAmount = $creditmemo->getPaymentFeeAmount() - $paymentFeeAmountRefunded;
//.........这里部分代码省略.........