public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo) { $grandTotal = $creditmemo->getGrandTotal(); $baseGrandTotal = $creditmemo->getBaseGrandTotal(); $grandTotal += $creditmemo->getAdjustmentPositive(); $baseGrandTotal += $creditmemo->getBaseAdjustmentPositive(); $grandTotal -= $creditmemo->getAdjustmentNegative(); $baseGrandTotal -= $creditmemo->getBaseAdjustmentNegative(); $creditmemo->setGrandTotal($grandTotal); $creditmemo->setBaseGrandTotal($baseGrandTotal); $creditmemo->setAdjustment($creditmemo->getAdjustmentPositive() - $creditmemo->getAdjustmentNegative()); $creditmemo->setBaseAdjustment($creditmemo->getBaseAdjustmentPositive() - $creditmemo->getBaseAdjustmentNegative()); return $this; }
public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo) { $order = $creditmemo->getOrder(); $orderTaxPerc = 0; $taxDetails = $order->getFullTaxInfo(); if (count($taxDetails)) { $det = array_pop($taxDetails); $orderTaxPerc = $det['percent']; } // Adding adjustment tax amounts to total tax $totalAdjusment = $creditmemo->getAdjustmentPositive() - $creditmemo->getAdjustmentNegative(); $baseTotalAdjusment = $creditmemo->getBaseAdjustmentPositive() - $creditmemo->getBaseAdjustmentNegative(); // Adjustment values already include tax in my case. Modify calculation if you're entering values without tax $totalAdjusmentTax = $totalAdjusment - $totalAdjusment * 100 / (100 + $orderTaxPerc); $baseTotalAdjusmentTax = $baseTotalAdjusment - $baseTotalAdjusment * 100 / (100 + $orderTaxPerc); parent::collect($creditmemo); $creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $totalAdjusmentTax); $creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $baseTotalAdjusmentTax); return $this; }
/** * @param Mage_Sales_Model_Order_Creditmemo $creditmemo * @return Payone_Api_Request_Parameter_Invoicing_Item * * used by Payone_Core_Model_Mapper_ApiRequest_Payment_Debit */ protected function mapAdjustmentNegativeAsItemByCreditmemo(Mage_Sales_Model_Order_Creditmemo $creditmemo) { $configMiscCreditmemo = $this->getConfigMisc()->getCreditmemo(); $sku = $configMiscCreditmemo->getAdjustmentFeeSku(); $name = $configMiscCreditmemo->getAdjustmentFeeName(); if (empty($sku)) { $sku = $this->helper()->__(self::DEFAULT_ADJUSTMENT_NEGATIVE_SKU); } if (empty($name)) { $name = $this->helper()->__(self::DEFAULT_ADJUSTMENT_NEGATIVE_SKU); } $params['id'] = $sku; $params['de'] = $name; $params['no'] = 1; $params['pr'] = $creditmemo->getAdjustmentNegative() * -1; if ($this->getPaymentMethod()->mustTransmitInvoicingItemTypes()) { $params['it'] = Payone_Api_Enum_InvoicingItemType::GOODS; } $item = new Payone_Api_Request_Parameter_Invoicing_Item(); $item->init($params); return $item; }
/** * @param Mage_Sales_Model_Order_Creditmemo $creditmemo * @return Payone_Api_Request_Parameter_Invoicing_Item * * used by Payone_Core_Model_Mapper_ApiRequest_Payment_Debit */ protected function mapAdjustmentNegativeAsItemByCreditmemo(Mage_Sales_Model_Order_Creditmemo $creditmemo) { $configMiscCreditmemo = $this->getConfigMisc()->getCreditmemo(); $sku = $configMiscCreditmemo->getAdjustmentFeeSku(); $name = $configMiscCreditmemo->getAdjustmentFeeName(); if (empty($sku)) { $sku = $this->helper()->__(self::DEFAULT_ADJUSTMENT_NEGATIVE_SKU); } if (empty($name)) { $name = $this->helper()->__(self::DEFAULT_ADJUSTMENT_NEGATIVE_SKU); } $params['it'] = Payone_Api_Enum_InvoicingItemType::GOODS; $params['id'] = $sku; $params['de'] = $name; $params['no'] = 1; $params['pr'] = $creditmemo->getAdjustmentNegative() * -1; $params['va'] = round($this->getShippingTaxRate() * 100); // assuming that it has the same tax-rate as shipping - dont know from where to get the tax $item = new Payone_Api_Request_Parameter_Invoicing_Item(); $item->init($params); return $item; }