on 08-20-2014 4:09 PM
Buen día,
Estoy elaborando el desarrollo de una interfaz para subir documentos preliminares, me funciona bien pero si solo es una sola forma de pago, cuando el cliente paga con efectivo y cheque cuales son los objetos o métodos a emplear?
este es mi código de ejemplo
public String CargarDocPreliminar()//(BoClassCobranza cobranza, IEnumerable<BoClassCobranzaDetalle> detallecobranza, IEnumerable<BoClassCobranzaPago> cobranzaPago)
{
oCompany = new SAPbobsCOM.Company();
Int32 lRetCode, temp, errCode;
String strDocEntry, errMsg;
String _mensaje = String.Empty;
try
{
Conectar();
SAPbobsCOM.Payments _borrador = oCompany.GetBusinessObject(BoObjectTypes.oPaymentsDrafts);
_borrador.DocObjectCode = BoPaymentsObjectType.bopot_IncomingPayments;
_borrador.DocType = BoRcptTypes.rCustomer;
_borrador.CardCode = "9825";
_borrador.HandWritten = SAPbobsCOM.BoYesNoEnum.tNO;
// String _cadenaVendedor = "select SlpCode from OSLP where slpname like '" + '%' + pedido.CodigoVendedor + '%' + "'";
// String _itemVendedor = DalClass.SeleccionarEscalar(_conexionXML, _cadenaVendedor);
//esto se obtiene del archivo
_borrador.DocDate = Convert.ToDateTime("13/08/2014"); // verificar si es la fecha del pago
_borrador.DocCurrency = "BS";
//esto se obtiene del archivo o el total de la suma de las lineas del documento.
_borrador.CashSum = 1965.99;
//_borrador.p 1965.99;
//esto se obtiene del config.xml
_borrador.ControlAccount = "1122002";
//esto se obtiene del config.xml
_borrador.CashAccount = "1111001";//7111008 _boConexion.CuentaEfectivo;
_borrador.TaxDate = Convert.ToDateTime("13/08/2014");
String _numeroFactura = "857233";
String _cadenax = "Select DocEntry from OINV where docnum = '" + _numeroFactura + "'";
String _itemx = DalClass.SeleccionarEscalar(_conexionXML, _cadenax);
//este es el numero de factura en SAP
_borrador.Invoices.DocEntry = Convert.ToInt32(_itemx); // 857230;
//este es el total de la factura
_borrador.Invoices.SumApplied = 1965.99; //10589.43;
// se debe indicar el numero de linea de la factura
_borrador.Invoices.DocLine = 1;
//se agrega la linea
_borrador.Invoices.Add();
//int contador = 0;
//foreach (var item in detallecobranza)
//{
//_borrador.Invoices.DocEntry = 14;
//_borrador.Invoices.SumApplied = 5000.60;
//_borrador.Invoices.DocLine = 1;
//_borrador.Invoices.Add();
//if (contador != 0)
//{ _borrador.Lines.Add(); }
// contador++;
//}
Program.log.Info("Registro cardcode " + _borrador.CardCode + " DocDate: " + _borrador.DocDate + " Total: "
+ _borrador.CashSum + " DocEntry: " + _borrador.Invoices.DocEntry);
lRetCode = _borrador.Add();
if (lRetCode != 0)
{
oCompany.GetLastError(out errCode, out errMsg);
_mensaje = "Error de SAP: " + errMsg;
}
else
{
oCompany.GetNewObjectCode(out strDocEntry);
temp = Convert.ToInt32(strDocEntry);
_mensaje = "Documento con cardcode " +_borrador.CardCode + " fue creado con el número de documento preliminar "+ strDocEntry.ToString();
}
Program.log.Info(_mensaje);
listBoxProcesamiento.Items.Add(_mensaje);
}
catch (Exception ex)
{
_mensaje = ex.Message;
listBoxProcesamiento.Items.Add(_mensaje);
Program.log.Info(_mensaje);
}
return _mensaje;
}
Saludos.
Hola,
debes utilizar la propiedad Checks del objeto. Te dejo un ejemplo de su uso.
vPay.Checks.AccounttNum = "384838"
vPay.Checks.BankCode = "CB"
vPay.Checks.Branch = "Branch"
vPay.Checks.CheckNumber = 3838383
vPay.Checks.CheckSum = 4031.2
vPay.Checks.Currency = "Eur"
vPay.Checks.Details = "test1"
vPay.Checks.DueDate = CDate("31/12/2002")
vPay.Checks.LineNum = 0
vPay.Checks.Trnsfrable = 0
Call vPay.Checks.Add
Espero ser de ayuda.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hay algo que no entiendo, las facturas deben estar asociadas al pago?
el problema es que yo recibo un lote de facturas y pagos asociados a ellas, mas no me indican que la factura 1 tiene asociado el pago 1,2,3. como hago para pasar esas facturas sin asociarlas a los pagos?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Alejandro,
Lo que pasa es que recibo las cobranzas, son 5 facturas numero
12
13
14
15
16
Pero me dicen de allí se pago con los documentos efectivo, cheque, transferencia pero no me dicen a que factura esta asociado cada pago, sino me dicen un lote de transacciones asociadas asociadas a todas.
Como hago para pasar eso es decir, a traves del objeto del SDK asociarle todos esos pagos a esas facturas, sin tener que hacerlo una a una.
Si ves mi codigo hasta donde entendi hay que darle el numero de factura, de alli buscar el docentry y asociarle pagos. Pero asi no me sirve.
Hola,
El problema es que si debes saber que factura o grupo de facturas para cada recibo. Es la unica manera de asociarlas.
En tu codigo veo una function DalClase.SeleccionarEscalar, me imagino que con esta haces la consulta para traer el DocEntry, pero esta te esta retornando valores?
En el caso de un recibo que tiene multiples facturas debes realizar esas lineas de codigo de asociar la factura y el monto pagado por cada factura del mismo recibo.
ejemplo con mi problema real
Archivo de cabecera
06000260|2091502.49|20140820 000000|10326|OF0302|
Archivo de "detalle documento"
06000260|5|20020818 000000|2020668.40|0.05|0.00|0.00|0.00|0.00|DI|
06000260|860395|20020815 000000|50130.93|0.00|0.00|0.00|0.00|0.00|DI|
06000260|860396|20020815 000000|20703.11|0.00|706.41|0.00|0.00|0.00|DI|
Archivo de "detalle de pago"
06000260|6555|Deposito|50130.93|0108|
06000260|65422|Cheque|9000.00|0102|
06000260|542155|Transferencia|10996.70|0102|
06000260|665544|Cheque|1000000.00|0121|
06000260|632555|Deposito|1020668.45|0102|
Observa que no tengo relación entre el detalle de pago y detalle documento que me diga como se pago el documento "860396", es decir, no se si fue con deposito solo, o fue cheque con deposito, como hago para pasarlo todo eso con el objeto del SDK?
Saludos.
Hola,
Creo que solo estas viendo las cosas un poco mal. Yo tengo un recibo con N cantidad de formas de pago y N facturas. Cada factura no interesa con que fue pagado, la forma de pago es para el recibo. Lo que interesa es saber que factura fue cancelada con el recibo.
Por lo que en ese caso tendrias algo asi (de manera resumida)
Borrador = new objeto Borrador
Borrador.Numero = 06000260
//Agrego formas de pago.
Por cada forma de pago
Si Deposito
Agrego forma de pago deposito
Si transferencia
Agrego forma de pago Transferencia
Si Cheque
Agrego forma de pago Cheque
Si Tarjeta de Credito
Agrego forma de pago tarjeta Credito
Fin Por cada forma de pago.
//Agrego documentos asociados
Por cada documento asociado
Busco el DocEntry
Borrador.Invoice.DocEntry = Numero
Borrador.Invoice.SumApplied = Monto aplicado a la factura
Borrador.Invoice.Add; 'La linea de la factura no es obligatoria.
Fin de por cada documento asociado
Borrador.Add.
De esta forma tu pago, queda asociado a las N facturas con las N formas de pago.
espero haberme explicado bien.
User | Count |
---|---|
98 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.