Openbravo Issue Tracking System - Retail Modules
View Issue Details
0042542Retail ModulesWeb POSpublic2019-12-12 19:182019-12-16 12:53
marvintm 
ranjith_qualiantech_com 
normalmajorhave not tried
closedfixed 
5
 
RR20Q1 
jorge-garcia
Production - Confirmed Stable
2019-01-16
RR19Q2
https://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/4cd21ae4e9d2 [^]
No
0042542: Precision problem when calculating prices for services
There is currently a problem in the precision of calculation of the prices for services using Service Price Rules functionality. The calculation is not properly applying the currency precision, which leads to wrong calculation result.
- As system administrator, define the POS precision of currency EURO to 0.
- In the back office, configure the service "Configuration" so that it implements a Service Price Rule of percentage 10 (and is marked as "Is Price Rule based").
- Define the price of GPS nano in the pricelist to 100, and the price of the Configuration service to 3.99.
- In the WebPOS, add a GPS Nano product.
- You will be shown the mandatory proposed services, and you will see that the "Configuration" service has price 4. This is wrong, it should have price 14 (3.99+10, then rounded to 14).
The problem is the implementation of the following function:

function calculatePercentageAmount(
    product,
    amount,
    percentage,
    partialPrice,
    callback
  ) {
    var newprice,
      oldprice = partialPrice ? 0 : product.get('listPrice');
    newprice = OB.DEC.add(
      oldprice,
      OB.DEC.mul(amount, OB.DEC.div(percentage, 100))
    );
    callback(newprice);
  }

The division of the percentage by 100 is rounded before the result is then multiplied by the amount, due to the usage of the OB.DEC API. This is not correct, only the final result should be rounded.
No tags attached.
depends on backport 0042543RR19Q4.1 closed ranjith_qualiantech_com Precision problem when calculating prices for services 
depends on backport 0042544RR19Q3.2 closed ranjith_qualiantech_com Precision problem when calculating prices for services 
Issue History
2019-12-12 19:18marvintmNew Issue
2019-12-12 19:18marvintmAssigned To => ranjith_qualiantech_com
2019-12-12 19:18marvintmTriggers an Emergency Pack => No
2019-12-12 19:21marvintmRegression level => Production - Confirmed Stable
2019-12-12 19:21marvintmRegression date => 2019-01-16
2019-12-12 19:21marvintmRegression introduced in release => RR19Q2
2019-12-12 19:21marvintmRegression introduced by commit => https://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/4cd21ae4e9d2 [^]
2019-12-12 19:21marvintmStatusnew => scheduled
2019-12-12 19:26marvintmSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=19894#r19894
2019-12-12 19:26marvintmProposed Solution updated
2019-12-16 07:41hgbotCheckin
2019-12-16 07:41hgbotNote Added: 0116322
2019-12-16 07:41hgbotStatusscheduled => resolved
2019-12-16 07:41hgbotResolutionopen => fixed
2019-12-16 07:41hgbotFixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/e61f23d9708ee8486290242e9c509a079ffe1456 [^]
2019-12-16 10:35jorge-garciaReview Assigned To => jorge-garcia
2019-12-16 10:46jorge-garciaSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=19906#r19906
2019-12-16 12:53jorge-garciaNote Added: 0116342
2019-12-16 12:53jorge-garciaStatusresolved => closed
2019-12-16 12:53jorge-garciaFixed in Version => RR20Q1

Notes
(0116322)
hgbot   
2019-12-16 07:41   
Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: e61f23d9708ee8486290242e9c509a079ffe1456
Author: Ranjith S R <ranjith <at> qualiantech.com>
Date: Mon Dec 16 12:11:35 2019 +0530
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/e61f23d9708ee8486290242e9c509a079ffe1456 [^]

Fixed issue 42542 : BigDecimal should be used to calculate percentage instead of DEC function

* If Precision is set as 0, DEC function will return invalid value for percentage calculation

---
M web/org.openbravo.retail.posterminal/js/utils/ob-utilitiesuipos.js
---
(0116342)
jorge-garcia   
2019-12-16 12:53   
Code reviewed and tested