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

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0045303
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Retail Modules] Web POSmajoralways2020-10-27 06:352020-11-18 09:06
ReportermarvintmView Statuspublic 
Assigned Toaferraz 
PrioritynormalResolutionfixedFixed in VersionRR21Q1
StatusclosedFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned To
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0045303: Performance of the tax engine can be improved

DescriptionCurrently, the ticket calculation performance degrades quite significantly with the number of lines. Almost all the degradation comes from the tax engine, and particularly the call to the OB.Taxes.filterRulesByTicketLine function, which computes which tax rules could be applied to a line.

If this was optimised, the performance of the engine, and the ticket calculation speed in general, would improve by a very large amount.
Steps To ReproduceCreate a big ticket using "GPS" products (to ensure that all lines have a discount).
Realise that after 200 lines, calculating a ticket takes around 1.5 seconds.
Do some profiling. Realise that almost all the time is spent in the OB.Taxes.filterRulesByTicketLine function.
Proposed SolutionThe initial optimisation we are going to try consists in trying to avoid calculating the rules if the line already has them, and the line itself didn't change.
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
depends on backport 0045305RR20Q4 closedaferraz Performance of the tax engine can be improved 
depends on backport 0045453RR20Q3.2 closedaferraz Performance of the tax engine can be improved 
related to defect 0048737 closedaferraz Performance problem in Tax Engine having tax rules with many tax zones 

-  Notes
(0123966)
hgbot (developer)
2020-10-28 08:23

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/137 [^]
(0124065)
hgbot (developer)
2020-10-30 13:11

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/146 [^]
(0124232)
hgbot (developer)
2020-11-09 07:59

Merge request closed: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/137 [^]
(0124233)
hgbot (developer)
2020-11-09 08:00

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/157 [^]
(0124234)
hgbot (developer)
2020-11-09 08:02

Merge request closed: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/157 [^]
(0124235)
hgbot (developer)
2020-11-09 08:02

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/158 [^]
(0124432)
hgbot (developer)
2020-11-16 19:29

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/185 [^]
(0124463)
hgbot (developer)
2020-11-18 08:30

Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/185 [^]
(0124464)
hgbot (developer)
2020-11-18 08:30

Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal [^]
Changeset: be8805f67182617d31cec75865245c446713827b
Author: Álvaro Ferraz <alvaro.ferraz@openbravo.com>
Date: 2020-11-17T14:27:02+01:00
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/commit/be8805f67182617d31cec75865245c446713827b [^]

Fixes ISSUE-45303: Performance of the tax engine can be improved

Move maps, filters and sorts not using line information from filterRulesByTicketLine to filterRulesByTicket:
- joinRuleAndZone
- sortByRegionFrom
- sortByCountryFrom
- sortByLineno
- sortByCascade
- sortByTaxBase

Move some filters to filterRulesByTicket to reduce the rules sent to filterRulesByTicketLine:
- checkTaxCategory,
- checkCountry
- checkRegion

Reorder some filters to apply first the ones more restrictive.

---
M web/org.openbravo.retail.posterminal/app/model/business-logic/taxes-engine/engine/tax-engine.js
---
(0124466)
hgbot (developer)
2020-11-18 08:56

Merge request closed: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/146 [^]
(0124467)
hgbot (developer)
2020-11-18 08:56

Merge request closed: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/158 [^]

- Issue History
Date Modified Username Field Change
2020-10-27 06:35 marvintm New Issue
2020-10-27 06:35 marvintm Assigned To => Retail
2020-10-27 06:35 marvintm Triggers an Emergency Pack => No
2020-10-27 09:36 marvintm Status new => scheduled
2020-10-27 09:36 marvintm Assigned To Retail => marvintm
2020-10-28 08:23 hgbot Note Added: 0123966
2020-10-30 13:11 hgbot Note Added: 0124065
2020-11-09 07:59 hgbot Note Added: 0124232
2020-11-09 08:00 hgbot Note Added: 0124233
2020-11-09 08:02 hgbot Note Added: 0124234
2020-11-09 08:02 hgbot Note Added: 0124235
2020-11-16 16:36 marvintm Status scheduled => acknowledged
2020-11-16 16:36 marvintm Status acknowledged => scheduled
2020-11-16 19:29 hgbot Note Added: 0124432
2020-11-18 08:30 hgbot Resolution open => fixed
2020-11-18 08:30 hgbot Status scheduled => closed
2020-11-18 08:30 hgbot Note Added: 0124463
2020-11-18 08:30 hgbot Fixed in Version => RR21Q1
2020-11-18 08:30 hgbot Note Added: 0124464
2020-11-18 08:56 hgbot Note Added: 0124466
2020-11-18 08:56 hgbot Note Added: 0124467
2020-11-18 09:06 aferraz Assigned To marvintm => aferraz
2022-03-08 13:25 aferraz Relationship added related to 0048737


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker