[ https://issues.apache.org/jira/browse/OFBIZ-6347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14537165#comment-14537165 ] Mohammad Kathawala commented on OFBIZ-6347: ------------------------------------------- Jacopo, the issue happens specifically when the amount entered for billing account is 0. It goes into this block, only when the 'billingAccountAmt' which is amount entered for billing account is 0 or less. if (getBillingAccountId() != null && this.billingAccountAmt.compareTo(BigDecimal.ZERO) <= 0) { BigDecimal billingAccountAvailableAmount = CheckOutHelper.availableAccountBalance(getBillingAccountId(), dispatcher); if (this.billingAccountAmt.compareTo(BigDecimal.ZERO) == 0 && billingAccountAvailableAmount.compareTo(BigDecimal.ZERO) > 0) { this.billingAccountAmt = billingAccountAvailableAmount; } if (remainingAmount.compareTo(getBillingAccountAmount()) < 0) { this.billingAccountAmt = remainingAmount; } if (billingAccountAvailableAmount.compareTo(getBillingAccountAmount()) < 0) { this.billingAccountAmt = billingAccountAvailableAmount; } BigDecimal billingAccountAmountSelected = getBillingAccountAmount(); GenericValue opp = delegator.makeValue("OrderPaymentPreference", new HashMap<String, Object>()); opp.set("paymentMethodTypeId", "EXT_BILLACT"); opp.set("presentFlag", "N"); opp.set("overflowFlag", "N"); opp.set("maxAmount", billingAccountAmountSelected); opp.set("statusId", "PAYMENT_NOT_RECEIVED"); allOpPrefs.add(opp); remainingAmount = remainingAmount.subtract(billingAccountAmountSelected); if (remainingAmount.compareTo(BigDecimal.ZERO) < 0) { remainingAmount = BigDecimal.ZERO; } } As far as I get, the code inside this block assigns the available billing account amount or remaining amount whichever is less to billing account amount and creates a payment preference with that amount. Again outside this block, it runs a loop of all the Cart Payment Info and creates order payment preference for each. > Two order payment preferences are added to order, when order of order total 0(zero) is placed with Billing Account > ------------------------------------------------------------------------------------------------------------------ > > Key: OFBIZ-6347 > URL: https://issues.apache.org/jira/browse/OFBIZ-6347 > Project: OFBiz > Issue Type: Bug > Components: order > Affects Versions: Trunk, 14.12.01 > Reporter: Mohammad Kathawala > Priority: Minor > Attachments: OFBIZ-6347.patch > > > Scenario: > Place an order of order total zero(0) with Billing Account as payment option. > Issue: > Order gets placed successfully, but order payment preference of billing account gets created twice. > Steps to generate the issue: > 1) Add promotions of Free Shipping and Free Tax from catalog for order > 2) Go to order entry process and add customer > 3) Add product to order and make its price 0.00 so that the cart total will be 0.00 > 4) Finalize order with Billing Account as Payment option and Create Order. > Reason: > The code written for creating order payment preferences in 'makeAllOrderPaymentInfos' of ShoppingCart.java is creating issue. > There is no need to create the order payment preference after recalculating Billing account amount as it is done later in the CartPaymentInfo loop. -- This message was sent by Atlassian JIRA (v6.3.4#6332) |
Free forum by Nabble | Edit this page |