Issues (158)

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

1
"""tfd http://www.sat.gob.mx/TimbreFiscalDigital"""
2
from datetime import datetime
3
4
from ...cfdi import CFDI
5
from ...models import Signer
6
from ...transform import MEXICO_TZ
7
8
9 View Code Duplication
class TimbreFiscalDigital(CFDI):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
10
    """
11
    Complemento requerido para el Timbrado Fiscal Digital que da valides a un Comprobante Fiscal Digital.
12
13
    :param uuid: Atributo requerido para expresar los 36 caracteres del UUID de la transacción de timbrado
14
    :param fecha_timbrado: Atributo requerido para expresar la fecha y hora de la generación del timbre
15
    :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.
16
    """
17
18
    tag = '{http://www.sat.gob.mx/TimbreFiscalDigital}TimbreFiscalDigital'
19
    version = '1.0'
20
    
21
    def __init__(
22
            self,
23
            proveedor: Signer,
24
            uuid: str,
25
            fecha_timbrado: datetime,
26
            sello_cfd: str
27
    ):
28
        super().__init__({
29
            'Version': self.version,
30
            'UUID': uuid,
31
            'FechaTimbrado': fecha_timbrado or datetime.now(tz=MEXICO_TZ).replace(tzinfo=None),
32
            'RfcProvCertif': proveedor.rfc_pac,
33
            'SelloCFD': sello_cfd,
34
            'NoCertificadoSAT': proveedor.certificate_number,
35
            'SelloSAT': '',
36
        })
37
38
        self['SelloSAT'] = proveedor.sign_sha1(
39
            self.cadena_original().encode()
40
        )
41