Code Duplication    Length = 35-39 lines in 5 locations

satcfdi/create/cfd/cfdi40.py 1 location

@@ 100-138 (lines=39) @@
97
        })
98
99
100
class Parte(ScalarMap):
101
    """
102
    Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet.
103
104
    :param clave_prod_serv: Atributo requerido para expresar la clave del producto o del servicio amparado por la presente parte. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.
105
    :param cantidad: Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.
106
    :param descripcion: Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.
107
    :param no_identificacion: Atributo opcional para expresar el número de serie, número de parte del bien o identificador del producto o del servicio amparado por la presente parte. Opcionalmente se puede utilizar claves del estándar GTIN.
108
    :param unidad: Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en la parte. La unidad debe corresponder con la descripción de la parte.
109
    :param valor_unitario: Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte. No se permiten valores negativos.
110
    :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. No se permiten valores negativos.
111
    :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.
112
    """
113
114
    def __init__(
115
            self,
116
            clave_prod_serv: str,
117
            cantidad: Decimal | int,
118
            descripcion: str,
119
            no_identificacion: str = None,
120
            unidad: str = None,
121
            valor_unitario: Decimal | int = None,
122
            importe: Decimal | int = None,
123
            informacion_aduanera: str | Sequence[str] = None,
124
    ):
125
        super().__init__({
126
            'ClaveProdServ': clave_prod_serv,
127
            'Cantidad': cantidad,
128
            'Descripcion': descripcion,
129
            'NoIdentificacion': no_identificacion,
130
            'Unidad': unidad,
131
            'ValorUnitario': valor_unitario,
132
            'Importe': importe,
133
            'InformacionAduanera': informacion_aduanera,
134
        })
135
136
137
class ACuentaTerceros(ScalarMap):
138
    """
139
    Nodo opcional para registrar información del contribuyente Tercero, a cuenta del que se realiza la operación.
140
141
    :param rfc_a_cuenta_terceros: Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes del contribuyente Tercero, a cuenta del que se realiza la operación.

satcfdi/create/cfd/cfdi32.py 1 location

@@ 182-216 (lines=35) @@
179
        })
180
        
181
182
class Parte(ScalarMap):
183
    """
184
    Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital a través de Internet
185
    
186
    :param cantidad: Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.
187
    :param descripcion: Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.
188
    :param unidad: Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.
189
    :param no_identificacion: Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.
190
    :param valor_unitario: Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.
191
    :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.
192
    :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.
193
    """
194
    
195
    def __init__(
196
            self,
197
            cantidad: Decimal | int,
198
            descripcion: str,
199
            unidad: str = None,
200
            no_identificacion: str = None,
201
            valor_unitario: Decimal | int = None,
202
            importe: Decimal | int = None,
203
            informacion_aduanera: TInformacionAduanera | dict | Sequence[TInformacionAduanera | dict] = None,
204
    ): 
205
        super().__init__({
206
            'Cantidad': cantidad,
207
            'Descripcion': descripcion,
208
            'Unidad': unidad,
209
            'NoIdentificacion': no_identificacion,
210
            'ValorUnitario': valor_unitario,
211
            'Importe': importe,
212
            'InformacionAduanera': informacion_aduanera,
213
        })
214
        
215
216
class Concepto(ScalarMap):
217
    """
218
    Nodo para introducir la información detallada de un bien o servicio amparado en el comprobante.
219
    

satcfdi/create/cfd/terceros11.py 1 location

@@ 73-107 (lines=35) @@
70
        })
71
        
72
73
class Parte(ScalarMap):
74
    """
75
    Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el CFD o CFDI
76
    
77
    :param cantidad: Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.
78
    :param descripcion: Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.
79
    :param unidad: Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.
80
    :param no_identificacion: Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.
81
    :param valor_unitario: Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.
82
    :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.
83
    :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.
84
    """
85
    
