Issues (158)

satcfdi/create/cfd/tfd11.py (1 issue)

1
"""tfd http://www.sat.gob.mx/TimbreFiscalDigital"""
2 1
from datetime import datetime
3 1
from ...cfdi import CFDI
4 1
from ...xelement import XElement
5 1
from ...utils import ScalarMap
6 1
from ...models.signer import Signer
7 1
from ...transform import MEXICO_TZ
8
9
10 1 View Code Duplication
class TimbreFiscalDigital(CFDI):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
11
    """
12
    Complemento requerido para el Timbrado Fiscal Digital que da valides a un Comprobante Fiscal Digital.
13
14
    :param uuid: Atributo requerido para expresar los 36 caracteres del UUID de la transacción de timbrado
15
    :param fecha_timbrado: Atributo requerido para expresar la fecha y hora de la generación del timbre
16
    :param sello_cfd: Atributo requerido para contener el sello digital del comprobante fiscal, que será timbrado. El sello deberá ser expresado cómo una cadena de texto en formato Base 64.
17
    """
18
19 1
    tag = '{http://www.sat.gob.mx/TimbreFiscalDigital}TimbreFiscalDigital'
20 1
    version = '1.1'
21
22 1
    def __init__(
23
            self,
24
            proveedor: Signer,
25
            uuid: str,
26
            fecha_timbrado: datetime,
27
            sello_cfd: str,
28
            leyenda: str = None,
29
    ):
30 1
        super().__init__({
31
            'Version': self.version,
32
            'UUID': uuid,
33
            'FechaTimbrado': fecha_timbrado or datetime.now(tz=MEXICO_TZ).replace(tzinfo=None),
34
            'RfcProvCertif': proveedor.rfc_pac,
35
            'SelloCFD': sello_cfd,
36
            'NoCertificadoSAT': proveedor.certificate_number,
37
            'SelloSAT': '',
38
            'Leyenda': leyenda,
39
        })
40
41 1
        self['SelloSAT'] = proveedor.sign_sha256(
42
            self.cadena_original().encode()
43
        )
44