Allow discount digits be defined in config file

This commit is contained in:
Jordi Esteve 2014-06-04 18:44:08 +02:00
parent ea63da6c07
commit 85d29c0d65
3 changed files with 20 additions and 15 deletions

View File

@ -2,15 +2,14 @@
Facturación. Descuentos en las líneas de las facturas Facturación. Descuentos en las líneas de las facturas
===================================================== =====================================================
En las líneas de la factura podemos añadir un valor fijo para aplicar un descuento. Permite realizar descuentos en las líneas de la factura.
El descuento se aplica en el campo "Precio unidad" a partir del descuento y el A partir del "Descuento" y el "Precio unidad bruto" se calcula el campo "Precio unidad" como:
campo "Precio bruto".
Precio = Precio bruto - descuento Precio unidad = Precio unidad bruto * (1 - Descuento)
Por defecto el número de dígitos del descuento son 4 dígitos. Si desea usar más Por defecto el número de decimales del "Precio unidad bruto" y el "Descuento" es 4. El número de decimales del "Precio unidad" es la suma de ambos, por defecto 8.
número de dígitos en el descuento, en el fichero de configuración de trytond, Si desea cambiar el número de decimales del "Precio unidad bruto" y/o el "Descuento", por ejemplo 3 y 2 respectivamente, puede definir las siguientes variables en el fichero de configuración de trytond:
puede definir la variable "unit_price_digits" y el número de dígitos. Por ejemplo:
unit_price_digits = 8 unit_price_digits = 3
discount_digits = 2

View File

@ -1,10 +1,14 @@
Account Invoice Discount Module Account Invoice Discount Module
############################### ###############################
Tryton module to add discounts in lines invoice Tryton module to add discounts on invoice lines.
Default discount digits is 4 digits. If you like increase number digits, From the "Discount" and the "Gross unit price", the "Unit price" field is calculated as:
in trytond configuration file you could add new variable "unit_price_digits"
and add digits value. For example:
unit_price_digits = 8 Unit price = Gross unit price * (1 - Discount)
By default the number of decimal places of "Gross unit price" and "Discount" is 4. The number of decimal places of "Unit Price" is the sum of both, by default 8.
To change the number of decimal places of "Gross unit price" and / or "Discount", for example 3 and 2 respectively, you can define the following variables in trytond configuration file:
unit_price_digits = 3
discount_digits = 2

View File

@ -4,6 +4,7 @@ from trytond.pool import PoolMeta
from trytond.pyson import Eval from trytond.pyson import Eval
from trytond.config import CONFIG from trytond.config import CONFIG
DIGITS = int(CONFIG.get('unit_price_digits', 4)) DIGITS = int(CONFIG.get('unit_price_digits', 4))
DISCOUNT_DIGITS = int(CONFIG.get('discount_digits', 4))
__all__ = ['InvoiceLine'] __all__ = ['InvoiceLine']
__metaclass__ = PoolMeta __metaclass__ = PoolMeta
@ -19,13 +20,14 @@ class InvoiceLine:
gross_unit_price = fields.Numeric('Gross Price', digits=(16, DIGITS), gross_unit_price = fields.Numeric('Gross Price', digits=(16, DIGITS),
states=STATES) states=STATES)
discount = fields.Numeric('Discount', digits=(16, 4), states=STATES) discount = fields.Numeric('Discount', digits=(16, DISCOUNT_DIGITS),
states=STATES)
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
super(InvoiceLine, cls).__setup__() super(InvoiceLine, cls).__setup__()
cls.unit_price.states['readonly'] = True cls.unit_price.states['readonly'] = True
cls.unit_price.digits = (20, DIGITS + 4) cls.unit_price.digits = (20, DIGITS + DISCOUNT_DIGITS)
if 'discount' not in cls.amount.on_change_with: if 'discount' not in cls.amount.on_change_with:
cls.amount.on_change_with.add('discount') cls.amount.on_change_with.add('discount')
if 'gross_unit_price' not in cls.amount.on_change_with: if 'gross_unit_price' not in cls.amount.on_change_with: