Code Duplication    Length = 40-40 lines in 2 locations

satcfdi/create/cancela/cancelacionretencion.py 1 location

@@ 36-75 (lines=40) @@
33
        })
34
        
35
36
class Cancelacion(XElement):
37
    """
38
    Elemento raíz para realizar una solicitud de cancelación de CFDI.
39
    """
40
    tag = '{http://www.sat.gob.mx/esquemas/retencionpago/1}Cancelacion'
41
42
    def __init__(
43
            self,
44
            emisor: Signer,
45
            folios: Folio | Sequence[Folio | dict],
46
            fecha: datetime = None
47
    ):
48
        """
49
        Elemento raíz para realizar una solicitud de cancelación de CFDI.
50
51
        :param emisor: Atributo requerido para expresar el RFC del emisor del (os) CFDI a cancelar.
52
        :param fecha: Atributo requerido para expresar la fecha de la operación.
53
        :param folios: Colección de folios fiscales (UUID) a ser cancelados.
54
        """
55
        super().__init__({
56
            'RfcEmisor': emisor.rfc,
57
            'Fecha': fecha or datetime.now(),
58
            'Folios': folios,
59
        })
60
        self["_nsmap"] = {
61
            None: "http://www.sat.gob.mx/esquemas/retencionpago/1",
62
            "xsd": "http://www.w3.org/2001/XMLSchema",
63
            "xsi": "http://www.w3.org/2001/XMLSchema-instance"
64
        }
65
66
        sig = signature_c14n_sha1(
67
            signer=emisor,
68
            element=self.to_xml(),
69
            nsmap={
70
                None: 'http://www.w3.org/2000/09/xmldsig#',
71
                "xsd": "http://www.w3.org/2001/XMLSchema",
72
                "xsi": "http://www.w3.org/2001/XMLSchema-instance",
73
            }
74
        )
75
        self['Signature'] = sig
76
77

satcfdi/create/cancela/cancelacion.py 1 location

@@ 37-76 (lines=40) @@
34
        })
35
36
37
class Cancelacion(XElement):
38
    """
39
    Elemento raíz para realizar una solicitud de cancelación de CFDI.
40
    """
41
    tag = '{http://cancelacfd.sat.gob.mx}Cancelacion'
42
43
    def __init__(
44
            self,
45
            emisor: Signer,
46
            folios: Folio | Sequence[Folio | dict],
47
            fecha: datetime = None
48
    ):
49
        """
50
        Elemento raíz para realizar una solicitud de cancelación de CFDI.
51
        
52
        :param emisor: Atributo requerido para expresar el RFC del emisor del (os) CFDI a cancelar.
53
        :param fecha: Atributo requerido para expresar la fecha de la operación.
54
        :param folios: Colección de folios fiscales (UUID) a ser cancelados.
55
        """
56
        super().__init__({
57
            'RfcEmisor': emisor.rfc,
58
            'Fecha': fecha or datetime.now(),
59
            'Folios': folios,
60
        })
61
        self["_nsmap"] = {
62
            None: "http://cancelacfd.sat.gob.mx",
63
            "xsd": "http://www.w3.org/2001/XMLSchema",
64
            "xsi": "http://www.w3.org/2001/XMLSchema-instance"
65
        }
66
67
        sig = signature_c14n_sha1(
68
            signer=emisor,
69
            element=self.to_xml(),
70
            nsmap={
71
                None: 'http://www.w3.org/2000/09/xmldsig#',
72
                "xsd": "http://www.w3.org/2001/XMLSchema",
73
                "xsi": "http://www.w3.org/2001/XMLSchema-instance",
74
            }
75
        )
76
        self['Signature'] = sig
77
78