From c17288535dc99a972bea90b4ede4c7285130f4d8 Mon Sep 17 00:00:00 2001
From: Cuauhtemoc Diaz Minor <cuauhtemoc.diaz@openpyme.mx>
Date: Thu, 18 Oct 2018 13:43:17 -0500
Subject: [PATCH] perf(base.cfdi): cambios necesarios para la integracion con
 account.invoice

Se crea el campo `cfdi_folio_fiscal` y se relaciona con cfdi_id
 En la funcion de `cancel_cfdi()`
se modifica la logica para la cancelacion de CFDi 3.3, de la cancelacion del CFDI con el pac se
espera saber si la cancelacion se realiza o no
---
 .../models/base_cfdi_mixin.py                     | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py b/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py
index 59351f00..5400d7b4 100644
--- a/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py
+++ b/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py
@@ -1,10 +1,14 @@
 # -*- coding: utf-8 -*-
 
+import logging
+
 from datetime import datetime
 from pytz import timezone, UTC
 
 from openerp import api, fields, models
 
+_logger = logging.getLogger(__name__)
+
 
 def _sanitize(text):
     # Chars not allowed on CFDI
@@ -67,6 +71,10 @@ class BaseCfdi(models.AbstractModel):
         'ir.attachment.facturae.mx', 'CFDI', copy=False,
         help='CFDI realed to the selected record.',
     )
+    cfdi_folio_fiscal = fields.Char(
+        'CFD-I Folio Fiscal', related='cfdi_id.uuid',
+        help='Folio used in the electronic invoice',
+    )
     cfdi_state = fields.Selection(related='cfdi_id.state')
     cfdi_relation_type = fields.Many2one(
         'cfdi.relation.type', 'CFDI Relation type', copy=False,
@@ -93,5 +101,8 @@ class BaseCfdi(models.AbstractModel):
     def cancel_cfdi(self):
         """Cancels the cfdi related with current record and delete relation"""
         if self.cfdi_id and self.cfdi_id.state in ['signed', 'done']:
-            self.cfdi_id.action_cancel()
-            self.cfdi_id = False
+            cancelacion = self.cfdi_id.action_cancel()
+            if cancelacion:
+                self.cfdi_id = False
+                return cancelacion
+            return cancelacion
-- 
GitLab