should not you also check for the PartyRelationshipType as well as the to and from roles?
[email protected] sent the following on 9/16/2010 11:22 PM:
Author: ashish Date: Fri Sep 17 06:22:20 2010 New Revision: 997990 URL: http://svn.apache.org/viewvc?rev=997990&view=rev Log: Bug fix. Purchase Order creation was not working from Quote if Parent Organization is being associated with the facility and the value passed from Quote is for Child Organisation. For this I had put a check on PartyRelationship, so that it will also check the relationship between parent& child organisation. If it exists then it will fetch companyId from there. Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/ShipSettings.groovy Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/ShipSettings.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/ShipSettings.groovy?rev=997990&r1=997989&r2=997990&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/ShipSettings.groovy (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/ShipSettings.groovy Fri Sep 17 06:22:20 2010 @@ -22,6 +22,9 @@ import org.ofbiz.base.util.*; import org.ofbiz.order.shoppingcart.*; import org.ofbiz.party.contact.*; import org.ofbiz.product.catalog.*; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.entity.condition.EntityCondition; +import org.ofbiz.entity.util.EntityUtil; import javolution.util.FastMap; import javolution.util.FastList; @@ -83,6 +86,15 @@ if ("SALES_ORDER".equals(cart.getOrderTy if (companyId) { facilityMaps = FastList.newInstance(); facilities = delegator.findByAndCache("Facility", [ownerPartyId : companyId]); + + // 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 = EntityUtil.getFirst(delegator.findList("PartyRelationship", EntityCondition.makeCondition(["roleTypeIdFrom": "PARENT_ORGANIZATION", "partyIdTo": companyId]), null, null, null, false)); + if (UtilValidate.isNotEmpty(partyRelationship)) { + companyId = partyRelationship.partyIdFrom; + facilities = delegator.findByAndCache("Facility", [ownerPartyId : companyId]); + } + } facilities.each { facility -> facilityMap = FastMap.newInstance(); facilityContactMechValueMaps = ContactMechWorker.getFacilityContactMechValueMaps(delegator, facility.facilityId, false, null);
