Encontrará el código que se ocupa de esto en la clase Mage_Sales_Model_Order_Creditmemo_Total_Tax
.
La línea de código $part = $creditmemo->getShippingAmount()/$orderShippingAmount;
(ubicada en la línea 116) muestra claramente que esto está codificado específicamente para calcular solo los impuestos según el campo ShippingAmount del formulario creditMemo.
El cambio obvio es ajustar ese código para usar también el campo "Reembolso de ajuste".
En realidad, no puede reescribir esta clase, debido a cómo Mgento la instancia como parte del subsistema de recopiladores de totales, en los cálculos de crédito conmemorativo.
Sin embargo, puede ajustar el recopilador para usar su propia versión de la clase, de modo que no se pierda todo.
Entonces, en su propio módulo colocará el siguiente código en config.xml. Va dentro de los <global>
elementos
<global>
<sales>
<order_creditmemo>
<totals>
<tax>
<class>NAMESPACE_MODULE/order_creditmemo_total_tax</class>
<after>subtotal</after>
</tax>
</totals>
</order_creditmemo>
</sales>
<global>
Ahora creará el archivo de clase NAMESPACE/MODULE/Model/Order/Creditmemo/Total/Tax
, que extiende el archivo central.
class NAMESPACE_MODULE_Model_Order_Creditmemo_Total_Tax extends Mage_Sales_Model_Order_Creditmemo_Total_Tax
Necesitará copiar todo el método 'collect' de la clase principal en su nuevo archivo.
Agregue el siguiente código en la línea 114 (justo después del código $shippingDelta = $baseOrderShippingAmount - $baseOrderShippingRefundedAmount
)
/** adjust to also calculate tax on the adjustment value **/
$adjustment = ($creditmemo->getAdjustment() > 0)?$creditmemo->getAdjustment():$creditmemo->getShippingAmount();
if($creditmemo->getAdjustment() > 0 && $creditmemo->getShippingAmount() > 0) {
$adjustment = $creditmemo->getAdjustment() + $creditmemo->getShippingAmount();
}
/** end adjustment **/
y ajuste la línea 116 de $part = $creditmemo->getShippingAmount()/$orderShippingAmount;
a$part = $adjustment/$orderShippingAmount;
Esto usará efectivamente el Monto de envío o el Monto de ajuste en el cálculo.