Code Duplication    Length = 63-63 lines in 2 locations

satcfdi/create/cfd/pago10.py 1 location

@@ 120-182 (lines=63) @@
117
        })
118
119
120
class Pago(ScalarMap):
121
    """
122
    Elemento requerido para incorporar la información de la recepción de pagos.
123
124
    :param fecha_pago: Atributo requerido para expresar la fecha y hora en la que el beneficiario recibe el pago. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.En caso de no contar con la hora se debe registrar 12:00:00.
125
    :param forma_de_pago_p: Atributo requerido para expresar la clave de la forma en que se realiza el pago.
126
    :param moneda_p: Atributo requerido para identificar la clave de la moneda utilizada para realizar el pago, cuando se usa moneda nacional se registra MXN. El atributo Pagos:Pago:Monto y los atributos TotalImpuestosRetenidos, TotalImpuestosTrasladados, Traslados:Traslado:Importe y Retenciones:Retencion:Importe del nodo Pago:Impuestos deben ser expresados en esta moneda. Conforme con la especificación ISO 4217.
127
    :param tipo_cambio_p: Atributo condicional para expresar el tipo de cambio de la moneda a la fecha en que se realizó el pago. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo MonedaP. Es requerido cuando el atributo MonedaP es diferente a MXN.
128
    :param num_operacion: Atributo condicional para expresar el número de cheque, número de autorización, número de referencia, clave de rastreo en caso de ser SPEI, línea de captura o algún número de referencia análogo que identifique la operación que ampara el pago efectuado
129
    :param rfc_emisor_cta_ord: Atributo condicional para expresar la clave RFC de la entidad emisora de la cuenta origen, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc., en caso de ser extranjero colocar XEXX010101000, considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
130
    :param nom_banco_ord_ext: Atributo condicional para expresar el nombre del banco ordenante, es requerido en caso de ser extranjero. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
131
    :param cta_ordenante: Atributo condicional para incorporar el número de la cuenta con la que se realizó el pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago
132
    :param rfc_emisor_cta_ben: Atributo condicional para expresar la clave RFC de la entidad operadora de la cuenta destino, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
133
    :param cta_beneficiario: Atributo condicional para incorporar el número de cuenta en donde se recibió el pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
134
    :param tipo_cad_pago: Atributo condicional para identificar la clave del tipo de cadena de pago que genera la entidad receptora del pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
135
    :param cert_pago: Atributo condicional que sirve para incorporar el certificado que ampara al pago, como una cadena de texto en formato base 64. Es requerido en caso de que el atributo TipoCadPago contenga información.
136
    :param cad_pago: Atributo condicional para expresar la cadena original del comprobante de pago generado por la entidad emisora de la cuenta beneficiaria. Es requerido en caso de que el atributo TipoCadPago contenga información.
137
    :param sello_pago: Atributo condicional para integrar el sello digital que se asocie al pago. La entidad que emite el comprobante de pago, ingresa una cadena original y el sello digital en una sección de dicho comprobante, este sello digital es el que se debe registrar en este campo. Debe ser expresado como una cadena de texto en formato base 64. Es requerido en caso de que el atributo TipoCadPago contenga información.
138
    :param docto_relacionado: Nodo condicional para expresar la lista de documentos relacionados con los pagos diferentes de anticipos. Por cada documento que se relacione se debe generar un nodo DoctoRelacionado.
139
    :param impuestos: Nodo condicional para expresar el resumen de los impuestos aplicables cuando este documento sea un anticipo.
140
    """
141
142
    def __init__(
143
            self,
144
            fecha_pago: datetime,
145
            forma_de_pago_p: str,
146
            moneda_p: str,
147
            tipo_cambio_p: Decimal | int = None,
148
            num_operacion: str = None,
149
            rfc_emisor_cta_ord: str = None,
150
            nom_banco_ord_ext: str = None,
151
            cta_ordenante: str = None,
152
            rfc_emisor_cta_ben: str = None,
153
            cta_beneficiario: str = None,
154
            tipo_cad_pago: str = None,
155
            cert_pago: str = None,
156
            cad_pago: str = None,
157
            sello_pago: str = None,
158
            docto_relacionado: Sequence[DoctoRelacionado | dict] = None,
159
            impuestos: Sequence[Impuestos | dict] = None,
160
    ):
161
        super().__init__({
162
            'FechaPago': fecha_pago,
163
            'FormaDePagoP': forma_de_pago_p,
164
            'MonedaP': moneda_p,
165
            'TipoCambioP': tipo_cambio_p,
166
            'NumOperacion': num_operacion,
167
            'RfcEmisorCtaOrd': rfc_emisor_cta_ord,
168
            'NomBancoOrdExt': nom_banco_ord_ext,
169
            'CtaOrdenante': cta_ordenante,
170
            'RfcEmisorCtaBen': rfc_emisor_cta_ben,
171
            'CtaBeneficiario': cta_beneficiario,
172
            'TipoCadPago': tipo_cad_pago,
173
            'CertPago': cert_pago,
174
            'CadPago': cad_pago,
175
            'SelloPago': sello_pago,
176
            'DoctoRelacionado': docto_relacionado,
177
            'Impuestos': impuestos,
178
        })
179
180
181
class Pagos(CFDI):
182
    """
183
    Complemento para el Comprobante Fiscal Digital por Internet (CFDI) para registrar información sobre la recepción de pagos. El emisor de este complemento para recepción de pagos debe ser quien las leyes le obligue a expedir comprobantes por los actos o actividades que realicen, por los ingresos que se perciban o por las retenciones de contribuciones que efectúen.
184
185
    :param pago: Elemento requerido para incorporar la información de la recepción de pagos.

satcfdi/create/cfd/pago20.py 1 location

@@ 130-192 (lines=63) @@
127
        })
128
        
129
130
class Pago(ScalarMap):
131
    """
132
    Elemento requerido para incorporar la información de la recepción de pagos.
133
134
    :param fecha_pago: Atributo requerido para expresar la fecha y hora en la que el beneficiario recibe el pago. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.En caso de no contar con la hora se debe registrar 12:00:00.
135
    :param forma_de_pago_p: Atributo requerido para expresar la clave de la forma en que se realiza el pago.
136
    :param moneda_p: Atributo requerido para identificar la clave de la moneda utilizada para realizar el pago conforme a la especificación ISO 4217. Cuando se usa moneda nacional se registra MXN. El atributo Pagos:Pago:Monto debe ser expresado en la moneda registrada en este atributo.
137
    :param monto: Atributo requerido para expresar el importe del pago.
138
    :param docto_relacionado: Nodo requerido para expresar la lista de documentos relacionados con los pagos. Por cada documento que se relacione se debe generar un nodo DoctoRelacionado.
139
    :param tipo_cambio_p: Atributo condicional para expresar el tipo de cambio de la moneda a la fecha en que se realizó el pago. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo MonedaP. Es requerido cuando el atributo MonedaP es diferente a MXN.
140
    :param num_operacion: Atributo condicional para expresar el número de cheque, número de autorización, número de referencia, clave de rastreo en caso de ser SPEI, línea de captura o algún número de referencia análogo que identifique la operación que ampara el pago efectuado.
141
    :param rfc_emisor_cta_ord: Atributo condicional para expresar la clave RFC de la entidad emisora de la cuenta origen, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc., en caso de ser extranjero colocar XEXX010101000, considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
142
    :param nom_banco_ord_ext: Atributo condicional para expresar el nombre del banco ordenante, es requerido en caso de ser extranjero. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
143
    :param cta_ordenante: Atributo condicional para incorporar el número de la cuenta con la que se realizó el pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
144
    :param rfc_emisor_cta_ben: Atributo condicional para expresar la clave RFC de la entidad operadora de la cuenta destino, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
145
    :param cta_beneficiario: Atributo condicional para incorporar el número de cuenta en donde se recibió el pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
146
    :param tipo_cad_pago: Atributo condicional para identificar la clave del tipo de cadena de pago que genera la entidad receptora del pago. Considerar las reglas de obligatoriedad publicadas en la página del SAT para éste atributo de acuerdo con el catálogo catCFDI:c_FormaPago.
147
    :param cert_pago: Atributo condicional que sirve para incorporar el certificado que ampara al pago, como una cadena de texto en formato base 64. Es requerido en caso de que el atributo TipoCadPago contenga información.
148
    :param cad_pago: Atributo condicional para expresar la cadena original del comprobante de pago generado por la entidad emisora de la cuenta beneficiaria. Es requerido en caso de que el atributo TipoCadPago contenga información.
149
    :param sello_pago: Atributo condicional para integrar el sello digital que se asocie al pago. La entidad que emite el comprobante de pago, ingresa una cadena original y el sello digital en una sección de dicho comprobante, este sello digital es el que se debe registrar en este atributo. Debe ser expresado como una cadena de texto en formato base 64. Es requerido en caso de que el atributo TipoCadPago contenga información.
150
    :param impuestos_p: Nodo condicional para registrar el resumen de los impuestos aplicables conforme al monto del pago recibido, expresados a la moneda de pago.
151
    """
152
153
    def __init__(
154
            self,
155
            fecha_pago: datetime,
156
            forma_de_pago_p: str,
157
            moneda_p: str,
158
            docto_relacionado: Sequence[DoctoRelacionado | dict],
159
            monto: Decimal | int = None,
160
            tipo_cambio_p: Decimal | int = None,
161
            num_operacion: str = None,
162
            rfc_emisor_cta_ord: str = None,
163
            nom_banco_ord_ext: str = None,
164
            cta_ordenante: str = None,
165
            rfc_emisor_cta_ben: str = None,
166
            cta_beneficiario: str = None,
167
            tipo_cad_pago: str = None,
168
            cert_pago: str = None,
169
            cad_pago: str = None,
170
            sello_pago: str = None,
171
    ):
172
        super().__init__({
173
            'FechaPago': fecha_pago,
174
            'FormaDePagoP': forma_de_pago_p,
175
            'MonedaP': moneda_p,
176
            'Monto': monto,
177
            'TipoCambioP': tipo_cambio_p,
178
            'NumOperacion': num_operacion,
179
            'RfcEmisorCtaOrd': rfc_emisor_cta_ord,
180
            'NomBancoOrdExt': nom_banco_ord_ext,
181
            'CtaOrdenante': cta_ordenante,
182
            'RfcEmisorCtaBen': rfc_emisor_cta_ben,
183
            'CtaBeneficiario': cta_beneficiario,
184
            'TipoCadPago': tipo_cad_pago,
185
            'CertPago': cert_pago,
186
            'CadPago': cad_pago,
187
            'SelloPago': sello_pago,
188
            'DoctoRelacionado': docto_relacionado,
189
        })
190
191
192
# MAIN #
193
class Pagos(CFDI):
194
    """
195
    Complemento para el Comprobante Fiscal Digital por Internet (CFDI) para registrar información sobre la recepción de pagos. El emisor de este complemento para recepción de pagos debe ser quien las leyes le obligue a expedir comprobantes por los actos o actividades que realicen, por los ingresos que se perciban o por las retenciones de contribuciones que efectúen.