Add readonly states on report lines

This commit is contained in:
Sergi Almacellas Abellana 2018-05-14 11:10:57 +02:00
parent 31d871d322
commit 76ecff22e6

34
aeat.py
View file

@ -773,20 +773,32 @@ class SIIReportLine(ModelSQL, ModelView):
'''
__name__ = 'aeat.sii.report.lines'
_states = {
'readonly': Eval('report_state') != 'draft',
}
_depends = ['report_state']
report = fields.Many2One(
'aeat.sii.report', 'Issued Report', ondelete='CASCADE')
'aeat.sii.report', 'Issued Report', ondelete='CASCADE',
states=_states, depends=_depends)
report_state = fields.Function(fields.Selection(
'get_report_state', "Report State"),
'on_change_with_report_state')
invoice = fields.Many2One('account.invoice', 'Invoice',
states={
'required': Eval('_parent_report', {}).get(
'operation_type') != 'C0',
})
state = fields.Selection(AEAT_INVOICE_STATE, 'State')
'readonly': _states['readonly'],
},
depends=_depends)
state = fields.Selection(AEAT_INVOICE_STATE, 'State', readonly=True)
communication_code = fields.Integer(
'Communication Code', readonly=True)
communication_msg = fields.Char(
'Communication Message', readonly=True)
company = fields.Many2One(
'company.company', 'Company', required=True, select=True)
'company.company', 'Company', required=True, select=True,
states=_states, depends=_depends)
issuer_vat_number = fields.Char('Issuer VAT Number', readonly=True)
serial_number = fields.Char('Serial Number', readonly=True)
final_serial_number = fields.Char('Final Serial Number', readonly=True)
@ -811,6 +823,8 @@ class SIIReportLine(ModelSQL, ModelView):
fields.Selection(OPERATION_KEY, 'SII Operation Key'),
'get_invoice_operation_key')
del _states, _depends
def get_invoice_operation_key(self, name):
return self.invoice.sii_operation_key if self.invoice else None
@ -820,10 +834,22 @@ class SIIReportLine(ModelSQL, ModelView):
def get_identifier_type(self, name):
return self.invoice.party.sii_identifier_type if self.invoice else None
@classmethod
def get_report_state(cls):
pool = Pool()
Report = pool.get('aeat.sii.report')
field_name = 'state'
return Report.fields_get([field_name])[field_name]['selection']
@staticmethod
def default_company():
return Transaction().context.get('company')
@fields.depends('report')
def on_change_with_report_state(self, name=None):
if self.report:
return self.report.state
@classmethod
def copy(cls, records, default=None):
if default is None: