Test Failed
Push — main ( a36a30...ec255a )
by Sat CFDI
04:33
created

satcfdi.create.cfd.catalogos   A

Complexity

Total Complexity 0

Size/Duplication

Total Lines 138
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 0
eloc 118
dl 0
loc 138
rs 10
c 0
b 0
f 0
1
from ...utils import StrEnum
2
3
4
class FormaPago(StrEnum):
5
    EFECTIVO = '01'
6
    CHEQUE_NOMINATIVO = '02'
7
    TRANSFERENCIA_ELECTRONICA_DE_FONDOS = '03'
8
    TARJETA_DE_CREDITO = '04'
9
    MONEDERO_ELECTRONICO = '05'
10
    DINERO_ELECTRONICO = '06'
11
    VALES_DE_DESPENSA = '08'
12
    DACION_EN_PAGO = '12'
13
    PAGO_POR_SUBROGACION = '13'
14
    PAGO_POR_CONSIGNACION = '14'
15
    CONDONACION = '15'
16
    COMPENSACION = '17'
17
    NOVACION = '23'
18
    CONFUSION = '24'
19
    REMISION_DE_DEUDA = '25'
20
    PRESCRIPCION_O_CADUCIDAD = '26'
21
    A_SATISFACCION_DEL_ACREEDOR = '27'
22
    TARJETA_DE_DEBITO = '28'
23
    TARJETA_DE_SERVICIOS = '29'
24
    APLICACION_DE_ANTICIPOS = '30'
25
    INTERMEDIARIO_PAGOS = '31'
26
    POR_DEFINIR = '99'
27
    TAREJTAS_DIGITALES = '07'
28
    BIENES = '09'
29
    SERVICIO = '10'
30
    POR_CUENTA_DE_TERCERO = '11'
31
    CANCELACION = '16'
32
    NA = '98'
33
34
35
class Impuesto(StrEnum):
36
    ISR = '001'
37
    IVA = '002'
38
    IEPS = '003'
39
40
41
class MetodoPago(StrEnum):
42
    PAGO_EN_UNA_SOLA_EXHIBICION = 'PUE'
43
    PAGO_EN_PARCIALIDADES_O_DIFERIDO = 'PPD'
44
45
46
class RegimenFiscal(StrEnum):
47
    GENERAL_DE_LEY_PERSONAS_MORALES = '601'
48
    PERSONAS_MORALES_CON_FINES_NO_LUCRATIVOS = '603'
49
    SUELDOS_Y_SALARIOS_E_INGRESOS_ASIMILADOS_A_SALARIOS = '605'
50
    ARRENDAMIENTO = '606'
51
    REGIMEN_DE_ENAJENACION_O_ADQUISICION_DE_BIENES = '607'
52
    DEMAS_INGRESOS = '608'
53
    CONSOLIDACION = '609'
54
    RESIDENTES_EN_EL_EXTRANJERO_SIN_ESTABLECIMIENTO_PERMANENTE_EN_MEXICO = '610'
55
    INGRESOS_POR_DIVIDENDOS_SOCIOS_Y_ACCIONISTAS = '611'
56
    PERSONAS_FISICAS_CON_ACTIVIDADES_EMPRESARIALES_Y_PROFESIONALES = '612'
57
    INGRESOS_POR_INTERESES = '614'
58
    REGIMEN_DE_LOS_INGRESOS_POR_OBTENCION_DE_PREMIOS = '615'
59
    SIN_OBLIGACIONES_FISCALES = '616'
60
    SOCIEDADES_COOPERATIVAS_DE_PRODUCCION_QUE_OPTAN_POR_DIFERIR_SUS_INGRESOS = '620'
61
    INCORPORACION_FISCAL = '621'
62
    ACTIVIDADES_AGRICOLAS_GANADERAS_SILVICOLAS_Y_PESQUERAS = '622'
63
    OPCIONAL_PARA_GRUPOS_DE_SOCIEDADES = '623'
64
    COORDINADOS = '624'
65
    REGIMEN_DE_LAS_ACTIVIDADES_EMPRESARIALES_CON_INGRESOS_A_TRAVES_DE_PLATAFORMAS_TECNOLOGICAS = '625'
66
    REGIMEN_SIMPLIFICADO_DE_CONFIANZA = '626'
67
    HIDROCARBUROS = '628'
68
    DE_LOS_REGIMENES_FISCALES_PREFERENTES_Y_DE_LAS_EMPRESAS_MULTINACIONALES = '629'
69
    ENAJENACION_DE_ACCIONES_EN_BOLSA_DE_VALORES = '630'
