Cancel before delete a report

This commit is contained in:
Raimon Esteve 2017-06-29 17:50:28 +02:00
parent 08be2d9bb2
commit 9a77e30990
1 changed files with 18 additions and 6 deletions

24
aeat.py
View File

@ -335,6 +335,10 @@ class SIIReport(Workflow, ModelSQL, ModelView):
Eval('operation_type').in_(['A0', 'A1'])),
}
})
cls._error_messages.update({
'delete_cancel': ('Report "%s" must be cancelled before '
'deletion.'),
})
cls._transitions |= set((
('draft', 'confirmed'),
('draft', 'cancelled'),
@ -383,6 +387,14 @@ class SIIReport(Workflow, ModelSQL, ModelView):
default['send_date'] = None
return super(SIIReport, cls).copy(records, default=default)
@classmethod
def delete(cls, reports):
# Cancel before delete
for report in reports:
if report.state != 'cancelled':
cls.raise_user_error('delete_cancel', (report.rec_name,))
super(SIIReport, cls).delete(reports)
@classmethod
@ModelView.button
@Workflow.transition('draft')
@ -395,6 +407,12 @@ class SIIReport(Workflow, ModelSQL, ModelView):
def confirm(cls, reports):
pass
@classmethod
@ModelView.button
@Workflow.transition('cancelled')
def cancel(cls, reports):
pass
@classmethod
@ModelView.button
@Workflow.transition('sent')
@ -425,12 +443,6 @@ class SIIReport(Workflow, ModelSQL, ModelView):
'send_date': datetime.now()})
_logger.debug('Done sending reports to AEAT SII')
@classmethod
@ModelView.button
@Workflow.transition('cancelled')
def cancel(cls, reports):
pass
@classmethod
@ModelView.button
def load_invoices(cls, reports):