| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| import java.lang.* |
| import java.math.BigDecimal |
| import org.apache.ofbiz.base.util.* |
| import org.apache.ofbiz.entity.* |
| import org.apache.ofbiz.accounting.payment.* |
| import org.apache.ofbiz.order.order.* |
| import org.apache.ofbiz.party.contact.* |
| import org.apache.ofbiz.product.catalog.* |
| import org.apache.ofbiz.order.shoppingcart.* |
| import org.apache.ofbiz.product.store.* |
| import org.apache.ofbiz.party.party.PartyWorker |
| import org.apache.ofbiz.webapp.website.WebSiteWorker |
| |
| cart = ShoppingCartEvents.getCartObject(request) |
| context.cart = cart |
| context.currencyUomId = cart.getCurrency() |
| context.productStore = ProductStoreWorker.getProductStore(request) |
| |
| // nuke the event messages |
| request.removeAttribute("_EVENT_MESSAGE_") |
| |
| orderItems = cart.makeOrderItems(dispatcher) |
| context.orderItems = orderItems |
| |
| orderAdjustments = cart.makeAllAdjustments() |
| |
| orderItemShipGroupInfo = cart.makeAllShipGroupInfos() |
| if (orderItemShipGroupInfo) { |
| orderItemShipGroupInfo.each { osiInfo -> |
| if ("OrderAdjustment".equals(osiInfo.getEntityName())) { |
| // shipping / tax adjustment(s) |
| orderAdjustments.add(osiInfo) |
| } |
| } |
| } |
| context.orderAdjustments = orderAdjustments |
| |
| workEfforts = cart.makeWorkEfforts() |
| context.workEfforts = workEfforts |
| |
| orderHeaderAdjustments = OrderReadHelper.getOrderHeaderAdjustments(orderAdjustments, null) |
| context.orderHeaderAdjustments = orderHeaderAdjustments |
| context.headerAdjustmentsToShow = OrderReadHelper.filterOrderAdjustments(orderHeaderAdjustments, true, false, false, false, false) |
| |
| orderSubTotal = OrderReadHelper.getOrderItemsSubTotal(orderItems, orderAdjustments) |
| context.orderSubTotal = orderSubTotal |
| context.placingCustomerPerson = userLogin?.getRelatedOne("Person", false) |
| context.shippingAddress = cart.getShippingAddress() |
| |
| paymentMethods = cart.getPaymentMethods() |
| paymentMethod = null |
| if (paymentMethods) { |
| paymentMethod = paymentMethods.get(0) |
| context.paymentMethod = paymentMethod |
| } |
| |
| if ("CREDIT_CARD".equals(paymentMethod?.paymentMethodTypeId)) { |
| creditCard = paymentMethod.getRelatedOne("CreditCard", true) |
| context.creditCard = creditCard |
| context.formattedCardNumber = ContactHelper.formatCreditCard(creditCard) |
| } else if ("EFT_ACCOUNT".equals(paymentMethod?.paymentMethodTypeId)) { |
| eftAccount = paymentMethod.getRelatedOne("EftAccount", true) |
| context.eftAccount = eftAccount |
| } |
| |
| paymentMethodTypeIds = cart.getPaymentMethodTypeIds() |
| paymentMethodType = null |
| paymentMethodTypeId = null |
| if (paymentMethodTypeIds) { |
| paymentMethodTypeId = paymentMethodTypeIds.get(0) |
| paymentMethodType = from("PaymentMethodType").where("paymentMethodTypeId", paymentMethodTypeId).queryOne() |
| context.paymentMethodType = paymentMethodType |
| } |
| |
| webSiteId = WebSiteWorker.getWebSiteId(request) |
| productStoreId = ProductStoreWorker.getProductStoreId(request) |
| productStore = ProductStoreWorker.getProductStore(productStoreId, delegator) |
| if (productStore) { |
| payToPartyId = productStore.payToPartyId |
| paymentAddress = PaymentWorker.getPaymentAddress(delegator, payToPartyId) |
| if (paymentAddress) context.paymentAddress = paymentAddress |
| } |
| |
| billingAddress = null |
| if (paymentMethod) { |
| creditCard = paymentMethod.getRelatedOne("CreditCard", false) |
| billingAddress = creditCard?.getRelatedOne("PostalAddress", false) |
| } |
| if (billingAddress) context.billingAddress = billingAddress |
| |
| billingAccount = cart.getBillingAccountId() ? from("BillingAccount").where("billingAccountId", cart.getBillingAccountId()).queryOne() : null |
| if (billingAccount) context.billingAccount = billingAccount |
| |
| context.customerPoNumber = cart.getPoNumber() |
| context.carrierPartyId = cart.getCarrierPartyId() |
| context.shipmentMethodTypeId = cart.getShipmentMethodTypeId() |
| context.shippingInstructions = cart.getShippingInstructions() |
| context.maySplit = cart.getMaySplit() |
| context.giftMessage = cart.getGiftMessage() |
| context.isGift = cart.getIsGift() |
| context.shipBeforeDate = cart.getShipBeforeDate() |
| context.shipAfterDate = cart.getShipAfterDate() |
| |
| shipmentMethodType = from("ShipmentMethodType").where("shipmentMethodTypeId", cart.getShipmentMethodTypeId()).queryOne() |
| if (shipmentMethodType) context.shipMethDescription = shipmentMethodType.description |
| |
| orh = new OrderReadHelper(orderAdjustments, orderItems) |
| context.localOrderReadHelper = orh |
| |
| shippingAmount = OrderReadHelper.getAllOrderItemsAdjustmentsTotal(orderItems, orderAdjustments, false, false, true) |
| shippingAmount = shippingAmount.add(OrderReadHelper.calcOrderAdjustments(orderHeaderAdjustments, orderSubTotal, false, false, true)) |
| context.orderShippingTotal = shippingAmount |
| |
| taxAmount = OrderReadHelper.getOrderTaxByTaxAuthGeoAndParty(orderAdjustments).taxGrandTotal |
| context.orderTaxTotal = taxAmount |
| context.orderGrandTotal = OrderReadHelper.getOrderGrandTotal(orderItems, orderAdjustments) |
| |
| orderName = cart.getOrderName() |
| context.orderName = orderName |
| |
| orderPartyId = cart.getPartyId() |
| if (orderPartyId) { |
| partyMap = PartyWorker.getPartyOtherValues(request, orderPartyId, "orderParty", "orderPerson", "orderPartyGroup") |
| if (partyMap) { |
| partyMap.each { key, value -> |
| context[key] = value |
| } |
| } |
| } |
| |
| orderTerms = cart.getOrderTerms() |
| if (orderTerms) { |
| context.orderTerms = orderTerms |
| } |
| |
| orderType = cart.getOrderType() |
| context.orderType = orderType |