Total Complexity | 1 |
Total Lines | 40 |
Duplicated Lines | 77.5 % |
Changes | 0 |
Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
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): |
|
|
|||
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 |