Replace set required invoice to PYSON

Also add some report fields readonly when has lines
FIX from changeset-848333b3a574
This commit is contained in:
Raimon Esteve 2017-06-29 16:46:18 +02:00
parent 85d9c361bc
commit 0a616f8bdb
1 changed files with 20 additions and 12 deletions

32
aeat.py
View File

@ -250,29 +250,33 @@ class SIIReport(Workflow, ModelSQL, ModelView):
states={
'readonly': Eval('state') != 'draft',
}, depends=['state'])
currency = fields.Function(fields.Many2One('currency.currency',
'Currency'), 'on_change_with_currency')
fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year',
required=True, states={
'readonly': Eval('state') != 'draft',
}, depends=['state'])
company_vat = fields.Char('VAT', size=9, states={
'required': Eval('state').in_(['confirmed', 'done']),
'readonly': ~Eval('state').in_(['draft', 'confirmed']),
}, depends=['state'])
currency = fields.Function(fields.Many2One('currency.currency',
'Currency'), 'on_change_with_currency')
fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year',
required=True, states={
'readonly': ((Eval('state') != 'draft')
| (Eval('lines', [0]) & Eval('fiscalyear'))),
}, depends=['state'])
period = fields.Many2One('account.period', 'Period', required=True,
domain=[('fiscalyear', '=', Eval('fiscalyear'))],
states={
'readonly': Eval('state') != 'draft',
'readonly': ((Eval('state') != 'draft')
| (Eval('lines', [0]) & Eval('period'))),
}, depends=['state', 'fiscalyear'])
operation_type = fields.Selection(COMMUNICATION_TYPE, 'Operation Type',
required=True,
states={
'readonly': ~Eval('state').in_(['draft', 'confirmed']),
'readonly': ((~Eval('state').in_(['draft', 'confirmed']))
| (Eval('lines', [0]) & Eval('operation_type'))),
}, depends=['state'])
book = fields.Selection(BOOK_KEY, 'Book', required=True,
states={
'readonly': ~Eval('state').in_(['draft', 'confirmed']),
'readonly': ((~Eval('state').in_(['draft', 'confirmed']))
| (Eval('lines', [0]) & Eval('book'))),
}, depends=['state'])
state = fields.Selection([
('draft', 'Draft'),
@ -729,7 +733,11 @@ class SIIReportLine(ModelSQL, ModelView):
report = fields.Many2One(
'aeat.sii.report', 'Issued Report', ondelete='CASCADE')
invoice = fields.Many2One('account.invoice', 'Invoice', required=True)
invoice = fields.Many2One('account.invoice', 'Invoice',
states={
'required': Eval('_parent_report', {}).get(
'operation_type') != 'C0',
})
state = fields.Selection(AEAT_INVOICE_STATE, 'State')
communication_code = fields.Integer(
'Communication Code', readonly=True)
@ -765,10 +773,10 @@ class SIIReportLine(ModelSQL, ModelView):
return self.invoice.sii_operation_key
def get_vat_code(self, name):
return self.invoice.party.vat_code
return self.invoice.party.vat_code if self.invoice else None
def get_identifier_type(self, name):
return self.invoice.party.sii_identifier_type
return self.invoice.party.sii_identifier_type if self.invoice else None
@staticmethod
def default_company():