Author: sichen
Date: Thu Oct 11 12:40:59 2007
New Revision: 583931
URL:
http://svn.apache.org/viewvc?rev=583931&view=revLog:
Before creating purchase invoices from purchase shipments, make sure that the items received were for an internal organization
Modified:
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java
Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java?rev=583931&r1=583930&r2=583931&view=diff==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java Thu Oct 11 12:40:59 2007
@@ -1111,6 +1111,18 @@
try {
if (purchaseShipmentFound) {
items = delegator.findByCondition("ShipmentReceipt", shipmentIdsCond, null, UtilMisc.toList("shipmentId"));
+ // filter out items which have been received but are not actually owned by an internal organization, so they should not be on a purchase invoice
+ if (items != null) {
+ Iterator itemsIter = items.iterator();
+ while (itemsIter.hasNext()) {
+ GenericValue item = (GenericValue) itemsIter.next();
+ GenericValue inventoryItem = item.getRelatedOne("InventoryItem");
+ GenericValue ownerPartyRole = delegator.findByPrimaryKeyCache("PartyRole", UtilMisc.toMap("partyId", inventoryItem.getString("ownerPartyId"), "roleTypeId", "INTERNAL_ORGANIZATIO"));
+ if (UtilValidate.isEmpty(ownerPartyRole)) {
+ items.remove(item);
+ }
+ }
+ }
} else if (dropShipmentFound) {
List shipments = delegator.findByCondition("Shipment", shipmentIdsCond, null, null);