Issues (158)

satcfdi/create/cfd/consumodecombustibles11.py (2 issues)

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
This code seems to be duplicated in your project.
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
This code seems to be duplicated in your project.
Loading history...
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