SAT-CFDI /
python-satcfdi
| 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
Loading history...
|
|||
| 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 |