satcfdi.create.cfd.ecc12.Traslado.__init__()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 10
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nop 4
dl 0
loc 10
rs 9.95
c 0
b 0
f 0
1
"""ecc12 http://www.sat.gob.mx/EstadoDeCuentaCombustible12"""
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_o_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
            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 ConceptoEstadoDeCuentaCombustible(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
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 tipo_combustible: Atributo requerido para indicar la clave del tipo de 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 unidad: Atributo condicional para precisar la unidad de medida.
48
    """
49
    
50
    def __init__(
51
            self,
52
            identificador: str,
53
            fecha: datetime,
54
            rfc: str,
55
            clave_estacion: str,
56
            cantidad: Decimal | int,
57
            tipo_combustible: str,
58
            nombre_combustible: str,
59
            folio_operacion: str,
60
            valor_unitario: Decimal | int,
61
            importe: Decimal | int,
62
            traslados: Traslado | dict | Sequence[Traslado | dict],
63
            unidad: str = None,
64
    ): 
65
        super().__init__({
66
            'Identificador': identificador,
67
            'Fecha': fecha,
68
            'Rfc': rfc,
69
            'ClaveEstacion': clave_estacion,
70
            'Cantidad': cantidad,
71
            'TipoCombustible': tipo_combustible,
72
            'NombreCombustible': nombre_combustible,
73
            'FolioOperacion': folio_operacion,
74
            'ValorUnitario': valor_unitario,
75
            'Importe': importe,
76
            'Traslados': traslados,
77
            'Unidad': unidad,
78
        })
79
        
80
81 View Code Duplication
class EstadoDeCuentaCombustible(CFDI):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
82
    """
83
    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
84
    
85
    :param numero_de_cuenta: Atributo requerido para expresar el número de cuenta del adquirente del monedero electrónico
86
    :param sub_total: Atributo requerido para representar la suma de todos los importes tipo ConceptoEstadoDeCuentaCombustible.
87
    :param total: Atributo requerido para expresar el monto total de consumo de combustible.
88
    :param conceptos: Nodo requerido para enlistar los conceptos cubiertos por Estado de Cuenta de Combustible.
89
    """
90
    
91
    tag = '{http://www.sat.gob.mx/EstadoDeCuentaCombustible12}EstadoDeCuentaCombustible'
92
    version = '1.2'
93
    tipo_operacion = 'Tarjeta'
94
    
95
    def __init__(
96
            self,
97
            numero_de_cuenta: str,
98
            sub_total: Decimal | int,
99
            total: Decimal | int,
100
            conceptos: ConceptoEstadoDeCuentaCombustible | dict | Sequence[ConceptoEstadoDeCuentaCombustible | dict],
101
    ): 
102
        super().__init__({
103
            'Version': self.version,
104
            'TipoOperacion': self.tipo_operacion,
105
            'NumeroDeCuenta': numero_de_cuenta,
106
            'SubTotal': sub_total,
107
            'Total': total,
108
            'Conceptos': conceptos,
109
        })
110
        
111
112