trytonpsk-sale_contract/sale.py

48 lines
1.4 KiB
Python

# This file is part of the sale_weight module for Tryton.
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from decimal import Decimal
from trytond.model import fields
from trytond.pool import PoolMeta
from trytond.pyson import Eval
conversor = None
try:
from numword import numword_es
conversor = numword_es.NumWordES()
except Exception:
print("Warning: Does not possible import numword module!")
print("Please install it...!")
__all__ = ['Sale']
STATES = {
'readonly': Eval('state') != 'draft',
}
STATES_LINE = {
'readonly': Eval('state') != 'pending',
}
_ZERO = Decimal('0.0')
class Sale(metaclass=PoolMeta):
__name__ = 'sale.sale'
contract_line = fields.Many2One('sale.contract.line',
'Contract Line', select=True, states=STATES)
validity_contract = fields.Char('Validity Contract',
depends=['state'], states=STATES)
start_contract = fields.Date('Start Contract',
depends=['state'], states=STATES)
end_contract = fields.Date('End Contract',
depends=['state'], states=STATES)
total_amount_words = fields.Function(fields.Char('Total Amount Words'),
'get_total_amount_words')
def get_total_amount_words(self, name=None):
if self.total_amount and conversor:
num = (conversor.cardinal(int(self.total_amount))).upper()
return num