Esempio n. 1
0
        public bool ValidarCreditoDisponible(ref string almacen)
        {
            bool esValido = false;

            SAPbobsCOM.Recordset oRecordset = null;
            string cardCode = string.Empty;

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

            DBOracle consultas = new DBOracle(ServerOracle, UserOracle, PassOracle);

            string empresaSAP = "";

            consultas.EjecutaSQL(ConsultasOracle.EmpresaEquivalencia(dbOracleCab.oDataReader["cod_empresa"].ToString()));
            if (consultas.oDataReader.Read())
            {
                empresaSAP = consultas.oDataReader["codEmpresaSAP"].ToString();
            }

            consultas.EjecutaSQL(ConsultasOracle.EmpleadoEquivalencia(dbOracleCab.oDataReader["cod_cliente"].ToString(), empresaSAP));
            if (consultas.oDataReader.Read())
            {
                cardCode = consultas.oDataReader["codCliente"].ToString();
            }
            consultas.EjecutaSQL(ConsultasOracle.SucursalEquivalencia(dbOracleCab.oDataReader["cod_empresa"].ToString(), dbOracleCab.oDataReader["cod_sucursal"].ToString()));
            if (consultas.oDataReader.Read())
            {
                almacen = consultas.oDataReader["codSucSAP"].ToString();
            }

            oRecordset.DoQuery(ConsultasSap.GetLineaCreditoUDO(cardCode, empresaSAP));
            if (oRecordset.RecordCount > 0)
            {
                if (Convert.ToDouble(oRecordset.Fields.Item("U_Saldo_disp").Value) > Convert.ToDouble(dbOracleCab.oDataReader["monto_total"].ToString()))
                {
                    esValido = true;
                }
            }

            dbSap.LiberarObjeto(oRecordset);

            return(esValido);
        }
Esempio n. 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);
            }
        }