私はmagento 1.7に取り組んでいます。請求書手数料を追加した支払いゲートウェイに取り組んでいますが、税グループに請求書手数料の税金を追加する必要があります
誰かがこの問題を解決するのを手伝ってくださいここに私のコードに従っています私は税金に税額を追加しようとしましたが、まだ機能していません
<?php
class ***_******_Model_Quote_TaxTotal
extends Mage_Sales_Model_Quote_Address_Total_Tax
{
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 (($payment->getMethod() != 'invoice')
&& (!count($quote->getPaymentsCollection()))
) {
return $this;
}
try {
/**
* Instead of relying on hasMethodInstance which would not always
* work when i.e the order total is reloaded with coupon codes, we
* try to get the instance directly instead.
*/
$methodInstance = $payment->getMethodInstance();
} catch (Mage_Core_Exception $e) {
return $this;
}
if (!$methodInstance instanceof Mage_Payment_Model_Method_Abstract) {
return $this;
}
if ($methodInstance->getCode() != 'invoice') {
return $this;
}
$fee = $methodInstance->getAddressInvoiceFee($address);
if(Mage::getStoreConfig('payment/invoice/tax_class') == '' ){
return $this;
}
$invoiceFee = $baseInvoiceFee = Mage::getStoreConfig('payment/invoice/_fee');
$fee = Mage::helper('invoice')->getInvoiceFeeArray($invoiceFee, $address, null);
if (!is_array($fee)) {
return $this;
}
$address->setTaxAmount($address->getTaxAmount() + 5454+ $fee['taxamount']);
$address->setBaseTaxAmount(
$address->getBaseTaxAmount() + 5454+ $fee['base_taxamount']
);
$address->setInvoiceTaxAmount($fee['taxamount']);
$address->setBaseInvoiceTaxAmount($fee['base_taxamount']);
return $this;
}
}
これはconfig.xmlです
<sales>
<quote>
<totals>
<fee>
<class>invoice/sales_quote_address_total_fee</class>
</fee>
<invoicetax>
<class>invoice/quote_taxTotal</class>
<after>subtotal,discount,shipping,tax</after>
<before>grand_total</before>
</invoicetax>
</totals>
</quote>
</sales>