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): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
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): |
|
0 ignored issues
–
show
|
|||
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 |