Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0010857Openbravo ERP07. Sales managementpublic2009-10-02 18:122009-12-01 06:37
networkb 
rafaroda 
immediatemajoralways
closedfixed 
5
2.35MP14 
2.35MP162.35MP16 
Core
No
0010857: Generate Invoices process with reactivated orders
You have an order with a line with qtyordered=5. Then you create a shipment and then an invoice by running Generate Invoices process. It creates an invoice with line quantity=5. (So now qtyinvoiced in c_orderline is 5).
The you void the shipment, reactivate the order and modify line quantity to 4. Complete the order and create the new shipment (with quantity=4). When running generate invoices it creates an invoice with quantity=4.
Then if you go to c_orderline qtyinvoiced=9 and qtyordered=4.

1. Sales Management || Transactions || Sales Order: create a sales order with at least one line with any qtyordered, and complete it.
2. Sales Management || Transactions || Goods Shipment: create a shipment for the order.
3. Run generate invoices and check that it creates an invoice for the qtyordered.
4. Sales Management || Transactions || Goods Shipment: void the shipment.
5. Sales Management || Transactions || Sales Order: reactivate the order and modify line qtyordered.
6. Sales Management || Transactions || Goods Shipment: create a shipment for the order.
7. Run generate invoices and check that it creates an invoice for the new qtyordered.
8. Sales Management || Transactions || Sales Order || Line: check that qtyinvoices is bigger that qtyordered.
No tags attached.
blocks defect 00108452.35MP16 closed rafaroda Generate Invoices process with reactivated orders 
Issue History
2009-10-05 08:54rafarodaTypedefect => backport
2009-10-05 08:54rafarodafix_in_branch => 2.3x
2009-10-05 08:55rafarodaNote Added: 0020693
2009-10-19 11:39rafarodaAssigned Torafaroda => gorkaion
2009-11-05 10:26hgbotCheckin
2009-11-05 10:26hgbotNote Added: 0021588
2009-11-05 10:26hgbotStatusscheduled => resolved
2009-11-05 10:26hgbotResolutionopen => fixed
2009-11-05 10:26hgbotFixed in SCM revision => http://code.openbravo.com/erp/stable/2.3x/rev/268041aa0eddc73a32d51b9c3e397e70df8fdd76 [^]
2009-11-09 10:43sureshbabuNote Added: 0021637
2009-11-09 10:47sureshbabuStatusresolved => closed
2009-11-09 10:47sureshbabuNote Added: 0021639
2009-11-09 10:47sureshbabuFixed in Version => 2.35MP16
2009-11-16 17:12networkbNote Added: 0021876
2009-11-17 16:50networkbStatusclosed => new
2009-11-17 16:50networkbResolutionfixed => open
2009-11-17 16:50networkbFixed in Version2.35MP16 =>
2009-11-20 10:09rafarodaStatusnew => scheduled
2009-11-20 10:09rafarodafix_in_branch2.3x => pi
2009-11-20 10:09rafarodafix_in_branchpi => 2.3x
2009-11-25 10:32rafarodaAssigned Togorkaion => rafaroda
2009-11-25 10:32rafarodaPriorityurgent => immediate
2009-11-25 10:32rafarodaFixed in SCM revisionhttp://code.openbravo.com/erp/stable/2.3x/rev/268041aa0eddc73a32d51b9c3e397e70df8fdd76 [^] =>
2009-11-26 15:17hgbotCheckin
2009-11-26 15:17hgbotNote Added: 0022183
2009-11-26 15:17hgbotStatusscheduled => resolved
2009-11-26 15:17hgbotResolutionopen => fixed
2009-11-26 15:17hgbotFixed in SCM revision => http://code.openbravo.com/erp/stable/2.3x/rev/bf7206fa4c42b4c37e3e5f793bd1698d97f4bf88 [^]
2009-11-26 15:18rafarodaNote Added: 0022184
2009-12-01 06:37arunkumarNote Added: 0022270
2009-12-01 06:37arunkumarStatusresolved => closed
2009-12-01 06:37arunkumarFixed in Version => 2.35MP16

