← Back to team overview

openerp-india team mailing list archive

[Bug 1266969] [NEW] Rounding error prevents order from being paid

 

Public bug reported:

First, I apologize if this is not the correct method or location for
reporting bugs, so please excuse me.

I am using Windows Server 2003 with OpenERP 7.0

A rounding error is preventing orders from being marked as 'paid' and
leaves them in 'draft' state, further preventing users from being able
to close their register sessions.

It seems the issue is due to a tax rounding error, but I'm not sure what
is the proper way to fix this.

Here is the example scenario, reproduced on a clean install:

OpenERP 7.0 with Point of Sale Module, United States accounting package and tax rate set to 9.0%
Create test product named 'Rounding Error' with price $2.50 and 'Customer Taxes' 9.0%
Actual tax cost should be $2.50*0.09=$0.225 ($0.23)

In Point of Sale module, create a new session and add the 'Rounding Error' item qty 1.
Taxes on screen should calculate at $0.23 and total should be $2.73, the customer is charged correctly and pays exact cash $2.73.

Once you receive and validate the payment, however, the order total is
incorrectly recorded to the database as $2.72 ($2.50+$0.22).

At this point, in the 'Orders' section under 'Point of Sale', there will
be the still-open order which has status set to 'New'.

To fix the records manually in the database:

In pos_order_line table, find the record with price_subtotal_incl = 2.72 and update it to 2.73
In pos_order table, find the record with the corresponding id equal to the record above's pos_order_line.order_id and update the "state" field from "draft" to "paid"

The user is now able to close the session and the order line will no
longer show highlighted blue with status 'New'.

I think the error may lie in addons/point_of_sale/point_of_sale.py Line
1208

taxes = account_tax_obj.compute_all(cr, uid, prod.taxes_id, price, qty,
product=prod, partner=False)

I'm not sure if it may be related to this previous bug report, but I'm hoping it may also be a similar patch:
https://bugs.launchpad.net/openobject-addons/+bug/977300

Please let me know if you need any further information, I can provide
screenshots as well.

Thank you!

** Affects: openobject-addons
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/1266969

Title:
  Rounding error prevents order from being paid

Status in OpenERP Addons (modules):
  New

Bug description:
  First, I apologize if this is not the correct method or location for
  reporting bugs, so please excuse me.

  I am using Windows Server 2003 with OpenERP 7.0

  A rounding error is preventing orders from being marked as 'paid' and
  leaves them in 'draft' state, further preventing users from being able
  to close their register sessions.

  It seems the issue is due to a tax rounding error, but I'm not sure
  what is the proper way to fix this.

  Here is the example scenario, reproduced on a clean install:

  OpenERP 7.0 with Point of Sale Module, United States accounting package and tax rate set to 9.0%
  Create test product named 'Rounding Error' with price $2.50 and 'Customer Taxes' 9.0%
  Actual tax cost should be $2.50*0.09=$0.225 ($0.23)

  In Point of Sale module, create a new session and add the 'Rounding Error' item qty 1.
  Taxes on screen should calculate at $0.23 and total should be $2.73, the customer is charged correctly and pays exact cash $2.73.

  Once you receive and validate the payment, however, the order total is
  incorrectly recorded to the database as $2.72 ($2.50+$0.22).

  At this point, in the 'Orders' section under 'Point of Sale', there
  will be the still-open order which has status set to 'New'.

  To fix the records manually in the database:

  In pos_order_line table, find the record with price_subtotal_incl = 2.72 and update it to 2.73
  In pos_order table, find the record with the corresponding id equal to the record above's pos_order_line.order_id and update the "state" field from "draft" to "paid"

  The user is now able to close the session and the order line will no
  longer show highlighted blue with status 'New'.

  I think the error may lie in addons/point_of_sale/point_of_sale.py
  Line 1208

  taxes = account_tax_obj.compute_all(cr, uid, prod.taxes_id, price,
  qty, product=prod, partner=False)

  I'm not sure if it may be related to this previous bug report, but I'm hoping it may also be a similar patch:
  https://bugs.launchpad.net/openobject-addons/+bug/977300

  Please let me know if you need any further information, I can provide
  screenshots as well.

  Thank you!

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1266969/+subscriptions


Follow ups

References