1 | """ecc11 http://www.sat.gob.mx/EstadoDeCuentaCombustible""" |
||
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 tasao_cuota: Atributo requerido para señalar la tasa o la cuota del impuesto que se traslada por cada concepto amparado en el comprobante. Cuando se registre un porcentaje, por ejemplo 16%, debe expresarse como 0.16 y no como 16.00 |
||
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 | tasao_cuota: Decimal | int, |
||
23 | importe: Decimal | int, |
||
24 | ): |
||
25 | super().__init__({ |
||
26 | 'Impuesto': impuesto, |
||
27 | 'TasaoCuota': tasao_cuota, |
||
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. |
||
40 | :param cantidad: Atributo requerido para definir el volumen de combustible adquirido. |
||
41 | :param no_identificacion: Atributo requerido para indicar la clave del producto del combustible. |
||
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, redondeado a centésimas. |
||
46 | :param traslados: Nodo requerido para enlistar los impuestos trasladados aplicables de combustibles. |
||
47 | :param tar: Atributo condicional para expresar la clave de la Terminal de Almacenamiento y Reparto (CVE TAR), conforme al catálogo publicado en la página de Internet del SAT, mismo que servirá para identificar la cuota por litro conforme a las tablas que publique la Secretaría de Hacienda y Crédito Público para determinar el monto del estímulo fiscal. |
||
48 | :param unidad: Atributo condicional para precisar la unidad de medida. |
||
49 | """ |
||
50 | |||
51 | def __init__( |
||
52 | self, |
||
53 | identificador: str, |
||
54 | fecha: datetime, |
||
55 | rfc: str, |
||
56 | clave_estacion: str, |
||
57 | cantidad: Decimal | int, |
||
58 | no_identificacion: str, |
||
59 | nombre_combustible: str, |
||
60 | folio_operacion: str, |
||
61 | valor_unitario: Decimal | int, |
||
62 | importe: Decimal | int, |
||
63 | traslados: Traslado | dict | Sequence[Traslado | dict], |
||
64 | tar: str = None, |
||
65 | unidad: str = None, |
||
66 | ): |
||
67 | super().__init__({ |
||
68 | 'Identificador': identificador, |
||
69 | 'Fecha': fecha, |
||
70 | 'Rfc': rfc, |
||
71 | 'ClaveEstacion': clave_estacion, |
||
72 | 'Cantidad': cantidad, |
||
73 | 'NoIdentificacion': no_identificacion, |
||
74 | 'NombreCombustible': nombre_combustible, |
||
75 | 'FolioOperacion': folio_operacion, |
||
76 | 'ValorUnitario': valor_unitario, |
||
77 | 'Importe': importe, |
||
78 | 'Traslados': traslados, |
||
79 | 'TAR': tar, |
||
80 | 'Unidad': unidad, |
||
81 | }) |
||
82 | |||
83 | |||
84 | View Code Duplication | class EstadoDeCuentaCombustible(CFDI): |
|
0 ignored issues
–
show
|
|||
85 | """ |
||
86 | Complemento para el 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 |
||
87 | |||
88 | :param numero_de_cuenta: Atributo requerido para expresar el número de cuenta del adquirente del monedero electrónico |
||
89 | :param sub_total: Atributo requerido para representar la suma de todos los importes tipo ConceptoEstadoDeCuentaCombustible. |
||
90 | :param total: Atributo requerido para expresar el monto total de consumo de combustible. |
||
91 | :param conceptos: Nodo requerido para enlistar los conceptos cubiertos por Estado de Cuenta de Combustible. |
||
92 | """ |
||
93 | |||
94 | tag = '{http://www.sat.gob.mx/EstadoDeCuentaCombustible}EstadoDeCuentaCombustible' |
||
95 | version = '1.1' |
||
96 | tipo_operacion = 'Tarjeta' |
||
97 | |||
98 | def __init__( |
||
99 | self, |
||
100 | numero_de_cuenta: str, |
||
101 | sub_total: Decimal | int, |
||
102 | total: Decimal | int, |
||
103 | conceptos: ConceptoEstadoDeCuentaCombustible | dict | Sequence[ConceptoEstadoDeCuentaCombustible | dict], |
||
104 | ): |
||
105 | super().__init__({ |
||
106 | 'Version': self.version, |
||
107 | 'TipoOperacion': self.tipo_operacion, |
||
108 | 'NumeroDeCuenta': numero_de_cuenta, |
||
109 | 'SubTotal': sub_total, |
||
110 | 'Total': total, |
||
111 | 'Conceptos': conceptos, |
||
112 | }) |
||
113 | |||
114 | |||
115 |