on 01-20-2016 1:44 PM
Hola expertos,
tengo que generar una factura con la DI API en estado impreso pero no logro hacerlo.
Realice los cambios directamente en la DB y se que para que el estado se muestre como impreso los campos 'Printed' y 'InvntSttus' (tabla 'OINV') deben tener valores 'Y' y 'O' respectivamente.
código donde seteo datos para factura:
public static SAPbobsCOM.Documents facturaPuc;
facturaPuc.DocumentSubType = SAPbobsCOM.BoDocumentSubType.bod_InvoiceExempt;
facturaPuc.CardCode = (string)rdrOFEPUC["cardCode"];
facturaPuc.DocTotal = Convert.ToInt32(rdrOFEPUC["monto_total"]);
facturaPuc.UserFields.Fields.Item("U_DirInfo").Value = facturaPuc.Lines.UserFields.Fields.Item("U_DetLarg").Value;
facturaPuc.DocCurrency = strTipoMoneda;
facturaPuc.FolioNumber = Convert.ToInt32(rdrOFEPUC["nro_factura"]);
facturaPuc.FolioPrefixString = "34";
facturaPuc.Indicator = "34";
facturaPuc.PaymentGroupCode = iCondicionPagoSap;//Condicion de pago SAP
facturaPuc.UserFields.Fields.Item("U_N_OFE").Value = "E" + Convert.ToString(rdrOFEPUC["num_ofe"]);
NumeroOFE = Convert.ToString(rdrOFEPUC["num_ofe"]);
facturaPuc.UserFields.Fields.Item("U_DirDesp").Value = rdrOFEPUC["direccion_facturacion"].ToString();
facturaPuc.UserFields.Fields.Item("U_Tipo_Factura").Value = tipo_factura;
facturaPuc.UserFields.Fields.Item("U_Observaciones").Value = rdrOFEPUC["observaciones"].ToString();
facturaPuc.UserFields.Fields.Item("U_Orden_Compra").Value = rdrOFEPUC["num_orden_o_cotizacion"].ToString();
facturaPuc.UserFields.Fields.Item("U_Atencion").Value = rdrOFEPUC["atencion"].ToString();
facturaPuc.UserFields.Fields.Item("U_Email").Value = rdrOFEPUC["email"].ToString();
facturaPuc.UserFields.Fields.Item("U_Telefono").Value = rdrOFEPUC["telefono"].ToString();
facturaPuc.JournalMemo = "Facturas clientes - " + (string)rdrOFEPUC["cardCode"]; //Memo finanzas
facturaPuc.Printed = SAPbobsCOM.PrintStatusEnum.psYes; //Intento cambiar estado a impresa
Cuando se crea la factura sigue estando el estado como abierto y no como imprimido.
Favor alguien pueda ayudarme , lo agradecería muchísimo.
Saludos!!
Hola
seguramente te falte por actualizar otro u otros campos.
Te propongo dos opciones:
1. grabar la factura, buscarla y actualizar el estado mediante SDK.
2. comparar por SQL dos registros de factura, uno impreso y otro pendiente, buscar las diferencias y probar con los campos que difieren.
Me gusta más la primera opción porque el flujo es grabar y luego imprimir. Quizás el SDK no permita cambiar el estado de una factura hasta que se haya grabado en la base de datos.
Un saludo
Agustín Marcos Cividanes
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
La forma de realizarlo es:
if (facturaPuc.Add() == 0)
{
//con GetNewObjectKey() obtengo ultimo key insertado
facturaPuc.GetByKey(Int32.Parse(oDictucPUC.GetNewObjectKey().ToString()));
if (facturaPuc.Printed == 0)
{
facturaPuc.Printed = SAPbobsCOM.PrintStatusEnum.psYes;
int ret = facturaPuc.Update();
if (ret != 0)
{
Console.WriteLine("Error al update: " + oDictucPUC.GetLastErrorDescription());
}
}
}
Saludos espero que les sea útil.
User | Count |
---|---|
103 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
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.