1
|
|
|
"""BCE http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion""" |
2
|
1 |
|
from decimal import Decimal |
3
|
1 |
|
from datetime import datetime, date, time |
4
|
1 |
|
from collections.abc import Sequence |
5
|
1 |
|
from ...cfdi import CFDI |
6
|
1 |
|
from ...xelement import XElement |
7
|
1 |
|
from ...utils import ScalarMap |
8
|
|
|
|
9
|
|
|
|
10
|
1 |
View Code Duplication |
class Ctas(ScalarMap): |
|
|
|
|
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
|
1 |
|
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
|
1 |
View Code Duplication |
class Balanza(CFDI): |
|
|
|
|
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 tipo de Envío es complementario. |
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
|
1 |
|
tag = '{http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion}Balanza' |
54
|
1 |
|
version = '1.3' |
55
|
|
|
|
56
|
1 |
|
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
|
1 |
|
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
|
|
|
|