ofbiz-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sharan Foga (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OFBIZ-5649) Purchase Invoice Outstanding Amount is zero when payment to Supplier has not been made
Date Mon, 11 Aug 2014 09:46:12 GMT

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

Sharan Foga updated OFBIZ-5649:
-------------------------------

    Description: 
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.




  was:
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” 

This test is correct and working as expected



> 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.2#6252)

Mime
View raw message