| /* |
| * 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 org.apache.ofbiz.order.order.OrderReadHelper |
| import org.apache.ofbiz.entity.condition.EntityCondition |
| import org.apache.ofbiz.entity.util.EntityUtil |
| import org.apache.ofbiz.base.util.UtilHttp |
| |
| toPrintOrders = [] |
| maxNumberOfOrders = parameters.maxNumberOfOrdersToPrint |
| int maxNumberOfOrders = maxNumberOfOrders.toInteger() |
| int printListCounter = 0 |
| printGroupName = parameters.printGroupName |
| if (printGroupName != null) { |
| pickMoveInfoList.each { pickMoveInfo -> |
| groupName = pickMoveInfo.groupName |
| if (groupName == printGroupName) { |
| toPrintOrders.add(pickMoveInfo.orderReadyToPickInfoList) |
| } |
| } |
| } |
| else { |
| pickMoveInfoList.each { pickMoveInfo -> |
| toPrintOrders.add(pickMoveInfo.orderReadyToPickInfoList) |
| } |
| } |
| if (toPrintOrders) { |
| orderList = [] |
| orderInfoList = [] |
| itemInfoList = [] |
| orderHeaderList = [] |
| orderChargeList =[] |
| toPrintOrders.each { toPrintOrder -> |
| if(toPrintOrder) { |
| orderHeaders = toPrintOrder.orderHeader |
| orderItemShipGroups = toPrintOrder.orderItemShipGroup |
| orderItemShipGrpInvResList = toPrintOrder.orderItemShipGrpInvResList |
| orderItemShipGrpInvResInfoList = toPrintOrder.orderItemShipGrpInvResInfoList |
| orderHeaders.each { orderHeader -> |
| printListCounter = ++printListCounter |
| if (printListCounter <= maxNumberOfOrders) { |
| orderMap = [:] |
| orderId = orderHeader.orderId |
| orderMap.orderId = orderId |
| orderMap.orderDate = orderHeader.orderDate |
| billingOrderContactMechs = [] |
| billingOrderContactMechs = from("OrderContactMech").where("orderId", orderId, "contactMechPurposeTypeId", "BILLING_LOCATION").queryList() |
| if (billingOrderContactMechs.size() > 0) { |
| billingContactMechId = EntityUtil.getFirst(billingOrderContactMechs).contactMechId |
| billingAddress = from("PostalAddress").where("contactMechId", billingContactMechId).queryOne() |
| } |
| shippingContactMechId = from("OrderContactMech").where("orderId", orderId, "contactMechPurposeTypeId", "SHIPPING_LOCATION").queryFirst().contactMechId |
| shippingAddress = from("PostalAddress").where("contactMechId", shippingContactMechId).queryOne() |
| orderItemShipGroups.each { orderItemShipGroup -> |
| if (orderItemShipGroup.orderId == orderId) { |
| orderMap.shipmentMethodType = EntityUtil.getFirst(orderItemShipGroup.getRelated("ShipmentMethodType", null, null, false)).description |
| orderMap.carrierPartyId = orderItemShipGroup.carrierPartyId |
| orderMap.shipGroupSeqId = orderItemShipGroup.shipGroupSeqId |
| orderMap.carrierPartyId = orderItemShipGroup.carrierPartyId |
| orderMap.isGift = orderItemShipGroup.isGift |
| orderMap.giftMessage = orderItemShipGroup.giftMessage |
| } |
| orderMap.shippingAddress = shippingAddress |
| if (billingOrderContactMechs.size() > 0) { |
| orderMap.billingAddress = billingAddress |
| } |
| orderInfoMap = [:] |
| orderInfoMap.(orderHeader.orderId) = orderMap |
| } |
| addInMap = "true" |
| orderItemMap = [:] |
| orderItemShipGrpInvResInfoList.each { orderItemShipGrpInvResInfos -> |
| orderItemShipGrpInvResInfos.each { orderItemShipGrpInvResInfo -> |
| if (orderItemShipGrpInvResInfo.orderItemShipGrpInvRes.orderId == orderId && addInMap == "true") { |
| orderItemMap.(orderHeader.orderId) = orderItemShipGrpInvResInfos |
| addInMap = "false" |
| } |
| } |
| } |
| orderChargeMap = [:] |
| orderReadHelper = new OrderReadHelper(orderHeader) |
| orderItems = orderReadHelper.getOrderItems() |
| orderAdjustments = orderReadHelper.getAdjustments() |
| orderHeaderAdjustments = orderReadHelper.getOrderHeaderAdjustments() |
| context.orderHeaderAdjustments = orderHeaderAdjustments |
| orderSubTotal = orderReadHelper.getOrderItemsSubTotal() |
| context.orderSubTotal = orderSubTotal |
| otherAdjAmount = orderReadHelper.calcOrderAdjustments(orderHeaderAdjustments, orderSubTotal, true, false, false) |
| shippingAmount = orderReadHelper.getAllOrderItemsAdjustmentsTotal(orderItems, orderAdjustments, false, false, true) |
| shippingAmount = shippingAmount.add(orderReadHelper.calcOrderAdjustments(orderHeaderAdjustments, orderSubTotal, false, false, true)) |
| taxAmount = orderReadHelper.getAllOrderItemsAdjustmentsTotal(orderItems, orderAdjustments, false, true, false) |
| taxAmount = taxAmount.add(orderReadHelper.calcOrderAdjustments(orderHeaderAdjustments, orderSubTotal, false, true, false)) |
| grandTotal = orderReadHelper.getOrderGrandTotal(orderItems, orderAdjustments) |
| orderChargeMap.orderSubTotal = orderSubTotal |
| orderChargeMap.taxAmount = taxAmount |
| orderChargeMap.shippingAmount = shippingAmount |
| orderChargeMap.otherAdjAmount = otherAdjAmount |
| orderChargeMap.grandTotal = grandTotal |
| orderChargeMap.totalItem = orderItems.size() |
| orderCharges = [:] |
| orderCharges.(orderHeader.orderId) = orderChargeMap |
| orderChargeList.add(orderCharges) |
| itemInfoList.add(orderItemMap) |
| orderInfoList.add(orderInfoMap) |
| orderList.add(orderHeader) |
| context.orderHeaderList = orderList |
| context.orderInfoList = orderInfoList |
| context.itemInfoList = itemInfoList |
| context.orderChargeList = orderChargeList |
| } |
| } |
| } |
| } |
| UtilHttp.setContentDisposition(response, "orderPickSheet.pdf") |
| } |