Issues (158)

satcfdi/create/contabilidad/BCE11.py (2 issues)

1
"""BCE www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion"""
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 View Code Duplication
class Ctas(ScalarMap):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
11
    """
12
    Nodo obligatorio para expresar el detalle de cada cuenta o subcuenta de la balanza de comprobación.
13
    
14
    :param num_cta: Atributo requerido para expresar la clave asignada con que se distingue la cuenta o subcuenta en el catálogo de cuentas del contribuyente.
15
    :param saldo_ini: Atributo requerido para expresar el monto del saldo inicial de la cuenta o subcuenta en el periodo. De acuerdo a la naturaleza de la cuenta o subcuenta, deberá de corresponder el saldo inicial, de lo contrario se entenderá que es un saldo inicial de naturaleza inversa. En caso de no existir dato, colocar cero (0)
16
    :param debe: Atributo requerido para expresar el monto de los movimientos deudores de la cuenta o subcuenta. En caso de no existir dato, colocar cero (0)
17
    :param haber: Atributo requerido para expresar el monto de los movimientos acreedores de la cuenta o subcuenta. En caso de no existir dato, colocar cero (0)
18
    :param saldo_fin: Atributo requerido para expresar el monto del saldo final de la cuenta o subcuenta en el periodo. De acuerdo a la naturaleza de la cuenta o subcuenta, deberá de corresponder el saldo final, de lo contrario se entenderá que es un saldo final de naturaleza inversa. En caso de no existir dato, colocar cero (0)
19
    """
20
    
21
    def __init__(
22
            self,
23
            num_cta: str,
24
            saldo_ini: Decimal | int,
25
            debe: Decimal | int,
26
            haber: Decimal | int,
27
            saldo_fin: Decimal | int,
28
    ): 
29
        super().__init__({
30
            'NumCta': num_cta,
31
            'SaldoIni': saldo_ini,
32
            'Debe': debe,
33
            'Haber': haber,
34
            'SaldoFin': saldo_fin,
35
        })
36
        
37
38 View Code Duplication
class Balanza(CFDI):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
39
    """
40
    Estándar de balanza de comprobación que se entrega como parte de la contabilidad electrónica.
41
    
42
    :param rfc: Atributo requerido para expresar el RFC del contribuyente que envía los datos
43
    :param mes: Atributo requerido para expresar el mes al que corresponde la balanza de comprobación
44
    :param anio: Atributo requerido para expresar el año al que corresponde la balanza
45
    :param tipo_envio: Atributo requerido para expresar el tipo de envío de la balanza (N - Normal; C - Complementaria)
46
    :param ctas: Nodo obligatorio para expresar el detalle de cada cuenta o subcuenta de la balanza de comprobación.
47
    :param fecha_mod_bal: Atributo opcional para expresar la fecha de la última modificación contable de la balanza de comprobación. Es requerido cuando el atributo TipoEnvio = C. Se convierte en requerido cuando se cuente con la información.
48
    :param sello: Atributo opcional para contener el sello digital del archivo de contabilidad electrónica. El sello deberá ser expresado cómo una cadena de texto en formato Base 64
49
    :param no_certificado: Atributo opcional para expresar el número de serie del certificado de sello digital que ampara el archivo de contabilidad electrónica, de acuerdo al acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.
50
    :param certificado: Atributo opcional que sirve para expresar el certificado de sello digital que ampara al archivo de contabilidad electrónica como texto, en formato base 64.
51
    """
52
    
53
    tag = '{www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion}Balanza'
54
    version = '1.1'
55
    
56
    def __init__(
57
            self,
58
            rfc: str,
59
            mes: str,
60
            anio: int,
61
            tipo_envio: str,
62
            ctas: Ctas | dict | Sequence[Ctas | dict],
63
            fecha_mod_bal: date = None,
64
            sello: str = None,
65
            no_certificado: str = None,
66
            certificado: str = None,
67
    ): 
68
        super().__init__({
69
            'Version': self.version,
70
            'RFC': rfc,
71
            'Mes': mes,
72
            'Anio': anio,
73
            'TipoEnvio': tipo_envio,
74
            'Ctas': ctas,
75
            'FechaModBal': fecha_mod_bal,
76
            'Sello': sello,
77
            'NoCertificado': no_certificado,
78
            'Certificado': certificado,
79
        })
80
        
81
82