1 | """decreto http://www.sat.gob.mx/renovacionysustitucionvehiculos""" |
||
2 | from decimal import Decimal |
||
3 | from datetime import datetime, date, time |
||
4 | from collections.abc import Sequence |
||
5 | from ...cfdi import CFDI |
||
6 | from ...xelement import XElement |
||
7 | from ...utils import ScalarMap |
||
8 | |||
9 | |||
10 | class VehiculoNuvoSemEnajenadoFabAlPerm(ScalarMap): |
||
11 | """ |
||
12 | Datos del vehículo nuevo o seminuevo que enajena el fabricante, ensamblador o distribuidor autorizado al permisionario. |
||
13 | |||
14 | :param ano: Atributo requerido para la expresión del año ó año modelo del vehículo nuevo o seminuevo que enajena el fabricante, ensamblador o distribuidor autorizado. |
||
15 | :param num_placas: Atributo requerido para expresar el número de placa metálicas de identificación del servicio público federal o, en su caso, del servicio público de autotransporte de pasajeros urbano o suburbano del vehículo nuevo o seminuevo que enajena el fabricante, ensamblador o distribuidor autorizado. |
||
16 | :param modelo: Atributo opcional para expresar el modelo del vehículo nuevo o seminuevo que enajena el fabricante, ensamblador o distribuidor autorizado. |
||
17 | :param rfc: Atributo opcional para la Clave del Registro Federal de Contribuyentes del arrendatario en el caso de que el adquiriente del vehículo nuevo o seminuevo sea una arrendadora financiera. |
||
18 | """ |
||
19 | |||
20 | def __init__( |
||
21 | self, |
||
22 | ano: int, |
||
23 | num_placas: str, |
||
24 | modelo: str = None, |
||
25 | rfc: str = None, |
||
26 | ): |
||
27 | super().__init__({ |
||
28 | 'Año': ano, |
||
29 | 'NumPlacas': num_placas, |
||
30 | 'Modelo': modelo, |
||
31 | 'RFC': rfc, |
||
32 | }) |
||
33 | |||
34 | |||
35 | View Code Duplication | class VehiculoUsadoEnajenadoPermAlFab(ScalarMap): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
36 | """ |
||
37 | Datos del vehículo usado que enajena el permisionario a cuenta del precio del vehículo nuevo o seminuevo. |
||
38 | |||
39 | :param precio_veh_usado: Atributo requerido que expresa el precio del vehículo usado que el permisionario enajena al fabricante, ensamblador o distribuidor autorizado a cuenta del precio del vehículo nuevo o seminuevo. |
||
40 | :param tipo_veh: Atributo requerido que expresar, según el Decreto, las características del vehículo usado que el permisionario enajena al fabricante, ensamblador o distribuidor autorizado a cuenta del precio del vehículo nuevo o seminuevo, de acuerdo con el catálogo “4. Tipo de vehículo conforme al Decreto por el que se otorgan medidas para la sustitución de vehículos de autotransporte de pasaje y carga”. |
||
41 | :param marca: Atributo requerido para expresar la marca del vehículo usado que se enajena. |
||
42 | :param tipo_o_clase: Atributo requerido para expresar el tipo o clase del vehículo usado que se enajena. |
||
43 | :param ano: Atributo requerido para la expresión del año ó año modelo del vehículo usado que se enajena. |
||
44 | :param num_placas: Atributo requerido para expresar el número de placas metálicas de identificación del servicio público federal o, en su caso, del servicio público de autotransporte de pasajeros urbano o suburbano del vehículo usado que se enajena. |
||
45 | :param num_fol_tarj_cir: Atributo requerido para expresar el número de folio de la tarjeta de circulación del vehículo usado que se enajena. |
||
46 | :param num_fol_aviso_int: Atributo requerido para expresar el número de folio del acuse de recibo del Aviso de Intención para acceder al programa de destrucción. |
||
47 | :param num_ped_im: Atributo requerido para expresar el número de documento aduanero con el cual se importó en definitiva el vehículo usado. |
||
48 | :param aduana: Atributo requerido para precisar la aduana por la que se efectuó la importación del vehículo usado. |
||
49 | :param fecha_regul_veh: Atributo requerido para expresar la fecha del pedimento en el que se regularizó la legal importación definitiva del vehículo usado. Se expresa en la forma aaaa-mm-dd de acuerdo a a especificación ISO 8601 |
||
50 | :param foliofiscal: Atributo requerido para expresar el número de folio fiscal del CFDI expedido por el Centro de Destrucción Autorizado al que se ha incorporado el Complemento Certificado de Destrucción del vehículo usado que enajena el permisionario. |
||
51 | :param modelo: Atributo opcional para la expresión del modelo del vehículo usado que se enajena. |
||
52 | :param niv: Atributo opcional para expresar el número de identificación vehicular del vehículo usado que se enajena. (Cuando exista el NIV deberá incluirse este invariablemente). |
||
53 | :param num_serie: Atributo opcional para expresar el número de serie de la carrocería del vehículo usado que se enajena. (En caso de contar con dicho número se deberá ingresar convirtiéndose en requerido). |
||
54 | :param num_motor: Atributo opcional para expresar el número de motor del vehículo usado que se enajena (En caso de contar con dicho número se deberá ingresar volviéndose requerido). |
||
55 | """ |
||
56 | |||
57 | def __init__( |
||
58 | self, |
||
59 | precio_veh_usado: Decimal | int, |
||
60 | tipo_veh: str, |
||
61 | marca: str, |
||
62 | tipo_o_clase: str, |
||
63 | ano: int, |
||
64 | num_placas: str, |
||
65 | num_fol_tarj_cir: str, |
||
66 | num_fol_aviso_int: str, |
||
67 | num_ped_im: str, |
||
68 | aduana: str, |
||
69 | fecha_regul_veh: date, |
||
70 | foliofiscal: str, |
||
71 | modelo: str = None, |
||
72 | niv: str = None, |
||
73 | num_serie: str = None, |
||
74 | num_motor: str = None, |
||
75 | ): |
||
76 | super().__init__({ |
||
77 | 'PrecioVehUsado': precio_veh_usado, |
||
78 | 'TipoVeh': tipo_veh, |
||
79 | 'Marca': marca, |
||
80 | 'TipooClase': tipo_o_clase, |
||
81 | 'Año': ano, |
||
82 | 'NumPlacas': num_placas, |
||
83 | 'NumFolTarjCir': num_fol_tarj_cir, |
||
84 | 'NumFolAvisoint': num_fol_aviso_int, |
||
85 | 'NumPedIm': num_ped_im, |
||
86 | 'Aduana': aduana, |
||
87 | 'FechaRegulVeh': fecha_regul_veh, |
||
88 | 'Foliofiscal': foliofiscal, |
||
89 | 'Modelo': modelo, |
||
90 | 'NIV': niv, |
||
91 | 'NumSerie': num_serie, |
||
92 | 'NumMotor': num_motor, |
||
93 | }) |
||
94 | |||
95 | |||
96 | class DecretoSustitVehicular(ScalarMap): |
||
97 | """ |
||
98 | Nodo opcional para expresar los datos aplicables al estimulo por la aplicación del Decreto por el que se otorgan medidas para la sustitución de vehículos de autotransporte de pasaje y carga. |
||
99 | |||
100 | :param veh_enaj: Atributo requerido para expresar si el vehículo que el fabricante, ensamblador o distribuidor autorizado enajena al permisionario es nuevo o seminuevo, de acuerdo con el catálogo “2. Vehículo enajenado”. |
||
101 | :param vehiculo_usado_enajenado_perm_al_fab: Datos del vehículo usado que enajena el permisionario a cuenta del precio del vehículo nuevo o seminuevo. |
||
102 | :param vehiculo_nuvo_sem_enajenado_fab_al_perm: Datos del vehículo nuevo o seminuevo que enajena el fabricante, ensamblador o distribuidor autorizado al permisionario. |
||
103 | """ |
||
104 | |||
105 | def __init__( |
||
106 | self, |
||
107 | veh_enaj: str, |
||
108 | vehiculo_usado_enajenado_perm_al_fab: VehiculoUsadoEnajenadoPermAlFab | dict, |
||
109 | vehiculo_nuvo_sem_enajenado_fab_al_perm: VehiculoNuvoSemEnajenadoFabAlPerm | dict, |
||
110 | ): |
||
111 | super().__init__({ |
||
112 | 'VehEnaj': veh_enaj, |
||
113 | 'VehiculoUsadoEnajenadoPermAlFab': vehiculo_usado_enajenado_perm_al_fab, |
||
114 | 'VehiculoNuvoSemEnajenadoFabAlPerm': vehiculo_nuvo_sem_enajenado_fab_al_perm, |
||
115 | }) |
||
116 | |||
117 | |||
118 | View Code Duplication | class VehiculosUsadosEnajenadoPermAlFab(ScalarMap): |
|
0 ignored issues
–
show
|
|||
119 | """ |
||
120 | Datos del vehículo o vehículos usados que enajena el permisionario a cuenta del precio del vehículo nuevo o seminuevo (pueden enajenarse 1 o más vehículos, por lo que de ser 2 o más se deberán llenar tantos elementos como vehículos usados se enajenen). |
||
121 | |||
122 | :param precio_veh_usado: Atributo requerido que expresa el precio del vehículo usado que el permisionario enajena al fabricante, ensamblador o distribuidor autorizado a cuenta del precio del vehículo nuevo o seminuevo. |
||
123 | :param tipo_veh: Atributo requerido para expresar, según el Decreto, el tipo de vehículo usado que enajena el permisionario, de acuerdo con el catálogo “3. Tipo de Vehículo conforme al Decreto por el que se fomenta la renovación del parque vehicular del autotransporte”. |
||
124 | :param marca: Atributo requerido para expresar la marca del vehículo usado que se enajena. |
||
125 | :param tipo_o_clase: Atributo requerido para expresar el tipo o clase del vehículo usado que se enajena. |
||
126 | :param ano: Atributo requerido para la expresión del año ó año modelo del vehículo usado que se enajena. |
||
127 | :param num_placas: Atributo requerido para expresar el número de placas metálicas de identificación del servicio público federal o, en su caso, del servicio público de autotransporte de pasajeros urbano o suburbano del vehículo usado que se enajena. |
||
128 | :param num_fol_tarj_cir: Atributo requerido para expresar el número de folio de la tarjeta de circulación del vehículo usado que se enajena. |
||
129 | :param foliofiscal: Atributo requerido para expresar el número de folio fiscal del CFDI expedido por el Centro de Destrucción Autorizado al que se ha incorporado el Complemento Certificado de Destrucción del vehículo usado que enajena el permisionario. |
||
130 | :param modelo: Atributo opcional para la expresión del modelo del vehículo usado que se enajena. |
||
131 | :param niv: Atributo opcional para expresar el número de identificación vehicular del vehículo usado que se enajena. (Cuando exista el NIV deberá incluirse este invariablemente). |
||
132 | :param num_serie: Atributo opcional para expresar el número de serie de la carrocería del vehículo usado que se enajena. (En caso de contar con dicho número se deberá ingresar convirtiéndose en requerido). |
||
133 | :param num_motor: Atributo opcional para expresar el número de motor del vehículo usado que se enajena (En caso de contar con dicho número se deberá ingresar volviéndose requerido). |
||
134 | :param num_ped_im: Atributo opcional para expresar el número de documento aduanero con el cual se importó en definitiva el vehículo usado, en su caso. |
||
135 | :param aduana: Atributo opcional para precisar la aduana por la que se efectuó la importación del vehículo usado, en su caso. |
||
136 | :param fecha_regul_veh: Atributo opcional para expresar la fecha del pedimento en el que se regularizó la legal importación definitiva del vehículo usado, en su caso. Se expresa en la forma aaaa-mm-dd de acuerdo a especificación ISO 8601. |
||
137 | """ |
||
138 | |||
139 | def __init__( |
||
140 | self, |
||
141 | precio_veh_usado: Decimal | int, |
||
142 | tipo_veh: str, |
||
143 | marca: str, |
||
144 | tipo_o_clase: str, |
||
145 | ano: int, |
||
146 | num_placas: str, |
||
147 | num_fol_tarj_cir: str, |
||
148 | foliofiscal: str, |
||
149 | modelo: str = None, |
||
150 | niv: str = None, |
||
151 | num_serie: str = None, |
||
152 | num_motor: str = None, |
||
153 | num_ped_im: str = None, |
||
154 | aduana: str = None, |
||
155 | fecha_regul_veh: date = None, |
||
156 | ): |
||
157 | super().__init__({ |
||
158 | 'PrecioVehUsado': precio_veh_usado, |
||
159 | 'TipoVeh': tipo_veh, |
||
160 | 'Marca': marca, |
||
161 | 'TipooClase': tipo_o_clase, |
||
162 | 'Año': ano, |
||
163 | 'NumPlacas': num_placas, |
||
164 | 'NumFolTarjCir': num_fol_tarj_cir, |
||
165 | 'Foliofiscal': foliofiscal, |
||
166 | 'Modelo': modelo, |
||
167 | 'NIV': niv, |
||
168 | 'NumSerie': num_serie, |
||
169 | 'NumMotor': num_motor, |
||
170 | 'NumPedIm': num_ped_im, |
||
171 | 'Aduana': aduana, |
||
172 | 'FechaRegulVeh': fecha_regul_veh, |
||
173 | }) |
||
174 | |||
175 | |||
176 | class DecretoRenovVehicular(ScalarMap): |
||
177 | """ |
||
178 | Nodo opcional para expresar los datos aplicables al estimulo por la aplicación del Decreto por el que se fomenta la renovación del parque vehicular del autotransporte. |
||
179 | |||
180 | :param veh_enaj: Atributo requerido para expresar si el vehículo que el fabricante, ensamblador o distribuidor autorizado enajena al permisionario es nuevo o seminuevo, de acuerdo con el catálogo “2. Vehículo enajenado”. |
||
181 | :param vehiculos_usados_enajenado_perm_al_fab: Datos del vehículo o vehículos usados que enajena el permisionario a cuenta del precio del vehículo nuevo o seminuevo (pueden enajenarse 1 o más vehículos, por lo que de ser 2 o más se deberán llenar tantos elementos como vehículos usados se enajenen). |
||
182 | :param vehiculo_nuvo_sem_enajenado_fab_al_perm: Datos del vehículo nuevo o seminuevo que enajena el fabricante, ensamblador o distribuidor autorizado al permisionario. |
||
183 | """ |
||
184 | |||
185 | def __init__( |
||
186 | self, |
||
187 | veh_enaj: str, |
||
188 | vehiculos_usados_enajenado_perm_al_fab: VehiculosUsadosEnajenadoPermAlFab | dict | Sequence[VehiculosUsadosEnajenadoPermAlFab | dict], |
||
189 | vehiculo_nuvo_sem_enajenado_fab_al_perm: VehiculoNuvoSemEnajenadoFabAlPerm | dict, |
||
190 | ): |
||
191 | super().__init__({ |
||
192 | 'VehEnaj': veh_enaj, |
||
193 | 'VehiculosUsadosEnajenadoPermAlFab': vehiculos_usados_enajenado_perm_al_fab, |
||
194 | 'VehiculoNuvoSemEnajenadoFabAlPerm': vehiculo_nuvo_sem_enajenado_fab_al_perm, |
||
195 | }) |
||
196 | |||
197 | |||
198 | class Renovacionysustitucionvehiculos(CFDI): |
||
199 | """ |
||
200 | Complemento para incorporar la información relativa a los estímulos por la renovación del parque vehicular del autotransporte y por el que se otorgan medidas para la sustitución de vehículos de autotransporte de pasaje y carga. |
||
201 | |||
202 | :param tipo_de_decreto: Atributo requerido que indica el Decreto de cuya aplicación se trate, de acuerdo con el catálogo “1. Tipo de Decreto”. |
||
203 | :param decreto_renov_vehicular: Nodo opcional para expresar los datos aplicables al estimulo por la aplicación del Decreto por el que se fomenta la renovación del parque vehicular del autotransporte. |
||
204 | :param decreto_sustit_vehicular: Nodo opcional para expresar los datos aplicables al estimulo por la aplicación del Decreto por el que se otorgan medidas para la sustitución de vehículos de autotransporte de pasaje y carga. |
||
205 | """ |
||
206 | |||
207 | tag = '{http://www.sat.gob.mx/renovacionysustitucionvehiculos}renovacionysustitucionvehiculos' |
||
208 | version = '1.0' |
||
209 | |||
210 | def __init__( |
||
211 | self, |
||
212 | tipo_de_decreto: str, |
||
213 | decreto_renov_vehicular: DecretoRenovVehicular | dict = None, |
||
214 | decreto_sustit_vehicular: DecretoSustitVehicular | dict = None, |
||
215 | ): |
||
216 | super().__init__({ |
||
217 | 'Version': self.version, |
||
218 | 'TipoDeDecreto': tipo_de_decreto, |
||
219 | 'DecretoRenovVehicular': decreto_renov_vehicular, |
||
220 | 'DecretoSustitVehicular': decreto_sustit_vehicular, |
||
221 | }) |
||
222 | |||
223 | |||
224 |