1
|
|
|
"""AuxiliarCtas http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/AuxiliarCtas"""
|
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 |
|
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
|
1 |
|
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
|
1 |
|
super().__init__({
|
30
|
|
|
'Fecha': fecha,
|
31
|
|
|
'NumUnIdenPol': num_un_iden_pol,
|
32
|
|
|
'Concepto': concepto,
|
33
|
|
|
'Debe': debe,
|
34
|
|
|
'Haber': haber,
|
35
|
|
|
})
|
36
|
|
|
|
37
|
|
|
|
38
|
1 |
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
|
1 |
|
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
|
1 |
|
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
|
1 |
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
|
1 |
|
tag = '{http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/AuxiliarCtas}AuxiliarCtas'
|
83
|
1 |
|
version = '1.3'
|
84
|
|
|
|
85
|
1 |
|
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
|
1 |
|
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
|
|
|
|