svn commit: r583931 - /ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r583931 - /ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java

sichen
Author: sichen
Date: Thu Oct 11 12:40:59 2007
New Revision: 583931

URL: http://svn.apache.org/viewvc?rev=583931&view=rev
Log:
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);