86
    def __init__(
87
            self,
88
            cantidad: Decimal | int,
89
            descripcion: str,
90
            unidad: str = None,
91
            no_identificacion: str = None,
92
            valor_unitario: Decimal | int = None,
93
            importe: Decimal | int = None,
94
            informacion_aduanera: TInformacionAduanera | dict | Sequence[TInformacionAduanera | dict] = None,
95
    ): 
96
        super().__init__({
97
            'Cantidad': cantidad,
98
            'Descripcion': descripcion,
99
            'Unidad': unidad,
100
            'NoIdentificacion': no_identificacion,
101
            'ValorUnitario': valor_unitario,
102
            'Importe': importe,
103
            'InformacionAduanera': informacion_aduanera,
104
        })
105
        
106
107
class InformacionAduanera(ScalarMap):
108
    """
109
    Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas.
110
    

satcfdi/create/cfd/ventavehiculos11.py 1 location

@@ 30-64 (lines=35) @@
27
        })
28
        
29
30
class Parte(ScalarMap):
31
    """
32
    Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el CFDI.
33
    
34
    :param cantidad: Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.
35
    :param descripcion: Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.
36
    :param unidad: Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.
37
    :param no_identificacion: Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.
38
    :param valor_unitario: Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.
39
    :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.
40
    :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.
41
    """
42
    
43
    def __init__(
44
            self,
45
            cantidad: Decimal | int,
46
            descripcion: str,
47
            unidad: str = None,
48
            no_identificacion: str = None,
49
            valor_unitario: Decimal | int = None,
50
            importe: Decimal | int = None,
51
            informacion_aduanera: TInformacionAduanera | dict | Sequence[TInformacionAduanera | dict] = None,
52
    ): 
53
        super().__init__({
54
            'Cantidad': cantidad,
55
            'Descripcion': descripcion,
56
            'Unidad': unidad,
57
            'NoIdentificacion': no_identificacion,
58
            'ValorUnitario': valor_unitario,
59
            'Importe': importe,
60
            'InformacionAduanera': informacion_aduanera,
61
        })
62
        
63
64
class VentaVehiculos(CFDI):
65
    """
66
    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.
67
    

satcfdi/create/cfd/cfdi33.py 1 location

@@ 32-70 (lines=39) @@
29
        })
30
31
32
class Parte(ScalarMap):
33
    """
34
    Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet.
35
36
    :param clave_prod_serv: Atributo requerido para expresar la clave del producto o del servicio amparado por la presente parte. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.
37
    :param cantidad: Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.
38
    :param descripcion: Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.
39
    :param no_identificacion: Atributo opcional para expresar el número de serie, número de parte del bien o identificador del producto o del servicio amparado por la presente parte. Opcionalmente se puede utilizar claves del estándar GTIN.
40
    :param unidad: Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en la parte. La unidad debe corresponder con la descripción de la parte.
41
    :param valor_unitario: Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte. No se permiten valores negativos.
42
    :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. No se permiten valores negativos.
43
    :param informacion_aduanera: Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.
44
    """
45
46
    def __init__(
47
            self,
48
            clave_prod_serv: str,
49
            cantidad: Decimal | int,
50
            descripcion: str,
51
            no_identificacion: str = None,
52
            unidad: str = None,
53
            valor_unitario: Decimal | int = None,
54
            importe: Decimal | int = None,
55
            informacion_aduanera: str | Sequence[str] = None,
56
    ):
57
        super().__init__({
58
            'ClaveProdServ': clave_prod_serv,
59
            'Cantidad': cantidad,
60
            'Descripcion': descripcion,
61
            'NoIdentificacion': no_identificacion,
62
            'Unidad': unidad,
63
            'ValorUnitario': valor_unitario,
64
            'Importe': importe,
65
            'InformacionAduanera': informacion_aduanera,
66
        })
67
68
69
class Traslado(ScalarMap):
70
    """
71
    Nodo requerido para la información detallada de un traslado de impuesto específico.
72
73
    :param base: Atributo requerido para señalar la suma de los atributos Base de los conceptos del impuesto trasladado. No se permiten valores negativos.