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
Duplication
introduced
by
![]() |
|||
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
|
|||
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 |