1
|
|
|
"""AuxiliarCtas www.sat.gob.mx/esquemas/ContabilidadE/1_1/AuxiliarCtas""" |
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 DetalleAux(ScalarMap): |
11
|
|
|
""" |
12
|
|
|
Nodo obligatorio para expresar el detalle de los movimientos del periodo de cada uno de los auxiliares |
13
|
|
|
|
14
|
|
|
:param fecha: Atributo requerido para expresar la fecha de registro de la transacción que afecta la cuenta o subcuenta que integra el auxiliar. |
15
|
|
|
:param num_un_iden_pol: Atributo requerido para expresar el número único de identificación de la póliza. El campo deberá contener la clave o nombre utilizado por el contribuyente para diferenciar, el tipo de póliza y el número correspondiente. En un mes ordinario no debe repetirse un mismo número de póliza con la clave o nombre asignado por el contribuyente. |
16
|
|
|
:param concepto: Atributo requerido para expresar el concepto de la transacción que integra el auxiliar. |
17
|
|
|
:param debe: Atributo requerido para expresar el monto del cargo de la cuenta o subcuenta de la transacción que integra el auxiliar. En caso de no existir dato, colocar cero (0) |
18
|
|
|
:param haber: Atributo requerido para expresar el monto del abono de la cuenta o subcuenta de la transacción que integra el auxiliar. En caso de no existir dato, colocar cero (0) |
19
|
|
|
""" |
20
|
|
|
|
21
|
|
|
def __init__( |
22
|
|
|
self, |
23
|
|
|
fecha: date, |
24
|
|
|
num_un_iden_pol: str, |
25
|
|
|
concepto: str, |
26
|
|
|
debe: Decimal | int, |
27
|
|
|
haber: Decimal | int, |
28
|
|
|
): |
29
|
|
|
super().__init__({ |
30
|
|
|
'Fecha': fecha, |
31
|
|
|
'NumUnIdenPol': num_un_iden_pol, |
32
|
|
|
'Concepto': concepto, |
33
|
|
|
'Debe': debe, |
34
|
|
|
'Haber': haber, |
35
|
|
|
}) |
36
|
|
|
|
37
|
|
|
|
38
|
|
View Code Duplication |
class Cuenta(ScalarMap): |
|
|
|
|
39
|
|
|
""" |
40
|
|
|
Nodo obligatorio para expresar los movimientos del periodo de cada uno de los auxiliares de la cuenta y/o subcuenta. |
41
|
|
|
|
42
|
|
|
:param num_cta: Atributo requerido para expresar la clave con que se distingue la cuenta o subcuenta que se afecta por la transacción que integra el auxiliar. |
43
|
|
|
:param des_cta: Atributo requerido para expresar el concepto de la cuenta o subcuenta que se afecta por la transacción que integra el auxiliar. |
44
|
|
|
:param saldo_ini: Atributo requerido para expresar el monto del saldo inicial de la cuenta o subcuenta del periodo del auxiliar. En caso de no existir dato, colocar cero (0) |
45
|
|
|
:param saldo_fin: Atributo requerido para expresar el monto del saldo final de la cuenta o subcuenta del periodo del auxiliar. En caso de no existir dato, colocar cero (0) |
46
|
|
|
:param detalle_aux: Nodo obligatorio para expresar el detalle de los movimientos del periodo de cada uno de los auxiliares |
47
|
|
|
""" |
48
|
|
|
|
49
|
|
|
def __init__( |
50
|
|
|
self, |
51
|
|
|
num_cta: str, |
52
|
|
|
des_cta: str, |
53
|
|
|
saldo_ini: Decimal | int, |
54
|
|
|
saldo_fin: Decimal | int, |
55
|
|
|
detalle_aux: DetalleAux | dict | Sequence[DetalleAux | dict], |
56
|
|
|
): |
57
|
|
|
super().__init__({ |
58
|
|
|
'NumCta': num_cta, |
59
|
|
|
'DesCta': des_cta, |
60
|
|
|
'SaldoIni': saldo_ini, |
61
|
|
|
'SaldoFin': saldo_fin, |
62
|
|
|
'DetalleAux': detalle_aux, |
63
|
|
|
}) |
64
|
|
|
|
65
|
|
|
|
66
|
|
View Code Duplication |
class AuxiliarCtas(CFDI): |
|
|
|
|
67
|
|
|
""" |
68
|
|
|
Estándar de auxiliar de la cuenta o subcuenta del periodo que se entrega como parte de la contabilidad electrónica |
69
|
|
|
|
70
|
|
|
:param rfc: Atributo requerido para expresar el RFC del contribuyente que envía los datos. |
71
|
|
|
:param mes: Atributo requerido para expresar el mes en que inicia la vigencia del auxiliar de la cuenta o subcuenta. |
72
|
|
|
:param anio: Atributo requerido para expresar el año al que inicia la vigencia del auxiliar de la cuenta o subcuenta. |
73
|
|
|
:param tipo_solicitud: Atributo requerido para expresar el tipo de envío del auxiliar de la cuenta o subcuenta ( AF - Acto de Fiscalización; FC - Fiscalización Compulsa; DE - Devolución; CO - Compensación ) |
74
|
|
|
:param cuenta: Nodo obligatorio para expresar los movimientos del periodo de cada uno de los auxiliares de la cuenta y/o subcuenta. |
75
|
|
|
:param num_orden: Atributo opcional para expresar el número de orden asignado al acto de fiscalización al que hace referencia la solicitud del auxiliar de la cuenta o subcuenta. Requerido para tipo de solicitud = AF y FC. Se convierte en requerido cuando se cuente con la información. |
76
|
|
|
:param num_tramite: Atributo opcional para expresar el número de trámite asignado a la solicitud de devolución o compensación al que hace referencia el auxiliar de la cuenta o subcuenta. Requerido para tipo de solicitud = DE o CO. Se convierte en requerido cuando se cuente con la información. |
77
|
|
|
: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 |
78
|
|
|
: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. |
79
|
|
|
: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. |
80
|
|
|
""" |
81
|
|
|
|
82
|
|
|
tag = '{www.sat.gob.mx/esquemas/ContabilidadE/1_1/AuxiliarCtas}AuxiliarCtas' |
83
|
|
|
version = '1.1' |
84
|
|
|
|
85
|
|
|
def __init__( |
86
|
|
|
self, |
87
|
|
|
rfc: str, |
88
|
|
|
mes: str, |
89
|
|
|
anio: int, |
90
|
|
|
tipo_solicitud: str, |
91
|
|
|
cuenta: Cuenta | dict | Sequence[Cuenta | dict], |
92
|
|
|
num_orden: str = None, |
93
|
|
|
num_tramite: str = None, |
94
|
|
|
sello: str = None, |
95
|
|
|
no_certificado: str = None, |
96
|
|
|
certificado: str = None, |
97
|
|
|
): |
98
|
|
|
super().__init__({ |
99
|
|
|
'Version': self.version, |
100
|
|
|
'RFC': rfc, |
101
|
|
|
'Mes': mes, |
102
|
|
|
'Anio': anio, |
103
|
|
|
'TipoSolicitud': tipo_solicitud, |
104
|
|
|
'Cuenta': cuenta, |
105
|
|
|
'NumOrden': num_orden, |
106
|
|
|
'NumTramite': num_tramite, |
107
|
|
|
'Sello': sello, |
108
|
|
|
'NoCertificado': no_certificado, |
109
|
|
|
'Certificado': certificado, |
110
|
|
|
}) |
111
|
|
|
|
112
|
|
|
|
113
|
|
|
|