From 9a77e30990b30fe488c0def32c6412276444b4ab Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Thu, 29 Jun 2017 17:50:28 +0200 Subject: [PATCH] Cancel before delete a report --- aeat.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/aeat.py b/aeat.py index d682590..36dd4ee 100644 --- a/aeat.py +++ b/aeat.py @@ -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):