Notes
(0020693)
rafaroda   
2009-10-05 08:55   
With this flow, starting with quantity 10, after reactivating and setting the order line to 12, it finishes as:
* Order Quantity = 12
* Delivered Quantity = 12
* Reserved Quantity = 0
* Invoiced Quantity = 22 (previous to reactivating is was 10)

Following the flow with Invoice Terms = Immediate, skipping the shipment steps and setting the order line to 12, it finishes as:
* Order Quantity = 12
* Delivered Quantity = 0
* Reserved Quantity = 12
* Invoiced Quantity = 12 (which is correct)
(0021588)
hgbot   
2009-11-05 10:26   
Repository: erp/stable/2.3x
Changeset: 268041aa0eddc73a32d51b9c3e397e70df8fdd76
Author: Gorka Ion Damián <gorkaion.damian <at> openbravo.com>
Date: Thu Nov 05 10:25:07 2009 +0100
URL: http://code.openbravo.com/erp/stable/2.3x/rev/268041aa0eddc73a32d51b9c3e397e70df8fdd76 [^]

Fixed issue 10857.Added new restrictions to sales documents.
-Not possible to modify a draft sales order line with delivered or invoiced
qty.
-Not possible to void a shipment with invoiced qty for a sales order with
invoice rule after delivery.
-Not possible to complete an sales invoice if new invoiced qty will be higher
than ordered qty.
-Not possible to have a sales order line with invoiced qty higher than ordered
qty.

---
M database/model/functions/C_INVOICE_POST.xml
M database/model/functions/M_INOUT_POST.xml
M database/model/triggers/C_ORDLINE_CHK_RESTRICTIONS_TRG.xml
M database/sourcedata/AD_MESSAGE.xml
M database/sourcedata/AD_MESSAGE_TRL.xml
---
(0021637)
sureshbabu   
2009-11-09 10:43   
Message "It is not possible to void a shipment of an order that has an invoice rule after delivery having invoiced lines." rightly appears when the user tries to void a goods shipment document if it is already invoiced
(0021639)
sureshbabu   
2009-11-09 10:47   
Tested working fine (system not allowing the user to void good shipment document if it is already invoiced.)

Message "It is not possible to void a shipment of an order that has an invoice rule after delivery having invoiced lines." rightly appears
(0021876)
networkb   
2009-11-16 17:12   
Hi,

We have find out that the solution is not working properly with negative quantities.
For example, in this scenario:
 * An order with qtyordered= -2
 * You have the shipment with qty= -2
 * You have the invoice with qtyinvoiced= -2
If you try to Reactivate the invoice is not possible because trigger C_ORDLINE_CHK_RESTRICTIONS_TRG.xml finds that qtyinvoiced > qtyordered (0 > -2)

Also it is necessary to show order documentno in the error, because when GenerateInvoices process fails the error raised says invoice documentno but as the invoice is not finally created you don't know which order gives you the error.

Thanks
(0022183)
hgbot   
2009-11-26 15:17   
Repository: erp/stable/2.3x
Changeset: bf7206fa4c42b4c37e3e5f793bd1698d97f4bf88
Author: Rafa Roda Palacios <rafael.roda <at> openbravo.com>
Date: Wed Nov 25 11:06:05 2009 +0100
URL: http://code.openbravo.com/erp/stable/2.3x/rev/bf7206fa4c42b4c37e3e5f793bd1698d97f4bf88 [^]

Fixes issue 10857 Now caring negative orders cycle.

---
M database/model/functions/C_INVOICE_POST.xml
M database/model/functions/M_INOUT_POST.xml
M database/model/triggers/C_ORDLINE_CHK_RESTRICTIONS_TRG.xml
---
(0022184)
rafaroda   
2009-11-26 15:18   
SALES ORDER WITH POSITIVE QUANTITIES

