From 06f7a2dd00a1e13a5f07d3eb7ecc3eda7f9f14af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Fri, 23 Mar 2012 18:38:49 +0100 Subject: [PATCH] Integer, Numeric and Float allow None as value NULL value is None and not False issue2022 review237004 --- account.py | 4 ++-- journal.py | 5 +---- move.py | 20 ++++++++++++++------ tax.py | 18 ++++++++++++------ 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/account.py b/account.py index 26ef907c99..47bad1634e 100644 --- a/account.py +++ b/account.py @@ -996,9 +996,9 @@ class AccountDeferral(ModelSQL, ModelView): fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year', required=True, select=True) debit = fields.Numeric('Debit', digits=(16, Eval('currency_digits', 2)), - depends=['currency_digits']) + required=True, depends=['currency_digits']) credit = fields.Numeric('Credit', digits=(16, Eval('currency_digits', 2)), - depends=['currency_digits']) + required=True, depends=['currency_digits']) currency_digits = fields.Function(fields.Integer('Currency Digits'), 'get_currency_digits') diff --git a/journal.py b/journal.py index 637ed8c296..309ea468c9 100644 --- a/journal.py +++ b/journal.py @@ -57,7 +57,7 @@ class Column(ModelSQL, ModelView): field = fields.Many2One('ir.model.field', 'Field', required=True, domain=[('model.model', '=', 'account.move.line')]) view = fields.Many2One('account.journal.view', 'View', select=True) - sequence = fields.Integer('Sequence', select=True) + sequence = fields.Integer('Sequence', select=True, required=True) required = fields.Boolean('Required') readonly = fields.Boolean('Readonly') @@ -161,9 +161,6 @@ class Journal(ModelSQL, ModelView): return [('code',) + clause[1:]] return [(self._rec_name,) + clause[1:]] - def check_xml_record(self, ids, values): - return True - Journal() diff --git a/move.py b/move.py index c988b8db5a..c3fec5a187 100644 --- a/move.py +++ b/move.py @@ -443,13 +443,15 @@ class Line(ModelSQL, ModelView): name = fields.Char('Name', size=None, required=True) debit = fields.Numeric('Debit', digits=(16, Eval('currency_digits', 2)), - on_change=['account', 'debit', 'credit', 'tax_lines', - 'journal', 'move'], depends=['currency_digits', 'credit', - 'tax_lines', 'journal']) + required=True, + on_change=['account', 'debit', 'credit', 'tax_lines', 'journal', + 'move'], + depends=['currency_digits', 'credit', 'tax_lines', 'journal']) credit = fields.Numeric('Credit', digits=(16, Eval('currency_digits', 2)), - on_change=['account', 'debit', 'credit', 'tax_lines', - 'journal', 'move'], depends=['currency_digits', 'debit', - 'tax_lines', 'journal']) + required=True, + on_change=['account', 'debit', 'credit', 'tax_lines', 'journal', + 'move'], + depends=['currency_digits', 'debit', 'tax_lines', 'journal']) account = fields.Many2One('account.account', 'Account', required=True, domain=[('kind', '!=', 'view')], select=True, @@ -570,6 +572,12 @@ class Line(ModelSQL, ModelView): def default_currency_digits(self): return 2 + def default_debit(self): + return Decimal(0) + + def default_credit(self): + return Decimal(0) + def default_get(self, fields, with_rec_name=True): pool = Pool() move_obj = pool.get('account.move') diff --git a/tax.py b/tax.py index 3488c4ace8..a2521b60cd 100644 --- a/tax.py +++ b/tax.py @@ -146,7 +146,7 @@ class Code(ModelSQL, ModelView): code = fields.Char('Code', size=None, select=True) active = fields.Boolean('Active', select=True) company = fields.Many2One('company.company', 'Company', required=True, - select=True) + select=True) parent = fields.Many2One('account.tax.code', 'Parent', select=True, domain=[('company', '=', Eval('company', 0))], depends=['company']) childs = fields.One2Many('account.tax.code', 'parent', 'Children', @@ -364,7 +364,7 @@ class TaxTemplate(ModelSQL, ModelView): name = fields.Char('Name', required=True, translate=True) description = fields.Char('Description', required=True, translate=True) group = fields.Many2One('account.tax.group', 'Group') - sequence = fields.Integer('Sequence') + sequence = fields.Integer('Sequence', required=True) amount = fields.Numeric('Amount', digits=(16, 8)) percentage = fields.Numeric('Percentage', digits=(16, 8)) type = fields.Selection([ @@ -564,17 +564,19 @@ class Tax(ModelSQL, ModelView): 'invisible': Bool(Eval('parent')), }, depends=['parent']) active = fields.Boolean('Active') - sequence = fields.Integer('Sequence', + sequence = fields.Integer('Sequence', required=True, help='Use to order the taxes') currency_digits = fields.Function(fields.Integer('Currency Digits', on_change_with=['company']), 'get_currency_digits') amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)), states={ + 'required': Eval('type') == 'fixed', 'invisible': Eval('type') != 'fixed', }, help='In company\'s currency', depends=['type', 'currency_digits']) percentage = fields.Numeric('Percentage', digits=(16, 8), states={ + 'required': Eval('type') == 'percentage', 'invisible': Eval('type') != 'percentage', }, help='In %', depends=['type']) type = fields.Selection([ @@ -617,6 +619,7 @@ class Tax(ModelSQL, ModelView): invoice_base_sign = fields.Numeric('Invoice Base Sign', digits=(2, 0), help='Usualy 1 or -1', states={ + 'required': Eval('type') != 'none', 'readonly': Eval('type') == 'none', }, depends=['type']) invoice_tax_code = fields.Many2One('account.tax.code', @@ -627,6 +630,7 @@ class Tax(ModelSQL, ModelView): invoice_tax_sign = fields.Numeric('Invoice Tax Sign', digits=(2, 0), help='Usualy 1 or -1', states={ + 'required': Eval('type') != 'none', 'readonly': Eval('type') == 'none', }, depends=['type']) credit_note_base_code = fields.Many2One('account.tax.code', @@ -637,6 +641,7 @@ class Tax(ModelSQL, ModelView): credit_note_base_sign = fields.Numeric('Credit Note Base Sign', digits=(2, 0), help='Usualy 1 or -1', states={ + 'required': Eval('type') != 'none', 'readonly': Eval('type') == 'none', }, depends=['type']) credit_note_tax_code = fields.Many2One('account.tax.code', @@ -647,6 +652,7 @@ class Tax(ModelSQL, ModelView): credit_note_tax_sign = fields.Numeric('Credit Note Tax Sign', digits=(2, 0), help='Usualy 1 or -1', states={ + 'required': Eval('type') != 'none', 'readonly': Eval('type') == 'none', }, depends=['type']) template = fields.Many2One('account.tax.template', 'Template') @@ -897,7 +903,7 @@ class Line(ModelSQL, ModelView): currency_digits = fields.Function(fields.Integer('Currency Digits', on_change_with=['move_line']), 'get_currency_digits') amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)), - depends=['currency_digits']) + required=True, depends=['currency_digits']) code = fields.Many2One('account.tax.code', 'Code', select=True, required=True) tax = fields.Many2One('account.tax', 'Tax', select=True, @@ -1113,7 +1119,7 @@ class RuleLineTemplate(ModelSQL, ModelView): ('group', '=', Eval('group')), ], depends=['group']) - sequence = fields.Integer('Sequence') + sequence = fields.Integer('Sequence', required=True) def __init__(self): super(RuleLineTemplate, self).__init__() @@ -1208,7 +1214,7 @@ class RuleLine(ModelSQL, ModelView): ('group', '=', Eval('group')), ], depends=['group']) - sequence = fields.Integer('Sequence') + sequence = fields.Integer('Sequence', required=True) template = fields.Many2One('account.tax.rule.line.template', 'Template') def __init__(self):