Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0042542
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Retail Modules] Web POSmajorhave not tried2019-12-12 19:182019-12-16 12:53
ReportermarvintmView Statuspublic 
Assigned Toranjith_qualiantech_com 
PrioritynormalResolutionfixedFixed in VersionRR20Q1
StatusclosedFix in branchFixed in SCM revisione61f23d9708e
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Tojorge-garcia
Regression levelProduction - Confirmed Stable
Regression date2019-01-16
Regression introduced in releaseRR19Q2
Regression introduced by commithttps://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/4cd21ae4e9d2 [^]
Triggers an Emergency PackNo
Summary

0042542: Precision problem when calculating prices for services

DescriptionThere 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.
Steps To Reproduce- 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).
Proposed SolutionThe 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.
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
depends on backport 0042543RR19Q4.1 closedranjith_qualiantech_com Precision problem when calculating prices for services 
depends on backport 0042544RR19Q3.2 closedranjith_qualiantech_com Precision problem when calculating prices for services 

-  Notes
(0116322)
hgbot (developer)
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 (reporter)
2019-12-16 12:53

Code reviewed and tested

- Issue History
Date Modified Username Field Change
2019-12-12 19:18 marvintm New Issue
2019-12-12 19:18 marvintm Assigned To => ranjith_qualiantech_com
2019-12-12 19:18 marvintm Triggers an Emergency Pack => No
2019-12-12 19:21 marvintm Regression level => Production - Confirmed Stable
2019-12-12 19:21 marvintm Regression date => 2019-01-16
2019-12-12 19:21 marvintm Regression introduced in release => RR19Q2
2019-12-12 19:21 marvintm Regression introduced by commit => https://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/4cd21ae4e9d2 [^]
2019-12-12 19:21 marvintm Status new => scheduled
2019-12-12 19:26 marvintm Steps to Reproduce Updated View Revisions
2019-12-12 19:26 marvintm Proposed Solution updated
2019-12-16 07:41 hgbot Checkin
2019-12-16 07:41 hgbot Note Added: 0116322
2019-12-16 07:41 hgbot Status scheduled => resolved
2019-12-16 07:41 hgbot Resolution open => fixed
2019-12-16 07:41 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/e61f23d9708ee8486290242e9c509a079ffe1456 [^]
2019-12-16 10:35 jorge-garcia Review Assigned To => jorge-garcia
2019-12-16 10:46 jorge-garcia Steps to Reproduce Updated View Revisions
2019-12-16 12:53 jorge-garcia Note Added: 0116342
2019-12-16 12:53 jorge-garcia Status resolved => closed
2019-12-16 12:53 jorge-garcia Fixed in Version => RR20Q1


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker