1 | """consumodecombustibles11 http://www.sat.gob.mx/ConsumoDeCombustibles11""" |
||
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 Determinado(ScalarMap): |
||
11 | """ |
||
12 | Nodo para la definición de información detallada de un impuesto específico |
||
13 | |||
14 | :param impuesto: Atributo requerido para definir el tipo de impuesto |
||
15 | :param tasa_o_cuota: Atributo requerido para señalar la tasa del impuesto por cada concepto amparado en el comprobante |
||
16 | :param importe: Atributo requerido para definir el importe o monto del impuesto |
||
17 | """ |
||
18 | |||
19 | def __init__( |
||
20 | self, |
||
21 | impuesto: str, |
||
22 | tasa_o_cuota: Decimal | int, |
||
23 | importe: Decimal | int, |
||
24 | ): |
||
25 | super().__init__({ |
||
26 | 'Impuesto': impuesto, |
||
27 | 'TasaOCuota': tasa_o_cuota, |
||
28 | 'Importe': importe, |
||
29 | }) |
||
30 | |||
31 | |||
32 | View Code Duplication | class ConceptoConsumoDeCombustibles(ScalarMap): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
33 | """ |
||
34 | Nodo requerido para la expresión de una transacción para operaciones de compra de combustibles. |
||
35 | |||
36 | :param identificador: Atributo requerido para la expresión del identificador o número del monedero electrónico |
||
37 | :param fecha: Atributo requerido para la expresión de la Fecha y hora de expedición de la operación reportada. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601. |
||
38 | :param rfc: Atributo requerido del RFC del enajenante del combustible |
||
39 | :param clave_estacion: Atributo requerido para expresar la clave de cliente de la estación de servicio, a 10 caracteres, cuando sea requerido. |
||
40 | :param tipo_combustible: Atributo requerido para indicar la clave del tipo de combustible. |
||
41 | :param cantidad: Atributo requerido para definir el volumen de combustible adquirido. |
||
42 | :param nombre_combustible: Atributo requerido para expresar el nombre del combustible adquirido. |
||
43 | :param folio_operacion: Atributo requerido para referir el número de folio de cada operación realizada por cada monedero electrónico. |
||
44 | :param valor_unitario: Atributo requerido para definir el precio unitario del combustible adquirido. |
||
45 | :param importe: Atributo requerido para definir el monto total de consumo de combustible. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario. |
||
46 | :param determinados: Nodo requerido para enlistar los impuestos determinados aplicables de combustibles. |
||
47 | """ |
||
48 | |||
49 | def __init__( |
||
50 | self, |
||
51 | identificador: str, |
||
52 | fecha: datetime, |
||
53 | rfc: str, |
||
54 | clave_estacion: str, |
||
55 | tipo_combustible: str, |
||
56 | cantidad: Decimal | int, |
||
57 | nombre_combustible: str, |
||
58 | folio_operacion: str, |
||
59 | valor_unitario: Decimal | int, |
||
60 | importe: Decimal | int, |
||
61 | determinados: Determinado | dict | Sequence[Determinado | dict], |
||
62 | ): |
||
63 | super().__init__({ |
||
64 | 'Identificador': identificador, |
||
65 | 'Fecha': fecha, |
||
66 | 'Rfc': rfc, |
||
67 | 'ClaveEstacion': clave_estacion, |
||
68 | 'TipoCombustible': tipo_combustible, |
||
69 | 'Cantidad': cantidad, |
||
70 | 'NombreCombustible': nombre_combustible, |
||
71 | 'FolioOperacion': folio_operacion, |
||
72 | 'ValorUnitario': valor_unitario, |
||
73 | 'Importe': importe, |
||
74 | 'Determinados': determinados, |
||
75 | }) |
||
76 | |||
77 | |||
78 | View Code Duplication | class ConsumoDeCombustibles(CFDI): |
|
0 ignored issues
–
show
|
|||
79 | """ |
||
80 | Complemento al Comprobante Fiscal Digital por Internet (CFDI) para integrar la información de consumo de combustibles por monedero electrónico. |
||
81 | |||
82 | :param numero_de_cuenta: Nodo requerido para expresar el número de cuenta del adquirente del monedero electrónico |
||
83 | :param total: Atributo requerido para expresar el monto total de consumo de combustibles. |
||
84 | :param conceptos: Nodo requerido para enlistar los conceptos cubiertos por Consumo de Combustibles. |
||
85 | :param sub_total: Atributo opcional para representar la suma de todos los importes tipo ConceptoConsumoDeCombustibles. |
||
86 | """ |
||
87 | |||
88 | tag = '{http://www.sat.gob.mx/ConsumoDeCombustibles11}ConsumoDeCombustibles' |
||
89 | version = '1.1' |
||
90 | tipo_operacion = 'monedero electrónico' |
||
91 | |||
92 | def __init__( |
||
93 | self, |
||
94 | numero_de_cuenta: str, |
||
95 | total: Decimal | int, |
||
96 | conceptos: ConceptoConsumoDeCombustibles | dict | Sequence[ConceptoConsumoDeCombustibles | dict], |
||
97 | sub_total: Decimal | int = None, |
||
98 | ): |
||
99 | super().__init__({ |
||
100 | 'Version': self.version, |
||
101 | 'TipoOperacion': self.tipo_operacion, |
||
102 | 'NumeroDeCuenta': numero_de_cuenta, |
||
103 | 'Total': total, |
||
104 | 'Conceptos': conceptos, |
||
105 | 'SubTotal': sub_total, |
||
106 | }) |
||
107 | |||
108 | |||
109 |