Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
ID | ||||||||
0036969 | ||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||
defect | [Openbravo ERP] 03. Procurement management | major | always | 2017-09-28 12:33 | 2018-01-03 12:38 | |||
Reporter | ngarcia | View Status | public | |||||
Assigned To | markmm82 | |||||||
Priority | urgent | Resolution | fixed | Fixed in Version | 3.0PR18Q1 | |||
Status | closed | Fix in branch | Fixed in SCM revision | 5f2720a854cc | ||||
Projection | none | ETA | none | Target Version | ||||
OS | Any | Database | Any | Java version | ||||
OS Version | Database version | Ant version | ||||||
Product Version | SCM revision | |||||||
Merge Request Status | ||||||||
Review Assigned To | aferraz | |||||||
OBNetwork customer | OBPS | |||||||
Web browser | ||||||||
Modules | Core | |||||||
Support ticket | 48679 | |||||||
Regression level | ||||||||
Regression date | ||||||||
Regression introduced in release | ||||||||
Regression introduced by commit | ||||||||
Triggers an Emergency Pack | No | |||||||
Summary | 0036969: Purchase order lines created from Requisitions are created with 0 price if price list includes taxes and a discount is defined | |||||||
Description | Purchase order lines created from Requisitions are created with 0 price if price list includes taxes and a discount is defined | |||||||
Steps To Reproduce | As group admin role: Create a new record in Discounts and Promotions window: Discount/Promotion Type: Price Adjustment Included Product: Only those defined Discount %: 50 Add Cerveza Ale 0,5L product in Products tab Change Tarifa Bebidas Alegres to Price includes tax = Y Create a new Requisition Business Partner. Bebidas Alegres, S.L. Add the previously created product and complete it Go to Manage Requisitions window and Create Purchase Order Go to Purchase Order and check the Gross Unit Price, Line Net Amount and Line Gross Amount are 0 | |||||||
Tags | No tags attached. | |||||||
Attached Files | ||||||||
![]() |
||||||||
|
![]() |
|
(0099716) hgbot (developer) 2017-10-03 13:43 |
Repository: erp/devel/pi Changeset: 5f2720a854ccbb7a34411ddfb013207705781de0 Author: Mark <markmm82 <at> gmail.com> Date: Mon Oct 02 17:19:19 2017 -0400 URL: http://code.openbravo.com/erp/devel/pi/rev/5f2720a854ccbb7a34411ddfb013207705781de0 [^] Fixes issue 36969: Purchase order created from Requisitions created with 0 price Purchase order lines created from Requisitions are created with 0 price if price list includes taxes and a discount is defined. When M_REQUISITION_CREATEPO process is executed it creates the order and its lines. Then it call the C_ORDER_POST1, to process the created order and it calls the M_PROMOTION_CALCULATE to recalculate prices and quantities if discounts, and in this case it uses the grosspricestd of lines to recalculates the gross_unit_price and line_gross_amount if price list includes taxes: if (v_taxIncluded = 'Y') then update c_orderline set gross_unit_price = grosspricestd, line_gross_amount = round(grosspricestd * qtyordered, v_stdPrecision) where c_orderline_id = Cur_Order.id; The process was failling because order lines were created without a GROSSPRICESTD column defined, and it was taking 0 instead of the right price. Due that, when the values of the lines were recalculated to apply discounts it reset all values to ZERO and order ends with incorrect totals. To avoid that, the GROSSPRICESTD is defined when the lines are created. --- M src-db/database/model/functions/M_REQUISITION_CREATEPO.xml --- |
(0099717) aferraz (viewer) 2017-10-03 13:43 |
Code review + Testing OK |
(0099718) aferraz (viewer) 2017-10-03 13:45 |
Test Plan 1: Create PO from requisition, Price List including taxes and applying a discount As group admin role: Create a new record in Discounts and Promotions window: Discount/Promotion Type: Price Adjustment Included Product: Only those defined Discount %: 50 Add Cerveza Ale 0,5L product in Products tab Change Tarifa Bebidas Alegres to Price includes tax = Y Verify Cerveza Ale 0,5L has a Unit Price = List Price = 1.36 Create a new Requisition Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Add a line to it: Need by date: Next week Product: Cerveza Ale 0,5L Quantity: 10 Units Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Complete the requisition. Go to Manage Requisitions window and Create Purchase Order from created requisition. take note of the document no. of generated purchase order. Go to Purchase Order header and check the following values: Total Gross Amount: 6.80 Total Net Amount: 5.62 Go to Lines and see the created line has the following values: Product: Cerveza Ale 0,5L Ordered Quantity: 10 Net Unit Price: 0.56 Gross Unit Price: 0.68 Line Net Amount: 5.62 Line Gross Amount: 6.80 Tax: Adquisiciones IVA 21% As Price Includes Taxes, Gross Unit Price (GUP) GUP = Price List Unit Price - discount GUP = 1.36 - (1.36 * 0.5) GUP = 0.68 Net Unit Price Computation (NUP) NUP + NUP * TAX = GUP NUP + NUP * 0.21 = 0.68 NUP (1 + 0.21) = 0.68 NUP = 0.68 / 1.21 NUP = 0.56198 NUP = 0.56 (Rounded) Line Net Amount = Net Unit Price * Qty = 0.56198 * 10 = 5.6198 = 5.62 rounded Line Gross Amount = Gross Unit Price * Qty = 0.68 * 10 = 6.80 Test Plan 2: Create PO from requisition, Price List NOT including taxes and applying a discount As group admin role: Create a new record in Discounts and Promotions window: Discount/Promotion Type: Price Adjustment Included Product: Only those defined Discount %: 50 Add Cerveza Ale 0,5L product in Products tab Change Tarifa Bebidas Alegres to Price includes tax = N Verify Cerveza Ale 0,5L has a Unit Price = List Price = 1.36 Create a new Requisition Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Add a line to it: Need by date: Next week Product: Cerveza Ale 0,5L Quantity: 10 Units Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Complete the requisition. Go to Manage Requisitions window and Create Purchase Order from created requisition. take note of the document no. of generated purchase order. Go to Purchase Order header and check the following values: Total Gross Amount: 8.23 Total Net Amount: 6.80 Go to Lines and see the created line has the following values: Product: Cerveza Ale 0,5L Ordered Quantity: 10 Net Unit Price: 0.68 Line Net Amount: 6.80 Net List Price: 1.36 Tax: Adquisiciones IVA 21% As Price NOT Includes Taxes, Net Unit Price Computation (NUP) NUP = Price List Unit Price - discount NUP = 1.36 - (1.36 * 0.5) NUP = 0.68 Line Net Amount = Net Unit Price * Qty = 0.68 * 10 = 6.80 Header Total Gross Amount = Line Net Amount + Tax = 6.80 + (6.80 * 0.21) = 8.228 = 8.23 rounded. Test Plan 3: Create PO from requisition, Price List NOT including taxes As group admin role: Remove any discount if exists for Cerveza Ale. Change Tarifa Bebidas Alegres to Price includes tax = N Verify Cerveza Ale 0,5L has a Unit Price = List Price = 1.36 Create a new Requisition Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Add a line to it: Need by date: Next week Product: Cerveza Ale 0,5L Quantity: 10 Units Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Complete the requisition. Go to Manage Requisitions window and Create Purchase Order from created requisition. take note of the document no. of generated purchase order. Go to Purchase Order header and check the following values: Total Gross Amount: 16.46 Total Net Amount: 13.60 Go to Lines and see the created line has the following values: Product: Cerveza Ale 0,5L Ordered Quantity: 10 Net Unit Price: 1.36 Line Net Amount: 13.60 Net List Price: 1.36 Tax: Adquisiciones IVA 21% Header Total Gross Amount = Line Net Amount + Tax = 13.60 + (13.60 * 0.21) = 16.456 = 16.46 rounded. Test Plan 4: Create PO from requisition, Price List including taxes As group admin role: Remove any discount if exists for Cerveza Ale. Change Tarifa Bebidas Alegres to Price includes tax = Y Verify Cerveza Ale 0,5L has a Unit Price = List Price = 1.36 Create a new Requisition Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Add a line to it: Need by date: Next week Product: Cerveza Ale 0,5L Quantity: 10 Units Business Partner: Bebidas Alegres, S.L. Price List: Tarifa Bebidas Alegres Complete the requisition. Go to Manage Requisitions window and Create Purchase Order from created requisition. take note of the document no. of generated purchase order. Go to Purchase Order header and check the following values: Total Gross Amount: 13.60 Total Net Amount: 11.24 Go to Lines and see the created line has the following values: Product: Cerveza Ale 0,5L Ordered Quantity: 10 Net Unit Price: 1.12 Gross Unit Price: 1.36 Line Net Amount: 11.24 Line Gross Amount: 13.60 Tax: Adquisiciones IVA 21% As Price Includes Taxes, Gross Unit Price (GUP) GUP = 1.36 Net Unit Price Computation (NUP) NUP + NUP * TAX = GUP NUP + NUP * 0.21 = 1.36 NUP (1 + 0.21) = 1.36 NUP = 1.36 / 1.21 NUP = 1.1239 NUP = 1.12 (Rounded) Line Net Amount = Net Unit Price * Qty = 1.1239 * 10 = 11.239 = 11.24 rounded Line Gross Amount = Gross Unit Price * Qty = 1.36 * 10 = 13.60 For all test cases 1 to 4 you can compare doing manual Purchase orders and you will get the same results. |
(0101308) hudsonbot (viewer) 2018-01-03 12:38 |
A changeset related to this issue has been promoted main and to the Central Repository, after passing a series of tests. Promotion changeset: https://code.openbravo.com/erp/devel/main/rev/c81e0d3cbab5 [^] Maturity status: Test |
![]() |
|||
Date Modified | Username | Field | Change |
2017-09-28 12:33 | ngarcia | New Issue | |
2017-09-28 12:33 | ngarcia | Assigned To | => Triage Finance |
2017-09-28 12:33 | ngarcia | OBNetwork customer | => Yes |
2017-09-28 12:33 | ngarcia | Modules | => Core |
2017-09-28 12:33 | ngarcia | Support ticket | => 48679 |
2017-09-28 12:33 | ngarcia | Resolution time | => 1508364000 |
2017-09-28 12:33 | ngarcia | Triggers an Emergency Pack | => No |
2017-09-28 12:33 | ngarcia | Issue Monitored: networkb | |
2017-09-28 16:39 | aferraz | Assigned To | Triage Finance => markmm82 |
2017-09-28 23:50 | markmm82 | Status | new => scheduled |
2017-10-03 13:43 | hgbot | Checkin | |
2017-10-03 13:43 | hgbot | Note Added: 0099716 | |
2017-10-03 13:43 | hgbot | Status | scheduled => resolved |
2017-10-03 13:43 | hgbot | Resolution | open => fixed |
2017-10-03 13:43 | hgbot | Fixed in SCM revision | => http://code.openbravo.com/erp/devel/pi/rev/5f2720a854ccbb7a34411ddfb013207705781de0 [^] |
2017-10-03 13:43 | aferraz | Review Assigned To | => aferraz |
2017-10-03 13:43 | aferraz | Note Added: 0099717 | |
2017-10-03 13:43 | aferraz | Status | resolved => closed |
2017-10-03 13:43 | aferraz | Fixed in Version | => 3.0PR18Q1 |
2017-10-03 13:45 | aferraz | Note Added: 0099718 | |
2018-01-03 12:38 | hudsonbot | Checkin | |
2018-01-03 12:38 | hudsonbot | Note Added: 0101308 | |
2018-03-08 15:55 | ngarcia | Relationship added | related to 0038085 |
Copyright © 2000 - 2009 MantisBT Group |