1 | """ventavehiculos http://www.sat.gob.mx/ventavehiculos""" |
||
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 TInformacionAduanera(ScalarMap): |
||
11 | """ |
||
12 | Tipo definido para expresar información aduanera |
||
13 | |||
14 | :param numero: Atributo requerido para expresar el número del documento aduanero que ampara la importación del bien. |
||
15 | :param fecha: Atributo requerido para expresar la fecha de expedición del documento aduanero que ampara la importación del bien. |
||
16 | :param aduana: Atributo opcional para precisar la aduana por la que se efectuó la importación del bien. |
||
17 | """ |
||
18 | |||
19 | def __init__( |
||
20 | self, |
||
21 | numero: str, |
||
22 | fecha: date, |
||
23 | aduana: str = None, |
||
24 | ): |
||
25 | super().__init__({ |
||
26 | 'Numero': numero, |
||
27 | 'Fecha': fecha, |
||
28 | 'Aduana': aduana, |
||
29 | }) |
||
30 | |||
31 | |||
32 | View Code Duplication | class Parte(ScalarMap): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
33 | """ |
||
34 | Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el CFDI. |
||
35 | |||
36 | :param cantidad: Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte. |
||
37 | :param descripcion: Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte. |
||
38 | :param unidad: Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte. |
||
39 | :param no_identificacion: Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte. |
||
40 | :param valor_unitario: Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte. |
||
41 | :param importe: Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte. |
||
42 | :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano. |
||
43 | """ |
||
44 | |||
45 | def __init__( |
||
46 | self, |
||
47 | cantidad: Decimal | int, |
||
48 | descripcion: str, |
||
49 | unidad: str = None, |
||
50 | no_identificacion: str = None, |
||
51 | valor_unitario: Decimal | int = None, |
||
52 | importe: Decimal | int = None, |
||
53 | informacion_aduanera: TInformacionAduanera | dict | Sequence[TInformacionAduanera | dict] = None, |
||
54 | ): |
||
55 | super().__init__({ |
||
56 | 'Cantidad': cantidad, |
||
57 | 'Descripcion': descripcion, |
||
58 | 'Unidad': unidad, |
||
59 | 'NoIdentificacion': no_identificacion, |
||
60 | 'ValorUnitario': valor_unitario, |
||
61 | 'Importe': importe, |
||
62 | 'InformacionAduanera': informacion_aduanera, |
||
63 | }) |
||
64 | |||
65 | |||
66 | class VentaVehiculos(CFDI): |
||
67 | """ |
||
68 | Complemento concepto que permite incorporar a los fabricantes, ensambladores o distribuidores autorizados de automóviles nuevos, así como aquéllos que importen automóviles para permanecer en forma definitiva en la franja fronteriza norte del país y en los Estados de Baja California, Baja California Sur y la región parcial del Estado de Sonora, a un Comprobante Fiscal Digital a través de Internet (CFDI) la clave vehicular que corresponda a la versión enajenada y el número de identificación vehicular que corresponda al vehículo enajenado. |
||
69 | |||
70 | :param clave_vehicular: Atributo requerido para precisar Clave vehicular que corresponda a la versión del vehículo enajenado. |
||
71 | :param niv: Atributo requerido para precisar el número de identificación vehicular que corresponda al vehículo enajenado. |
||
72 | :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas. |
||
73 | :param parte: Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el CFDI. |
||
74 | """ |
||
75 | |||
76 | tag = '{http://www.sat.gob.mx/ventavehiculos}VentaVehiculos' |
||
77 | version = '1.1' |
||
78 | |||
79 | def __init__( |
||
80 | self, |
||
81 | clave_vehicular: str, |
||
82 | niv: str, |
||
83 | informacion_aduanera: TInformacionAduanera | dict | Sequence[TInformacionAduanera | dict] = None, |
||
84 | parte: Parte | dict | Sequence[Parte | dict] = None, |
||
85 | ): |
||
86 | super().__init__({ |
||
87 | 'Version': self.version, |
||
88 | 'ClaveVehicular': clave_vehicular, |
||
89 | 'Niv': niv, |
||
90 | 'InformacionAduanera': informacion_aduanera, |
||
91 | 'Parte': parte, |
||
92 | }) |
||
93 | |||
94 | |||
95 |