blob: cdf3183ef8389c3640c1d8afa55782a456afab06 [file] [log] [blame]
/*
* 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.ofbiz.order.order.OrderReadHelper;
import org.ofbiz.entity.condition.EntityCondition;
import org.ofbiz.entity.util.EntityUtil;
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 = delegator.findByAnd("OrderContactMech", [orderId : orderId, contactMechPurposeTypeId : "BILLING_LOCATION"], null, false);
if (billingOrderContactMechs.size() > 0) {
billingContactMechId = EntityUtil.getFirst(billingOrderContactMechs).contactMechId;
billingAddress = delegator.findOne("PostalAddress", [contactMechId : billingContactMechId], false);
}
shippingContactMechId = EntityUtil.getFirst(delegator.findByAnd("OrderContactMech", [orderId : orderId, contactMechPurposeTypeId : "SHIPPING_LOCATION"], null, false)).contactMechId;
shippingAddress = delegator.findOne("PostalAddress", [contactMechId : shippingContactMechId], false);
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;
}
}
}
}
}