1) Create a Sales Order Sales Management || Transactions || Sales Order
* Transaction Document = Warehouse Order
* Invoice Terms = After Delivery
2) Navigate to Lines tab and create a new record:
* Product = Hammer
* Ordered Quantity = 2
3) Navigate back to Header and Complete the Sales Order: a new Shipment is automatically created.
4) Navigate to Generate Invoices process Sales Management || Transactions || Generate Invoices
5) Select the former Sales Order and click on OK: a new Sales Invoice is created automatically.
6) Navigate to the Sales Order line and check that:
* Order Quantity = 2
* Delivered Quantity = 2
* Invoiced Quantity = 2
7) Navigate to the Goods Shipment created, click on Close button and select Void: Shipment No. : xxxx line : 10. It is not possible to void a shipment of an order that has an invoice rule after delivery having invoiced lines. CORRECT
8) Navigate to the Sales Invoice created, click on Reactivate button and select Reactivate: Sales Invoice is reactivated. CORRECT
9) Navigate back to the Goods Shipment created, click on Close button and select Void: Goods Shipment is reversed. CORRECT
10) Navigate back to the Sales Order, click on Close button and select Reactivate: Sales Order is reactivated. CORRECT
11) Navigate to Lines and change Ordered Quantity to 3 (Delivered Quantity = 0 and Invoiced Quantity = 0).
12) Navigate back to Header and Complete the Sales Order: a new Shipment is automatically created.
13) Navigate to the previous Sales Invoice and re-Complete it.
14) Navigate to Generate Invoices process Sales Management || Transactions || Generate Invoices
15) Select the former Sales Order and click on OK: It is not possible to complete the invoice xxxx line 10. Order No. xxxx: Invoiced Quantity cannot be higher than Ordered Quantity. CORRECT
16) Navigate to the previous Sales Invoice and reactivate it.
17) Navigate to Generate Invoices process Sales Management || Transactions || Generate Invoices
18) Select the former Sales Order and click on OK: a new Sales Invoice is created automatically.
20) Navigate to the Sales Order line and check that:
* Order Quantity = 3
* Delivered Quantity = 3
* Invoiced Quantity = 3

SALES ORDER WITH NEGATIVE QUANTITIES

1) Create a Sales Order Sales Management || Transactions || Sales Order
* Transaction Document = Warehouse Order
* Invoice Terms = After Delivery
2) Navigate to Lines tab and create a new record:
* Product = Hammer
* Ordered Quantity = -2
3) Navigate back to Header and Complete the Sales Order: a new Shipment is automatically created.
4) Navigate to Generate Invoices process Sales Management || Transactions || Generate Invoices
5) Select the former Sales Order and click on OK: a new Sales Invoice is created automatically.
6) Navigate to the Sales Order line and check that:
* Order Quantity = -2
* Delivered Quantity = -2
* Invoiced Quantity = -2
7) Navigate to the Goods Shipment created, click on Close button and select Void: Shipment No. : xxxx line : 10. It is not possible to void a shipment of an order that has an invoice rule after delivery having invoiced lines. CORRECT
8) Navigate to the Sales Invoice created, click on Reactivate button and select Reactivate: Sales Invoice is reactivated. CORRECT
9) Navigate back to the Goods Shipment created, click on Close button and select Void: Goods Shipment is reversed. CORRECT
10) Navigate back to the Sales Order, click on Close button and select Reactivate: Sales Order is reactivated. CORRECT
11) Navigate to Lines and change Ordered Quantity to -3 (Delivered Quantity = 0 and Invoiced Quantity = 0).
12) Navigate back to Header and Complete the Sales Order: a new Shipment is automatically created.
13) Navigate to the previous Sales Invoice and re-Complete it.
14) Navigate to Generate Invoices process Sales Management || Transactions || Generate Invoices
15) Select the former Sales Order and click on OK: It is not possible to complete the invoice xxxx line 10. Order No. xxxx: Invoiced Quantity cannot be higher than Ordered Quantity. CORRECT
16) Navigate to the previous Sales Invoice and reactivate it.
17) Navigate to Generate Invoices process Sales Management || Transactions || Generate Invoices
18) Select the former Sales Order and click on OK: a new Sales Invoice is created automatically.
20) Navigate to the Sales Order line and check that:
* Order Quantity = -3
* Delivered Quantity = -3
* Invoiced Quantity = -3
(0022270)
arunkumar   
2009-12-01 06:37   
I tested the notes given by Rafa for both sales order with positive and negative quantities. The fix was working fine.