1 | """ecc http://www.sat.gob.mx/ecc""" |
||
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 Traslado(ScalarMap): |
||
11 | """ |
||
12 | Nodo para la definición de información detallada de un traslado de impuesto específico |
||
13 | |||
14 | :param impuesto: Atributo requerido para definir el tipo de impuesto trasladado |
||
15 | :param tasa: Atributo requerido para señalar la tasa del impuesto que se traslada por cada concepto amparado en el comprobante |
||
16 | :param importe: Atributo requerido para definir el importe o monto del impuesto trasladado |
||
17 | """ |
||
18 | |||
19 | def __init__( |
||
20 | self, |
||
21 | impuesto: str, |
||
22 | tasa: Decimal | int, |
||
23 | importe: Decimal | int, |
||
24 | ): |
||
25 | super().__init__({ |
||
26 | 'Impuesto': impuesto, |
||
27 | 'Tasa': tasa, |
||
28 | 'Importe': importe, |
||
29 | }) |
||
30 | |||
31 | |||
32 | View Code Duplication | class ConceptoEstadoDeCuentaCombustible(ScalarMap): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
33 | """ |
||
34 | Nodo requerido para la expresión de una transacción a ser reportada en el estado de cuenta del proveedor de monedero electrónico 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 cantidad: Atributo requerido para definir el volumen de combustible adquirido. |
||
41 | :param nombre_combustible: Atributo requerido para expresar el nombre del combustible adquirido. |
||
42 | :param folio_operacion: Atributo requerido para referir el número de folio de cada operación realizada por cada monedero electrónico. |
||
43 | :param valor_unitario: Atributo requerido para definir el precio unitario del combustible adquirido. |
||
44 | :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. |
||
45 | :param traslados: Nodo requerido para enlistar los impuestos trasladados aplicables de combustibles. |
||
46 | """ |
||
47 | |||
48 | def __init__( |
||
49 | self, |
||
50 | identificador: str, |
||
51 | fecha: datetime, |
||
52 | rfc: str, |
||
53 | clave_estacion: str, |
||
54 | cantidad: Decimal | int, |
||
55 | nombre_combustible: str, |
||
56 | folio_operacion: str, |
||
57 | valor_unitario: Decimal | int, |
||
58 | importe: Decimal | int, |
||
59 | traslados: Traslado | dict | Sequence[Traslado | dict], |
||
60 | ): |
||
61 | super().__init__({ |
||
62 | 'Identificador': identificador, |
||
63 | 'Fecha': fecha, |
||
64 | 'Rfc': rfc, |
||
65 | 'ClaveEstacion': clave_estacion, |
||
66 | 'Cantidad': cantidad, |
||
67 | 'NombreCombustible': nombre_combustible, |
||
68 | 'FolioOperacion': folio_operacion, |
||
69 | 'ValorUnitario': valor_unitario, |
||
70 | 'Importe': importe, |
||
71 | 'Traslados': traslados, |
||
72 | }) |
||
73 | |||
74 | |||
75 | class EstadoDeCuentaCombustible(CFDI): |
||
76 | """ |
||
77 | Complemento al Comprobante Fiscal Digital (CFD) y Comprobante Fiscal Digital por Internet (CFDI) para integrar la información aplicable al estado de cuenta emitido por un prestador de servicios de monedero electrónico. |
||
78 | |||
79 | :param numero_de_cuenta: Nodo requerido para expresar el número de cuenta del adquirente del monedero electrónico |
||
80 | :param total: Atributo requerido para expresar el monto total de consumo de combustible. |
||
81 | :param conceptos: Nodo requerido para enlistar los conceptos cubiertos por Estado de Cuenta de Combustible. |
||
82 | :param sub_total: Atributo opcional para representar la suma de todos los importes tipo ConceptoEstadoDeCuentaCombustible. |
||
83 | """ |
||
84 | |||
85 | tag = '{http://www.sat.gob.mx/ecc}EstadoDeCuentaCombustible' |
||
86 | tipo_operacion = 'Tarjeta' |
||
87 | |||
88 | def __init__( |
||
89 | self, |
||
90 | numero_de_cuenta: str, |
||
91 | total: Decimal | int, |
||
92 | conceptos: ConceptoEstadoDeCuentaCombustible | dict | Sequence[ConceptoEstadoDeCuentaCombustible | dict], |
||
93 | sub_total: Decimal | int = None, |
||
94 | ): |
||
95 | super().__init__({ |
||
96 | 'TipoOperacion': self.tipo_operacion, |
||
97 | 'NumeroDeCuenta': numero_de_cuenta, |
||
98 | 'Total': total, |
||
99 | 'Conceptos': conceptos, |
||
100 | 'SubTotal': sub_total, |
||
101 | }) |
||
102 | |||
103 | |||
104 |