Ejemplo n.º 1
0
 /**
  * @return Payone_Api_Request_Parameter_Invoicing_Transaction
  */
 protected function mapInvoicingParameters()
 {
     $order = $this->getOrder();
     $invoice = $this->getInvoice();
     $invoicing = new Payone_Api_Request_Parameter_Capture_Invoicing_Transaction();
     if (!empty($invoice) && $invoice->hasData()) {
         $invoiceIncrementId = $invoice->getIncrementId();
         if ($invoiceIncrementId === null) {
             $invoiceIncrementId = $this->fetchNewIncrementId($invoice);
         }
         $appendix = $this->getInvoiceAppendix($invoice);
         $invoicing->setInvoiceid($invoiceIncrementId);
         $invoicing->setInvoiceappendix($appendix);
         // Regular order items:
         foreach ($invoice->getItemsCollection() as $itemData) {
             /** @var $itemData Mage_Sales_Model_Order_Invoice_Item */
             /** @var $orderItem Mage_Sales_Model_Order_Item */
             $orderItem = $order->getItemById($itemData->getOrderItemId());
             if ($orderItem->isDummy()) {
                 continue;
                 // Do not map dummy items.
             }
             $number = number_format($itemData->getQty(), 0, '.', '');
             if ($number <= 0) {
                 continue;
                 // Do not map items with zero quantity
             }
             $params['id'] = $itemData->getSku();
             $params['de'] = $itemData->getName();
             $params['no'] = $number;
             $params['pr'] = $itemData->getPriceInclTax();
             if ($this->getPaymentMethod()->mustTransmitInvoicingItemTypes()) {
                 $params['it'] = Payone_Api_Enum_InvoicingItemType::GOODS;
             }
             // We have to load the tax percentage from the order item
             $params['va'] = number_format($orderItem->getTaxPercent(), 0, '.', '');
             $item = new Payone_Api_Request_Parameter_Invoicing_Item();
             $item->init($params);
             $invoicing->addItem($item);
         }
         // Shipping / Fees:
         if ($invoice->getShippingInclTax() > 0) {
             $invoicing->addItem($this->mapShippingFeeAsItem());
         }
         // Discounts:
         $discountAmount = $invoice->getDiscountAmount();
         // Discount Amount is positive on invoice.
         if ($discountAmount > 0) {
             $invoicing->addItem($this->mapDiscountAsItem(-1 * $discountAmount));
         }
     }
     // Capture mode:
     $payment = $this->getPaymentMethod()->getInfoInstance();
     if ($this->getPaymentMethod() instanceof Payone_Core_Model_Payment_Method_SafeInvoice or $this->helperRegistry()->isPaymentCancelRegistered($payment)) {
         $invoicing->setCapturemode($this->mapCaptureMode());
     }
     return $invoicing;
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * @return Payone_Api_Request_Parameter_Invoicing_Transaction
  */
 protected function mapInvoicingParameters()
 {
     $order = $this->getOrder();
     $invoiceAppendix = $this->getInvoiceAppendix();
     $invoicing = new Payone_Api_Request_Parameter_Invoicing_Transaction();
     $invoicing->setInvoiceappendix($invoiceAppendix);
     // Order items:
     foreach ($order->getItemsCollection() as $key => $itemData) {
         /** @var $itemData Mage_Sales_Model_Order_Item */
         if ($itemData->isDummy()) {
             continue;
             // Do not map dummy items
         }
         $number = $itemData->getQtyToInvoice();
         if ($number <= 0) {
             continue;
             // Do not map items with zero quanity
         }
         $params['it'] = Payone_Api_Enum_InvoicingItemType::GOODS;
         $params['id'] = $itemData->getSku();
         $params['pr'] = $itemData->getPriceInclTax();
         $params['no'] = $number;
         $params['de'] = $itemData->getName();
         //            $params['va'] = number_format($itemData->getTaxPercent(), 0, '.', '');
         $params['va'] = round($itemData->getTaxPercent() * 100);
         // transfer vat in basis point format [#MAGE-186]
         if ($this->getPaymentMethod()->mustTransmitInvoicingItemTypes()) {
             $params['it'] = Payone_Api_Enum_InvoicingItemType::GOODS;
         }
         $item = new Payone_Api_Request_Parameter_Invoicing_Item();
         $item->init($params);
         $invoicing->addItem($item);
     }
     // Shipping / Fees:
     if ($order->getShippingInclTax() > 0) {
         $invoicing->addItem($this->mapShippingFeeAsItem());
     }
     // Discounts:
     $discountAmount = $order->getDiscountAmount();
     // Discount Amount is negative on order.
     if ($discountAmount > 0 || $discountAmount < 0) {
         $invoicing->addItem($this->mapDiscountAsItem($discountAmount));
     }
     return $invoicing;
 }
 public function _getInvoicingTransaction_totals($totaldata)
 {
     foreach ($totaldata['data'] as $td) {
         switch ($td['CLASS']) {
             case 'ot_shipping':
                 $item = new Payone_Api_Request_Parameter_Invoicing_Item();
                 $item->setIt('shipment');
                 $item->setId('SHIPMENT');
                 $item->setPr(round($td['VALUE'], 2));
                 $item->setNo(1);
                 $item->setDe(strip_tags($td['TITLE']));
                 $item->setVa($this->_get_order_total_tax('MODULE_SHIPPING_', $this->order->info['shipping_class']));
                 $this->invtrans->addItem($item);
                 break;
             case 'ot_payment':
                 $item = new Payone_Api_Request_Parameter_Invoicing_Item();
                 if ($td['VALUE'] > 0) {
                     $item->setIt('handling');
                     $item->setId('HANDLING');
                 } else {
                     $item->setIt('voucher');
                     $item->setId('VCHRDSCNT');
                 }
                 $item->setPr(round($td['VALUE'], 2));
                 $item->setNo(1);
                 $item->setDe(strip_tags($td['TITLE']));
                 $item->setVa(0);
                 $this->invtrans->addItem($item);
                 break;
             case 'ot_coupon':
             case 'ot_discount':
             case 'ot_gv':
             case 'ot_ps_fee':
             case 'ot_loworderfee':
             case 'ot_cod_fee':
             case 'ot_shippingfee':
                 $item = new Payone_Api_Request_Parameter_Invoicing_Item();
                 if ($td['VALUE'] > 0) {
                     $item->setIt('handling');
                     $item->setId('HANDLING');
                 } else {
                     $item->setIt('voucher');
                     $item->setId('VCHRDSCNT');
                 }
                 $item->setPr(round($td['VALUE'], 2));
                 $item->setNo(1);
                 $item->setDe(strip_tags($td['TITLE']));
                 $item->setVa($this->_get_order_total_tax('MODULE_ORDER_TOTAL_', $td['CLASS']));
                 $this->invtrans->addItem($item);
                 break;
         }
     }
 }
Ejemplo n.º 5
0
 /**
  * @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;
 }
Ejemplo n.º 6
0
 /**
  * @return Payone_Api_Request_Parameter_Invoicing_Transaction
  */
 protected function mapInvoicingParameters()
 {
     $order = $this->getOrder();
     $creditmemo = $this->getCreditmemo();
     $invoicing = new Payone_Api_Request_Parameter_Invoicing_Transaction();
     if (!empty($creditmemo) && $creditmemo->hasData()) {
         $creditmemoIncrementId = $creditmemo->getIncrementId();
         if ($creditmemoIncrementId === null) {
             $creditmemoIncrementId = $this->fetchNewIncrementId($creditmemo);
         }
         $appendix = $this->getInvoiceAppendixRefund($creditmemo);
         $invoicing->setInvoiceid($creditmemoIncrementId);
         $invoicing->setInvoiceappendix($appendix);
         // Regular order items:
         foreach ($creditmemo->getItemsCollection() as $itemData) {
             /** @var $itemData Mage_Sales_Model_Order_Creditmemo_Item */
             /** @var $orderItem Mage_Sales_Model_Order_Item */
             $orderItem = $order->getItemById($itemData->getOrderItemId());
             if ($orderItem->isDummy()) {
                 continue;
                 // Do not map dummy items.
             }
             $number = number_format($itemData->getQty(), 0, '.', '');
             if ($number <= 0) {
                 continue;
                 // Do not map items with zero quantity
             }
             $params['id'] = $itemData->getSku();
             $params['de'] = $itemData->getName();
             $params['no'] = $number;
             $params['pr'] = $itemData->getPriceInclTax();
             if ($this->getPaymentMethod()->mustTransmitInvoicingItemTypes()) {
                 $params['it'] = Payone_Api_Enum_InvoicingItemType::GOODS;
             }
             // We have to load the tax percentage from the order item
             $params['va'] = number_format($orderItem->getTaxPercent(), 0, '.', '');
             $item = new Payone_Api_Request_Parameter_Invoicing_Item();
             $item->init($params);
             $invoicing->addItem($item);
         }
         // Refund shipping
         if ($creditmemo->getShippingInclTax() > 0) {
             $invoicing->addItem($this->mapRefundShippingAsItemByCreditmemo($creditmemo));
         }
         // Adjustment Refund (positive adjustment)
         if ($creditmemo->getAdjustmentPositive() > 0) {
             $invoicing->addItem($this->mapAdjustmentPositiveAsItemByCreditmemo($creditmemo));
         }
         // Adjustment Fee (negative adjustment)
         if ($creditmemo->getAdjustmentNegative() > 0) {
             $invoicing->addItem($this->mapAdjustmentNegativeAsItemByCreditmemo($creditmemo));
         }
         // Add Discount as a position
         $discountAmount = $creditmemo->getDiscountAmount();
         if ($discountAmount > 0) {
             $invoicing->addItem($this->mapDiscountAsItem(-1 * $discountAmount));
         }
     }
     return $invoicing;
 }