예제 #1
0
        /// <summary>
        /// Método para comprobar conexión con SAP.
        /// </summary>
        /// <returns>Retorna string con el nombre de la BD a la cual nos conectamos. Código y
        /// mensaje de error en caso contrario</returns>
        public void ConectarSAP()
        {
            dbSap = new DBSap();
            string     fecha      = DateTime.Now.ToString();
            string     strPathLog = @"C:\Users\Exxispydesa2\Desktop\Log.txt";
            TextWriter tw         = new StreamWriter(strPathLog, true);

            if (dbSap.Conectar())
            {
                oCompany = dbSap.oCompany;
                tw.WriteLine(String.Format("A las {0} nos conectamos a {1} ", fecha, oCompany.CompanyName));
            }
            else
            {
                tw.WriteLine(String.Format("Sin conexión a las {0}. Ocurrio el siguiente error: {1} - {2}", fecha, dbSap.iError, dbSap.sError));
            }
            tw.Close();
        }
예제 #2
0
        public void ProcesarPedidos()
        {
            dbOracleCab = new DBOracle(ServerOracle, UserOracle, PassOracle);
            dbSap       = new DBSap();

            SAPbobsCOM.Documents oDoc       = null;
            SAPbobsCOM.Recordset oRecordset = null;

            int    Respuesta         = 0;
            string MsgErrSBO         = "";
            string identi            = "";
            string nro_comprobante   = "";
            string error_comprobante = "";
            bool   esPedido          = true;
            bool   creditoOK         = true;
            bool   stockOK           = true;
            bool   precioOK          = true;
            string almacen           = "";
            int    listaPrecio       = 0;

            try
            {
                if (dbOracleCab.EjecutaSQL(ConsultasOracle.ValidarPedidoCompleto()))
                {
                    while (dbOracleCab.oDataReader.Read())
                    {
                        if (dbSap.oCompany == null)
                        {
                            dbSap.Conectar();
                            oCompany = dbSap.oCompany;
                        }

                        error_comprobante = dbOracleCab.oDataReader["tip_comprobante"].ToString() + "-" + dbOracleCab.oDataReader["ser_comprobante"].ToString() + "-" + dbOracleCab.oDataReader["nro_comprobante"].ToString();
                        nro_comprobante   = dbOracleCab.oDataReader["nro_comprobante"].ToString();
                        dbOracleDet       = new DBOracle(ServerOracle, UserOracle, PassOracle);
                        dbOracleDet.EjecutaSQL(ConsultasOracle.GetPedidosDet(nro_comprobante));

                        oRecordset = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);

                        oRecordset.DoQuery(ConsultasSap.GetParametroValor("ListaPrecio"));
                        if (oRecordset.RecordCount > 0)
                        {
                            listaPrecio = Convert.ToInt32(oRecordset.Fields.Item("ValParam").Value.ToString());
                        }

                        if (!ValidarCreditoDisponible(ref almacen))
                        {
                            esPedido  = false;
                            creditoOK = false;
                        }
                        if (!ValidarStockyPrecio(ref stockOK, ref precioOK, almacen, listaPrecio))
                        {
                            esPedido = false;
                        }

                        CrearPedido(oDoc, nro_comprobante, Respuesta, MsgErrSBO,
                                    identi, esPedido, creditoOK, stockOK, precioOK, almacen,
                                    listaPrecio);
                        esPedido  = true;
                        creditoOK = true;
                        stockOK   = true;
                        precioOK  = true;

                        nro_comprobante = "";
                    }
                }
            }
            catch (Exception ex)
            {
                CrearRegistroLog(ex.HResult.ToString(), ex.Message.ToString(), nro_comprobante);
                WriteErrorLog("ProcesarPedidos:" + error_comprobante + " Mensaje:" + ex.Message.ToString());
            }
            finally
            {
                dbSap.LiberarObjeto(oDoc);
                dbSap.LiberarObjeto(oRecordset);
                dbSap.LiberarObjeto(oCompany);
            }
        }