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

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0033933
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Retail Modules] Web POSmajoralways2016-09-08 23:222018-07-27 15:33
ReporterguilleaerView Statuspublic 
Assigned Toguilleaer 
PriorityhighResolutionfixedFixed in Version
StatusclosedFix in branchFixed in SCM revision847e6420c8a6
ProjectionnoneETAnoneTarget VersionRR16Q4
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Tomarvintm
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0033933: Docuemnt level taxes calculation fails when tax rate has decimals

DescriptionDocument level tax calculations done by web POS are wrong when the tax rate has decimals.

It happens because the algorithm is rounding earlier than expected.
Steps To ReproduceCreate a tax with a rate of 21.5 (you can modify ENTREGAS IVA 21% rate's)
Open web POS in a terminal using price not including taxes
Add a product
 - Avalanche Transceiver (150.50)
Realize that taxes calculations are wrong
 - Tax amount is 27.14 but it should be 26.63
 - Net should be 123.87 but it is 123.36

This happens because when executing the algorithm, we are rounding.
In this case, the algorithm first calculates the total gross 150.5
Then the net is recalculated with the following expression:

newNet = round(totalGross / (1+rate))

The problem is that wrongly we are doing the following

newNet = round(totalGross / round(1+rate))

So in this particular case, newNet calculation is wrong:

wrong -> newNet = round(150.5 / round(1+0.215))
wrong -> newNet = round(150.5 / 1+1.22)
wrong -> newNet = round(123.3606557) -> 123.36
correct -> newNet = round(150.5 / 1+1.215)
correct -> newNet = round(123.8683128) -> 123.87

Because tax amount is based on net, it is also wrong
taxamount = total - newNet

Wrong -> 150.5 - 123.36 = 27.14
Correct -> 150.5 - 123.87 = 26.63
Proposed Solutionround in the correct place when net is being calculated

do
newNet = round(totalGross / (1+rate))
instead of
newNet = round(totalGross / round(1+rate))
TagsNo tags attached.
Attached Filesdiff file icon roundingrate.diff [^] (803 bytes) 2016-09-08 23:34 [Show Content]

- Relationships Relation Graph ] Dependency Graph ]
depends on backport 0033985RR16Q3.2 closedRetail Docuemnt level taxes calculation fails when tax rate has decimals 
depends on backport 0033986RR16Q2.3 closedRetail Docuemnt level taxes calculation fails when tax rate has decimals 
related to defect 0034084 newRetail Pending test to be developed 

-  Notes
(0089873)
hgbot (developer)
2016-09-09 15:50

Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: 847e6420c8a6551d9cc71dd951b8129e5539d68d
Author: Guillermo Alvarez de Eulate <guillermo.alvarez <at> openbravo.com>
Date: Thu Sep 08 23:59:10 2016 +0200
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/847e6420c8a6551d9cc71dd951b8129e5539d68d [^]

Fixed issue 33933: Round in proper place when document taxes are calculated

---
M web/org.openbravo.retail.posterminal/js/data/dataordertaxes.js
---
(0089874)
guilleaer (manager)
2016-09-09 15:51

Fix has passed try
Issue reopened because test is pending
(0105991)
hgbot (developer)
2018-07-27 15:33

Repository: tools/automation/pi-mobile
Changeset: 8efea16e85430c3aa409bf5bc96e8b35f21ce086
Author: Alejandro <alekosmp86 <at> gmail.com>
Date: Mon Jul 23 14:51:46 2018 -0400
URL: http://code.openbravo.com/tools/automation/pi-mobile/rev/8efea16e85430c3aa409bf5bc96e8b35f21ce086 [^]

Related to issue 33933: added automated test

---
A src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/sales/taxes/I33933_VerifyDocumentLevelTaxesCalculation.java
---

- Issue History
Date Modified Username Field Change
2016-09-08 23:22 guilleaer New Issue
2016-09-08 23:22 guilleaer Assigned To => Retail
2016-09-08 23:22 guilleaer Triggers an Emergency Pack => No
2016-09-08 23:34 guilleaer File Added: roundingrate.diff
2016-09-09 00:15 guilleaer Note Added: 0089859
2016-09-09 15:50 hgbot Checkin
2016-09-09 15:50 hgbot Note Added: 0089873
2016-09-09 15:50 hgbot Status new => resolved
2016-09-09 15:50 hgbot Resolution open => fixed
2016-09-09 15:50 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/847e6420c8a6551d9cc71dd951b8129e5539d68d [^]
2016-09-09 15:50 guilleaer Status resolved => new
2016-09-09 15:50 guilleaer Resolution fixed => open
2016-09-09 15:51 guilleaer Note Added: 0089874
2016-09-09 15:51 guilleaer Note Deleted: 0089859
2016-09-14 10:17 marvintm Status new => scheduled
2016-09-16 14:40 marvintm Status scheduled => resolved
2016-09-16 14:40 marvintm Resolution open => fixed
2016-09-19 09:20 marvintm Assigned To Retail => guilleaer
2016-09-26 10:42 guilleaer Relationship added related to 0034084
2016-09-26 11:53 marvintm Review Assigned To => marvintm
2016-09-26 11:53 marvintm Status resolved => closed
2018-07-27 15:33 hgbot Checkin
2018-07-27 15:33 hgbot Note Added: 0105991


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker