Agrega información del CFDI de ingreso que pagado
en un comprobante fiscal digital versión 33 de tipo "P"ago.
Esta función se debe utilizar después de llamar a la función VirtualXML_Pagos10SetPago(). Un CFDI de pago puede contener información de uno o varios CFDI de ingresos, aplicados sobre un solo pago, no obstante, un CFDI de pagos puede contener varios pagos que a su vez amparen uno o mas CFDIs pagados total o parcialmente.
Esta función se debe utilizar después de llamar a la función VirtualXML_Pagos10SetPago(). Un CFDI de pago puede contener información de uno o varios CFDI de ingresos, aplicados sobre un solo pago, no obstante, un CFDI de pagos puede contener varios pagos que a su vez amparen uno o mas CFDIs pagados total o parcialmente.
Namespace: VirtualXML®
Aplicación: CFDI ver. 3.3
Sintaxis
public static void VirtualXML_Pagos10AddPagoDoctoRelacionado(
int p,
string idDocumento,
string Serie,
string Folio,
string MonedadDR,
string TipoCambioDR,
string MetodoDePagoDR,
string NumParcialidad,
string ImpSaldoAnt,
string ImpPagado,
string ImpSaldoInsoluto
)
Parametros
- p
- Tipo: System
Int32
Identificador en memoria devuelto por la función VirtualXML_New()
- IdDocumento
- Tipo: System
String
Atributo requerido para expresar el identificador del documento relacionado con el pago. Este dato puede ser un Folio Fiscal de la Factura Electrónica o bien el número de operación de un documento digital.
- Serie
- Tipo: System
String
Atributo opcional para precisar la serie del comprobante para control interno del contribuyente, acepta una cadena de caracteres.
- Folio
- Tipo: System
String
Atributo opcional para precisar el folio del comprobante para control interno del contribuyente, acepta una cadena de caracteres.
- MonedaDR
- Tipo: System
String
Atributo requerido para identificar la clave de la moneda utilizada en los importes del documento relacionado, cuando se usa moneda nacional o el documento relacionado no especifica la moneda se registra MXN. Los importes registrados en los atributos “ImpSaldoAnt”, “ImpPagado” e “ImpSaldoInsoluto” de éste nodo, deben corresponder a esta moneda. Conforme con la especificación ISO 4217.
- TipoCambioDR
- Tipo: System
String
Atributo condicional para expresar el tipo de cambio conforme con la moneda registrada en el documento relacionado. Es requerido cuando la moneda del documento relacionado es distinta de la moneda de pago. Se debe registrar el número de unidades de la moneda señalada en el documento relacionado que equivalen a una unidad de la moneda del pago. Por ejemplo: El documento relacionado se registra en USD El pago se realiza por 100 EUR. Este atributo se registra como 1.114700 USD/EUR. El importe pagado equivale a 100 EUR * 1.114700 USD/EUR = 111.47 USD.
- MetodoDePagoDR
- Tipo: System
String
Atributo requerido para expresar la clave del método de pago que se registró en el documento relacionado.
- NumParcialidad
- Tipo: System
String
Atributo condicional para expresar el número de parcialidad que corresponde al pago. Es requerido cuando MetodoDePagoDR contiene: “PPD” Pago en parcialidades o diferido.
- ImpSaldoAnt
- Tipo: System
String
Atributo condicional para expresar el monto del saldo insoluto de la parcialidad anterior. Es requerido cuando MetodoDePagoDR contiene: “PPD” Pago en parcialidades o diferido.En el caso de que sea la primer parcialidad este campo debe contener el importe total del documento relacionado.
- ImpPagado
- Tipo: System
String
Atributo condicional para expresar el importe pagado para el documento relacionado. Es obligatorio cuando exista más de un documento relacionado o cuando existe un documento relacionado y el TipoCambioDR tiene un valor.
- Tipo: System
String
Atributo condicional para expresar la diferencia entre el importe del saldo anterior y el monto del pago. Es requerido cuando MetodoDePagoDR contiene: “PPD” Pago en parcialidades o diferido.
Ejemplo:
private void GeneraDocto(String version)
{
// Creamos un comprobante
int hXml = VirtualXML_New("3.3");
// Llenado del documento
VirtualXML_SetComprobanteInfo_cfdi33( hXml, "P", "1", "%cb_date", "", "", "0", "","XXX", "", "0", "P", "", "53050", "");
// Datos del emisor
// Datos del receptor
// Concepto, un comprobante de pago solo lleva un concepto fijo:
VirtualXML_AddConcepto_cfdi33( hXml, "84111506", "", "1", "ACT", "", "PAGO", "0", "0", "");
// Asignamos el complemento de pagos:
VirtualXML_SetPagos10( hXml );
// Agregamos un pago con cheque
VirtualXML_Pagos10SetPago( hXml, "2017-05-31T12:00:00", "02", "MXN", "", "1160.00", "652", "BSM970519DU8", "", "002180065145757870", "CFA950629CAA", "002180065145895321", "", "", "", "" );
// Agregamos un documento relacionado al pago anterior
VirtualXML_Pagos10AddPagoDoctoRelacionado( hXml, "FF93C8BE-AF7B-4FC5-8854-6DAE18CFB5B4", "A", "434", "MXN", "", "PPD", "1", "1160.00", "1160.00", "0.00" );
// Agregamos un pago con efectivo
VirtualXML_Pagos10SetPago( hXml, "2017-05-28T12:00:00", "01", "MXN", "", "5800.00", "", "", "", "", "", "", "", "", "", "" );
// Agregamos dos documentos relacionados al pago anterior
VirtualXML_Pagos10AddPagoDoctoRelacionado( hXml, "FDBA380A-9732-4FB5-A6CB-5FB4BD831697", "A", "1354", "MXN", "", "PPD", "2", "2320.00", "1160.00", "1160.00" );
VirtualXML_Pagos10AddPagoDoctoRelacionado( hXml, "BE1D4B47-E167-47A3-8049-70D4D43BCBE8", "C", "2549", "MXN", "", "PPD", "1", "11600.00", "4640.00", "6960.00" );
// Agregamos un pago con SPEI
VirtualXML_Pagos10SetPago( hXml, "2017-05-14T16:29:31", "03", "MXN", "", "2320.00", "BNET01001705190001524424", "BSM970519DU8", "002180065145757870", "CFA950629CAA", "002180065145895321", "01",
"MIIF+TCCA+GgAwIBAgIUMzAwMDEwMDAwMDAzMDAw.....Agregar aqui el certificado del complemento SPEI....",
"||1|02062017|02062017|172956|40002|BBVA BANCOMER....Agregar aqui la cadena del complemento SPEI...",
"RyOPIIajuWTAr3G80+UM/MmW+7u/Te3U+ofJxmZAdTRegHAbtYR2m918iHMFZXsynw+OQM5q+QnrYPTKQhkl3.... Agegar aqui el sello del complemento SPEI ...." );
// Agregamos un documento relacionado al pago anterior
VirtualXML_Pagos10AddPagoDoctoRelacionado( hXml, "D8E18C2F-2859-4927-A0F0-EA3E93642DDC", "A", "1254", "MXN", "", "PPD", "6", "2320.00", "2320.00", "0.00" );
// Procesamiento del documento
// ....
// Lectura de resultados
// ....
// Liberacion de memoria
VirtualXML_Free(hXml);
}
Veáse También