[ 
https://issues.apache.org/jira/browse/OFBIZ-5649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sharan Foga updated OFBIZ-5649:
-------------------------------
    Sprint: Bug Crush Event - 21/2/2015

> Purchase Invoice Outstanding Amount is zero when payment to Supplier has not 
> been made
> --------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-5649
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-5649
>             Project: OFBiz
>          Issue Type: Bug
>          Components: accounting
>            Reporter: Sharan Foga
>
> I have come across an issue with payments. The outstanding amount is set to 
> zero when the Purchase Invoice hasnt yet been paid so is never displayed as 
> an invoice that is due for payment.
> To replicate it the example I used was to:
> 1. Create a Purchase Order created for 2 GZ-1000 at $7.50 each to DemoSupplier
> 2. Approve the PO
> 3. Quick Receive the PO
> When you receive Purchase Order into inventory a “payment” is created under 
> the “Payment Information” section of the Purchase Order.
> The Payment is created for an amount of $15 with a status of “Not Paid”
> At receipt , the Pro Forma invoice is also created and is displayed below the 
> payment on the view order screen.
> If you click the link to the Pro Forma Invoice and look at the “Terms” 
> section which shows the “Outstanding Amount” you will see that it is now 
> showing zero. (I don’t think this is correct because you haven’t paid the 
> supplier yet! I think the Outstanding Amount on the Pro Forma invoice should 
> still be $15.)
> If you then go to Accounting Manager / Payments to locate Purchase Invoices 
> by Due Date then this invoice isnt displayed even though the Due Date is the 
> current date. I think this is because the Outstanding Amount is zero, OFBiz 
> thinks that the invoice has already been paid (when it hasn't).
> I’ve done some more testing and found the following:
> The only options that create the pro forma invoice are:
> "Quick Receive PO" and select the shipment to receive using the shipment 
> number 
> “Receive” and select the shipment to receive using the shipment number
> In both of the cases above if you don’t select the shipment number and use 
> the “No Specific Shipment” instead then only the payment is created and not 
> the invoice. So the invoice creation appears to be linked to selecting a 
> specific shipment number.
> Also if you use “Receive Inventory” from Facility Manager, this only gives 
> you the option for “No Specific Shipment” so once again the payment is 
> created but not the invoice.
> Steve added a comment with some additional details as follows.
> The issue seems to be related to the shipment creation as the invoice is 
> correctly created if the product is "service" :
> 1. If you enter purchase order for a product type "raw material" -> approve 
> the order -> the payment is created. Receive against inventory (quick or 
> complete) -> shipment created -> receive -> invoice created with outstanding 
> payment 0$ (actual issue)
> 2. If you enter purchase order for a product type "service" (in our case we 
> had to create "painting" service for our products) -> approve the order -> 
> payment AND invoice are created at the same time -> invoice is OK with 
> outstanding value of the order (ex. 15$).
> But if you create an agreement with the vendor e.g including payment in 30 
> days, the problem is solved and the outstanding payment value is the correct 
> value irrespective of the product type (Raw Material, Finished Good, Service 
> etc)
> I've re-done the tests and can confirm what Steve has highlighted is correct. 
> Also if you add a payment term of net days (e.g 5 net days) during purchase 
> order creation the outstanding value is reported correctly (and not zero).
> This seems to narrow down the issue to be to the shipment creation if the 
> product is not a service product and no agreement is linked to the purchase 
> order at creation. 
>  
> ----------------
> Data and Tests to Replicate the Issue
> -----------------
> As requested I’ve included some xml for a ‘test service product’ but it isnt 
> anything special. The product is type ‘service’ has a default price and it 
> has a main supplier (DemoSupplier).
> <entity-engine-xml>
>     <Product billOfMaterialLevel="0" createdByUserLogin="admin" 
> createdDate="2014-08-11 20:17:31.489" createdStamp="2014-08-11 20:17:31.489" 
> createdTxStamp="2014-08-11 20:17:31.401" inShippingBox="N" internalName="Test 
> Service Product for PO" isVariant="N" isVirtual="N" 
> lastModifiedByUserLogin="admin" lastModifiedDate="2014-08-11 20:17:31.489" 
> lastUpdatedStamp="2014-08-11 20:17:31.489" lastUpdatedTxStamp="2014-08-11 
> 20:17:31.401" lotIdFilledIn="Allowed" productId="1111" 
> productTypeId="SERVICE"/>
>     <SupplierProduct availableFromDate="2014-08-11 10:17:59.0" 
> canDropShip="N" createdStamp="2014-08-11 20:18:40.306" 
> createdTxStamp="2014-08-11 20:18:40.282" currencyUomId="USD" 
> lastPrice="30.000" lastUpdatedStamp="2014-08-11 20:18:40.306" 
> lastUpdatedTxStamp="2014-08-11 20:18:40.282" minimumOrderQuantity="0.000000" 
> partyId="DemoSupplier" productId="1111" supplierPrefOrderId="10_MAIN_SUPPL" 
> supplierProductId="SERV-123"/>
>     <ProductPrice createdByUserLogin="admin" createdDate="2014-08-11 
> 20:18:03.777" createdStamp="2014-08-11 20:18:03.777" 
> createdTxStamp="2014-08-11 20:18:03.692" currencyUomId="USD" 
> fromDate="2014-08-11 10:17:43.0" lastModifiedByUserLogin="admin" 
> lastModifiedDate="2014-08-11 20:18:03.777" lastUpdatedStamp="2014-08-11 
> 20:18:03.777" lastUpdatedTxStamp="2014-08-11 20:18:03.692" price="50.000" 
> productId="1111" productPricePurposeId="PURCHASE" 
> productPriceTypeId="DEFAULT_PRICE" productStoreGroupId="_NA_" taxInPrice="Y"/>
> </entity-engine-xml>
> There isnt any special agreement for the tests. I use the existing demo data 
> agreement  (AGR_TEST) for Demo Supplier. 
> See below for the tests if you want to replicate the issue.
> Test 1: Create PO for Service Product with No Purchase Agreement
> The expected Result is that the Outstanding Amount shown for the invoice is 
> correct.
> a)    Upload the XML data for the service product
> b)    Using Order Manager – create a PO to DemoSupplier
> c)    DO NOT select an agreement for the Order
> d)    Add the service product to the order with quantity 5
> e)    Finalise the order and Create it
> f)    Approve the Purchase Order and the Invoice should be automatically 
> created
> g)    Click the Invoice link and look under the “Terms” section and the “Paid 
> Amount” should be zero and the “Outstanding Amount” should be the same as the 
> purchase order value.
> This test is correct and working as expected
> Test 2: Create a PO for a Finished Good with No Purchase Agreement
> The expected result is that the Outstanding Amount shown on the invoice is 
> incorrect (it will be zero instead of the same value as the purchase order 
> value)
> a)    Using Order Manager – create a PO to DemoSupplier
> b)    DO NOT select an agreement for the Order
> c)    Add the product GZ-1000 (Tiny Gizmo) to the order with quantity 5
> d)    Finalise the order and Create it
> e)    Approve the Purchase Order
> f)    Click “Quick Receive Purchase Order”  (As it is a Finished Good we need 
> to receive it to create the invoice)
> g)     Click the Purchase Shipment Number and Receive the Selected Products
> h)    Click back into the Purchase and the Invoice should be created
> i)    Click the Invoice link and look under the “Terms” section and the “Paid 
> Amount”. This value is incorrect - it should be zero but it will have the 
> purchase value. Look at the “Outstanding Amount” – this is incorrect – it 
> will be zero and it should be the purchase order value.
> This test shows the error.
> Test 3: Create a PO for a Finished Good with a Purchase Agreement
> The expected result is that the Outstanding Amount shown on the invoice is 
> correct.
> a)    Do exactly the same test as for Test 2 but at (b) – select  the 
> DemoSupplier agreement “AGR_TEST” 
> Click the Invoice link and look under the “Terms” section and the “Paid 
> Amount” should be zero and the “Outstanding Amount” should be the same as the 
> purchase order value.
> This test is correct and working as expected. The only difference between 
> this and the previous test is that an agreement has been selected which 
> affects the date that the invoice payment is due.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to