Issues (158)

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

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
This code seems to be duplicated in your project.
Loading history...
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