| /* |
| * 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.entity.* |
| import org.apache.ofbiz.base.util.* |
| import org.apache.ofbiz.order.shoppingcart.* |
| import org.apache.ofbiz.party.contact.* |
| import org.apache.ofbiz.product.catalog.* |
| import org.apache.ofbiz.base.util.UtilValidate |
| import org.apache.ofbiz.entity.condition.EntityCondition |
| import org.apache.ofbiz.entity.util.EntityUtil |
| |
| cart = session.getAttribute("shoppingCart") |
| |
| if (cart) { |
| createNewShipGroup = request.getParameter("createNewShipGroup") |
| if ("Y".equals(createNewShipGroup)) { |
| cart.addShipInfo() |
| } |
| |
| orderPartyId = cart.getPartyId() |
| shipToPartyId = parameters.shipToPartyId |
| context.cart = cart |
| if(shipToPartyId) { |
| context.shipToPartyId = shipToPartyId |
| } else { |
| context.shipToPartyId = cart.getShipToCustomerPartyId() |
| } |
| |
| // nuke the event messages |
| request.removeAttribute("_EVENT_MESSAGE_") |
| |
| if ("SALES_ORDER".equals(cart.getOrderType())) { |
| if (!"_NA_".equals(orderPartyId)) { |
| orderParty = from("Party").where("partyId", orderPartyId).queryOne() |
| if (orderParty) { |
| shippingContactMechList = ContactHelper.getContactMech(orderParty, "SHIPPING_LOCATION", "POSTAL_ADDRESS", false) |
| orderPerson = orderParty.getRelatedOne("Person", false) |
| context.orderParty = orderParty |
| context.orderPerson = orderPerson |
| context.shippingContactMechList = shippingContactMechList |
| } |
| } |
| // Ship to another party |
| if (!context.shipToPartyId.equals(orderPartyId)) { |
| shipToParty = from("Party").where("partyId", context.shipToPartyId).queryOne() |
| if (shipToParty) { |
| shipToPartyShippingContactMechList = ContactHelper.getContactMech(shipToParty, "SHIPPING_LOCATION", "POSTAL_ADDRESS", false) |
| context.shipToPartyShippingContactMechList = shipToPartyShippingContactMechList |
| } |
| } |
| // suppliers for the drop-ship select box |
| suppliers = from("PartyRole").where("roleTypeId", "SUPPLIER").queryList() |
| context.suppliers = suppliers |
| |
| // facilities used to reserve the items per ship group |
| productStoreFacilities = from("ProductStoreFacility").where("productStoreId", cart.getProductStoreId()).queryList() |
| context.productStoreFacilities = productStoreFacilities |
| } else { |
| // Purchase order |
| if (!"_NA_".equals(orderPartyId)) { |
| orderParty = from("Party").where("partyId", orderPartyId).queryOne() |
| if (orderParty) { |
| orderPerson = orderParty.getRelatedOne("Person", false) |
| context.orderParty = orderParty |
| context.orderPerson = orderPerson |
| } |
| } |
| |
| companyId = cart.getBillToCustomerPartyId() |
| if (companyId) { |
| facilityMaps = [] |
| facilities = from("Facility").where("ownerPartyId", companyId).cache(true).queryList() |
| |
| // if facilites is null then check the PartyRelationship where there is a relationship set for Parent & Child organization. Then also fetch the value of companyId from there. |
| if (UtilValidate.isEmpty(facilities)) { |
| partyRelationship = from("PartyRelationship").where("roleTypeIdFrom": "PARENT_ORGANIZATION", "partyIdTo": companyId).queryFirst() |
| if (UtilValidate.isNotEmpty(partyRelationship)) { |
| companyId = partyRelationship.partyIdFrom |
| facilities = from("Facility").where("ownerPartyId", companyId).cache(true).queryList() |
| } |
| } |
| facilities.each { facility -> |
| facilityMap = [:] |
| facilityContactMechValueMaps = ContactMechWorker.getFacilityContactMechValueMaps(delegator, facility.facilityId, false, null) |
| facilityMap.facilityContactMechList = facilityContactMechValueMaps |
| facilityMap.facility = facility |
| facilityMaps.add(facilityMap) |
| } |
| context.facilityMaps = facilityMaps |
| } |
| // Ship to another party |
| if (!context.shipToPartyId.equals(orderPartyId)) { |
| shipToParty = from("Party").where("partyId", context.shipToPartyId).queryOne() |
| if (shipToParty) |
| { |
| shipToPartyShippingContactMechList = ContactHelper.getContactMech(shipToParty, "SHIPPING_LOCATION", "POSTAL_ADDRESS", false) |
| context.shipToPartyShippingContactMechList = shipToPartyShippingContactMechList |
| } |
| } |
| } |
| } |