Преглед на файлове

[FIX] discount precision

robert преди 6 години
родител
ревизия
27a868241d

+ 4 - 11
controllers/account_invoice.py

@@ -6,8 +6,7 @@ from dateutil.relativedelta import relativedelta as rd
 
 _MODEL = 'account.invoice'
 
-'''
-'''
+
 def create_invoice(sale_order_id, currency_id, date_today, picking_done=True):
     sale_order = request.env['sale.order'].browse(sale_order_id)
     invoice_id = sale_order.action_invoice_create()
@@ -29,9 +28,7 @@ def create_invoice(sale_order_id, currency_id, date_today, picking_done=True):
 
     return invoice
 
-'''
-    Create move lines
-'''
+
 def create_invoice_move_lines(invoice_id, paid_amount, date_today):
     invoice = request.env[_MODEL].browse(invoice_id)
     context = dict(request.context, lang=invoice.partner_id.lang)
@@ -110,15 +107,11 @@ def create_invoice_move_lines(invoice_id, paid_amount, date_today):
 
     return invoice_move_lines
 
-'''
-    Number to invoice
-'''
+
 def number_invoice(invoice_id):
     request.env[_MODEL].browse(invoice_id).action_number()
 
-'''
-    Close a invoice
-'''
+
 def close_invoice(invoice_id):
     invoice = request.env[_MODEL].browse(invoice_id)
 

+ 10 - 0
controllers/decimal_precision.py

@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+from openerp.http import request as r
+
+
+def check_discount_precision():
+    discount_precision = r.env['decimal.precision'].search([('name', '=', 'Discount')])
+
+    discount_precision.write({
+        'digits': 9
+    })

+ 4 - 0
controllers/main.py

@@ -43,9 +43,11 @@ class PosSales(http.Controller):
         from sale_order import get_sale_orders
         from stock_picking import get_pickings
         from stock_warehouse import get_warehouses
+        from decimal_precision import check_discount_precision
 
         # Logic 
         check_base_currency()
+        check_discount_precision()
         config = get_pos_config()
         image_type = config.get('imageType')
 
@@ -112,6 +114,8 @@ class PosSales(http.Controller):
     #####################################################################
     @http.route('/eiru_sales/get_images', auth='user', methods=['GET'], cors='*')
     def _get_images_only(self, **kw):
+        from res_config import get_pos_config
+
         image_type = str(get_pos_config().get('imageType'))
 
         # Imports

+ 7 - 2
controllers/sale_order.py

@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 from openerp.http import request
+from openerp.tools import float_round
 
 _MODEL = 'sale.order'
 
@@ -80,7 +81,11 @@ def create_sale_from_cart(partner_id, cart_items, date_confirm, currency_id, pay
         product = request.env['product.product'].search([('id', '=', product_id)])
         computed_price = from_currency.compute(price, to_currency)
 
-        return 1.0 - (price / product.list_price)
+        discount = 1.0 - (computed_price / product.list_price)
+        precision = request.env['decimal.precision'].precision_get('Discount')
+
+        # return float_round(discount, precision)
+        return float_round(discount, precision) * 100
 
     pricelist = get_pricelist(currency_id)
 
@@ -89,7 +94,7 @@ def create_sale_from_cart(partner_id, cart_items, date_confirm, currency_id, pay
         'order_line': [[0, False, {
             'product_id': int(line.get('id')),
             'product_uom_qty': float(line.get('quantity')),
-            'price_unit': compute_cart_item_price(float(line.get('price')), currency_id),
+            'price_unit': compute_cart_item_price(float(line.get('listPrice')), currency_id),
             'discount': compute_cart_item_discount(float(line.get('price')), float(line.get('id')), currency_id)
         }] for line in cart_items],
         'picking_policy': 'direct',

+ 1 - 1
models/account_bank_statement.py

@@ -1,8 +1,8 @@
 # -*- coding: utf-8 -*-
 from openerp import models, fields
 
+
 class AccountBankStatement(models.Model):
     _inherit = 'account.bank.statement'
 
     from_pos = fields.Boolean(string='Created from POS', default=False)
-    

+ 2 - 1
models/account_invoice_line.py

@@ -1,7 +1,8 @@
 # -*- coding: utf-8 -*-
 from openerp import models, fields
 
+
 class AccountInvoiceLine(models.Model):
     _inherit = 'account.invoice.line'
 
-    discount = fields.Float(digits=(12,9))
+    discount = fields.Float(digits=(12, 9))

+ 1 - 1
models/sale_order.py

@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-from openerp import models, fields
+from openerp import models, fields, api
 
 class SaleOrder(models.Model):
     _inherit = 'sale.order'

+ 2 - 1
src/store/actions.js

@@ -157,7 +157,8 @@ const actions = {
                     return {
                         id: item.id,
                         quantity: item.quantity,
-                        price: item.price
+                        price: item.price,
+                        listPrice: item.listPrice
                     }
                 }),
                 customerId: getters.selectedCustomer.id,