70
71
72
class TipoDeComprobante(StrEnum):
73
    INGRESO = 'I'
74
    EGRESO = 'E'
75
    TRASLADO = 'T'
76
    NOMINA = 'N'
77
    PAGO = 'P'
78
79
80
class TipoFactor(StrEnum):
81
    TASA = 'Tasa'
82
    CUOTA = 'Cuota'
83
    EXENTO = 'Exento'
84
85
86
class TipoRelacion(StrEnum):
87
    NOTA_DE_CREDITO_DE_LOS_DOCUMENTOS_RELACIONADOS = '01'
88
    NOTA_DE_DEBITO_DE_LOS_DOCUMENTOS_RELACIONADOS = '02'
89
    DEVOLUCION_DE_MERCANCIA_SOBRE_FACTURAS_O_TRASLADOS_PREVIOS = '03'
90
    SUSTITUCION_DE_LOS_CFDI_PREVIOS = '04'
91
    TRASLADOS_DE_MERCANCIAS_FACTURADOS_PREVIAMENTE = '05'
92
    FACTURA_GENERADA_POR_LOS_TRASLADOS_PREVIOS = '06'
93
    CFDI_POR_APLICACION_DE_ANTICIPO = '07'
94
    FACTURA_GENERADA_POR_PAGOS_EN_PARCIALIDADES = '08'
95
    FACTURA_GENERADA_POR_PAGOS_DIFERIDOS = '09'
96
97
98
class UsoCFDI(StrEnum):
99
    ADQUISICION_DE_MERCANCIAS = 'G01'
100
    DEVOLUCIONES_DESCUENTOS_O_BONIFICACIONES = 'G02'
101
    GASTOS_EN_GENERAL = 'G03'
102
    CONSTRUCCIONES = 'I01'
103
    MOBILIARIO_Y_EQUIPO_DE_OFICINA_POR_INVERSIONES = 'I02'
104
    EQUIPO_DE_TRANSPORTE = 'I03'
105
    EQUIPO_DE_COMPUTO_Y_ACCESORIOS = 'I04'
106
    DADOS_TROQUELES_MOLDES_MATRICES_Y_HERRAMENTAL = 'I05'
107
    COMUNICACIONES_TELEFONICAS = 'I06'
108
    COMUNICACIONES_SATELITALES = 'I07'
109
    OTRA_MAQUINARIA_Y_EQUIPO = 'I08'
110
    HONORARIOS_MEDICOS_DENTALES_Y_GASTOS_HOSPITALARIOS = 'D01'
111
    GASTOS_MEDICOS_POR_INCAPACIDAD_O_DISCAPACIDAD = 'D02'
112
    GASTOS_FUNERALES = 'D03'
113
    DONATIVOS = 'D04'
114
    INTERESES_REALES_EFECTIVAMENTE_PAGADOS_POR_CREDITOS_HIPOTECARIOS_CASA_HABITACION = 'D05'
115
    APORTACIONES_VOLUNTARIAS_AL_SAR = 'D06'
116
    PRIMAS_POR_SEGUROS_DE_GASTOS_MEDICOS = 'D07'
117
    GASTOS_DE_TRANSPORTACION_ESCOLAR_OBLIGATORIA = 'D08'
118
    DEPOSITOS_EN_CUENTAS_PARA_EL_AHORRO_PRIMAS_QUE_TENGAN_COMO_BASE_PLANES_DE_PENSIONES = 'D09'
119
    PAGOS_POR_SERVICIOS_EDUCATIVOS_COLEGIATURAS = 'D10'
120
    SIN_EFECTOS_FISCALES = 'S01'
121
    PAGOS = 'CP01'
122
    NOMINA = 'CN01'
123
    POR_DEFINIR = 'P01'
124
125
126
class Exportacion(StrEnum):
127
    NO_APLICA = '01'
128
    DEFINITIVA_CON_CLAVE_A1 = '02'
129
    TEMPORAL = '03'
130
    DEFINITIVA_CON_CLAVE_DISTINTA_A_A1_O_CUANDO_NO_EXISTE_ENAJENACION_EN_TERMINOS_DEL_CFF = '04'
131
132
133
class ObjetoImp(StrEnum):
134
    NO_OBJETO_DE_IMPUESTO = '01'
135
    SI_OBJETO_DE_IMPUESTO = '02'
136
    SI_OBJETO_DEL_IMPUESTO_Y_NO_OBLIGADO_AL_DESGLOSE = '03'
137
    SI_OBJETO_DEL_IMPUESTO_Y_NO_CAUSA_IMPUESTO = '04'
138
139
140