Exemplo n.º 1
0
        public void update_documento_Transac_Mov(Ent_Ora_Transac param, ref string error)
        {
            //string sqlquery = "select rtl_loc_id,business_date,wkstn_id,trans_seq,TOTAL,fiscal_number from trn_trans where trans_typcode='RETAIL_SALE' AND trans_statcode='COMPLETE' AND TOTAL>0 AND RECORD_STATE IS NULL and business_date>='" + fecha + "'";
            //string sqlquery = "update trn_trans set RECORD_STATE='X' where trans_typcode='RETAIL_SALE' AND trans_statcode='COMPLETE' AND TOTAL>0 AND RECORD_STATE IS NULL AND rtl_loc_id=" + param.RTL_LOC_ID + " AND wkstn_id=" + param.WKSTN_ID + " AND trans_seq=" + param.TRANS_SEQ + " AND fiscal_number='" + param.FISCAL_NUMBER + "'";
            string sqlquery = "";

            try
            {
                switch (param.DOCUMENT_TYPCODE)
                {
                /*venta*/
                case "RETAIL_SALE":
                    /*X ES PARA EL TEMA DE LAS TICKET REGALO Y A ES PARA ENVIO DE POSLOG*/
                    sqlquery = "update trn_trans set RECORD_STATE='A' where trans_typcode='RETAIL_SALE' AND trans_statcode='COMPLETE' and (RECORD_STATE='X' or (RECORD_STATE is null and total<0) OR (RECORD_STATE is null and SUBSTR(FISCAL_NUMBER,0,1) NOT IN('B','F') )) AND rtl_loc_id=" + param.RTL_LOC_ID + " AND wkstn_id=" + param.WKSTN_ID + " AND trans_seq=" + param.TRANS_SEQ + " AND fiscal_number='" + param.NUMDOC + "'";
                    break;

                /*envio de guia*/
                /*recibo de guias*/
                case "SHIPPING":
                case "RECEIVING":
                    sqlquery = "update inv_invctl_trans set RECORD_STATE='X' where document_typcode='" + param.DOCUMENT_TYPCODE + "' AND  RECORD_STATE IS NULL AND rtl_loc_id=" + param.RTL_LOC_ID + " AND wkstn_id=" + param.WKSTN_ID + " AND trans_seq=" + param.TRANS_SEQ;
                    break;

                    //case "RECEIVING":
                    //    sqlquery = "update trn_trans set RECORD_STATE='X' where trans_typcode='RETAIL_SALE' AND trans_statcode='COMPLETE' AND TOTAL>0 AND RECORD_STATE IS NULL AND rtl_loc_id=" + param.RTL_LOC_ID + " AND wkstn_id=" + param.WKSTN_ID + " AND trans_seq=" + param.TRANS_SEQ + " AND fiscal_number='" + param.FISCAL_NUMBER + "'";
                    //    break;
                }


                //object results = new object[1];
                Database db = new OracleDatabase(Ent_Acceso_BD.conn());

                DbCommand dbCommandWrapper = db.GetSqlStringCommand(sqlquery);

                db.ExecuteNonQuery(dbCommandWrapper);
            }
            catch (Exception exc)
            {
                error = exc.Message;
                //throw;
            }
        }
Exemplo n.º 2
0
        public Boolean inserta_tabla_temp_poslog(Ent_Ora_Transac param, ref string error)
        {
            Boolean insert = false;

            decimal _n = Convert.ToDecimal(param.TOTAL, new NumberFormatInfo()
            {
                NumberDecimalSeparator = "."
            });

            //string sqlquery = "INSERT INTO  " + Ent_Acceso_BD.nom_tabla + "(RTL_LOC_ID,BUSINESS_DATE,WKSTN_ID,TRANS_SEQ,TOTAL,FISCAL_NUMBER)" +
            //    " VALUES(" + param.RTL_LOC_ID + ",'" + param.BUSINESS_DATE + "'," + param.WKSTN_ID + "," + param.TRANS_SEQ + "," + Convert.ToDecimal(param.TOTAL, new NumberFormatInfo() { NumberDecimalSeparator = "." }) + ",'" + param.FISCAL_NUMBER + "')";
            //string sqlquery = "INSERT INTO  " + Ent_Acceso_BD.nom_tabla_poslog + "(RTL_LOC_ID,WKSTN_ID,TRANS_SEQ,BUSINESS_DATE,NUMDOC,TOTAL,DOCUMENT_TYPCODE) VALUES(:RTL_LOC_ID,:WKSTN_ID,:TRANS_SEQ,:BUSINESS_DATE,:NUMDOC,:TOTAL,:DOCUMENT_TYPCOE)";
            string sqlquery = "INSERT INTO  " + Ent_Acceso_BD.nom_tabla_poslog + "(RTL_LOC_ID,WKSTN_ID,TRANS_SEQ,BUSINESS_DATE,NUMDOC,TOTAL,DOCUMENT_TYPCODE) VALUES(:RTL_LOC_ID,:WKSTN_ID,:TRANS_SEQ,:BUSINESS_DATE,:NUMDOC,:TOTAL,:DOCUMENT_TYPCODE)";

            try
            {
                Database  db = new OracleDatabase(Ent_Acceso_BD.conn());
                DbCommand dbCommandWrapper = db.GetSqlStringCommand(sqlquery);
                db.AddInParameter(dbCommandWrapper, "RTL_LOC_ID", DbType.Decimal, param.RTL_LOC_ID);
                db.AddInParameter(dbCommandWrapper, "WKSTN_ID", DbType.Decimal, param.WKSTN_ID);
                db.AddInParameter(dbCommandWrapper, "TRANS_SEQ", DbType.Decimal, param.TRANS_SEQ);
                db.AddInParameter(dbCommandWrapper, "BUSINESS_DATE", DbType.DateTime, param.BUSINESS_DATE);
                db.AddInParameter(dbCommandWrapper, "NUMDOC", DbType.String, param.NUMDOC);
                db.AddInParameter(dbCommandWrapper, "TOTAL", DbType.Decimal, param.TOTAL);
                db.AddInParameter(dbCommandWrapper, "DOCUMENT_TYPCODE", DbType.String, param.DOCUMENT_TYPCODE);
                //dbCommandWrapper.Parameters.Add("RTL_LOC_ID",DbType.)
                //dbCommandWrapper.Parameters.Add(new OracleParameter(":FName", TextBox1.Text));

                db.ExecuteNonQuery(dbCommandWrapper);


                insert = true;
            }
            catch (Exception exc)
            {
                error = exc.Message + " ==>inserta_tabla_temp ==QUERY==> " + sqlquery;
            }
            return(insert);
        }
Exemplo n.º 3
0
        public Boolean existe_data_temp_transac(Ent_Ora_Transac param, ref string error)
        {
            Boolean   existe    = false;
            string    sqlquery  = "SELECT count(*) as existe FROM " + Ent_Acceso_BD.nom_tabla_poslog + " WHERE RTL_LOC_ID=" + param.RTL_LOC_ID + " and WKSTN_ID=" + param.WKSTN_ID + " AND TRANS_SEQ=" + param.TRANS_SEQ + " AND NUMDOC='" + param.NUMDOC + "'";
            DataTable dt_existe = null;

            try
            {
                Database  db = new OracleDatabase(Ent_Acceso_BD.conn());
                DbCommand dbCommandWrapper = db.GetSqlStringCommand(sqlquery);
                dt_existe = db.ExecuteDataSet(dbCommandWrapper).Tables[0];
                if (dt_existe.Rows.Count > 0)
                {
                    existe = Convert.ToInt32(dt_existe.Rows[0]["existe"]) >= 1 ? true : false;
                }
            }
            catch (Exception exc)
            {
                //throw;
                error = exc.Message + " ==>existe_tabla_temp";
            }
            return(existe);
        }
Exemplo n.º 4
0
        public string ejecuta_envio_poslog()
        {
            string _fecha_ini = DateTime.Today.AddDays(-90).ToString("dd/MM/yyyy");
            string _fecha_fin = DateTime.Today.ToString("dd/MM/yyyy");;
            string error      = "";

            try
            {
                string nom_pc = Environment.MachineName;//"TIENDA-933-1"

                string caja    = nom_pc.Substring(nom_pc.Length - 1, 1);
                string _server = nom_pc;
                if (caja != "1")
                {
                    _server = nom_pc.Substring(0, nom_pc.Length - 1) + "1";
                }



                _tienda = nom_pc.Substring(nom_pc.IndexOf('-') + 1, nom_pc.Length - (nom_pc.IndexOf('-') + 1));
                _tienda = _tienda.Substring(0, _tienda.Length - 2);
                if (_tienda.Length == 3)
                {
                    _tienda = "50" + _tienda;
                }

                Dat_Ora_Data data_ora = new Dat_Ora_Data();
                #region <CONEXIONES DE ORACLE>
                Ent_Conexion_Ora_Xstore con_ora = data_ora.ws_conexion_xstore(ref error);
                if (error.Length > 0)
                {
                    return(error);
                }

                if (con_ora == null)
                {
                    return("");
                }

                //_server = "";
                // "172.30.41.10" TDA 143
                // 172.30.39.10  TDA 141

                Ent_Acceso_BD.server           = _server;          //"172.16.100.200";// _server;// "172.16.100.189";// _server; //con_ora.server;//  ConfigurationManager.AppSettings["server"].ToString();
                Ent_Acceso_BD.user             = con_ora.usuario;  // ConfigurationManager.AppSettings["usuario"].ToString();
                Ent_Acceso_BD.password         = con_ora.password; //  ConfigurationManager.AppSettings["password"].ToString();
                Ent_Acceso_BD.port             = con_ora.port;     // Convert.ToInt32(ConfigurationManager.AppSettings["port"].ToString());
                Ent_Acceso_BD.sid              = con_ora.sid;      // ConfigurationManager.AppSettings["sid"].ToString();
                Ent_Acceso_BD.nom_tabla        = ConfigurationManager.AppSettings["tempo"].ToString();
                Ent_Acceso_BD.nom_tabla_poslog = "TMP_BATA_TRANSAC";
                #endregion
                #region <ORACLE CREACION Y EXISTENCIA>
                Boolean existe = data_ora.existe_tabla_poslog(ref error);
                if (error.Length > 0)
                {
                    return(error);
                }
                if (!existe)
                {
                    error = data_ora.crear_table_poslog();
                }
                if (error.Length > 0)
                {
                    return(error);
                }
                #endregion

                #region <ENVIO DE DATOS DE VENTA,GUIAS AL TEMPORAL>
                // _tienda = "50704";
                DataTable dtventa_ora = data_ora.get_documento_TRN_INV_TRANS_POSLOG(_tienda, _fecha_ini, _fecha_fin, ref error);
                if (error.Length > 0)
                {
                    return(error);
                }
                if (dtventa_ora != null)
                {
                    if (dtventa_ora.Rows.Count > 0)
                    {
                        foreach (DataRow fila in dtventa_ora.Rows)
                        {
                            Ent_Ora_Transac transac = new Ent_Ora_Transac();
                            transac.RTL_LOC_ID       = Convert.ToDecimal(fila["RTL_LOC_ID"]);
                            transac.WKSTN_ID         = Convert.ToInt32(fila["WKSTN_ID"]);
                            transac.TRANS_SEQ        = Convert.ToDecimal(fila["TRANS_SEQ"]);
                            transac.BUSINESS_DATE    = Convert.ToDateTime(fila["BUSINESS_DATE"]);
                            transac.NUMDOC           = fila["NUMDOC"].ToString();
                            transac.TOTAL            = Convert.ToDecimal(fila["TOTAL"]);
                            transac.DOCUMENT_TYPCODE = fila["DOCUMENT_TYPCODE"].ToString();

                            decimal _numero_region = Convert.ToDecimal(fila["TOTAL"], new NumberFormatInfo()
                            {
                                NumberDecimalSeparator = "."
                            });
                            transac.TOTAL = _numero_region;

                            /*VERIFICAR QUE NO EXISTA EL DOCUMENTO*/
                            Boolean existe_tmp = data_ora.existe_data_temp_transac(transac, ref error);
                            if (error.Length > 0)
                            {
                                return(error);
                            }
                            if (!existe_tmp)
                            {
                                Boolean insert = data_ora.inserta_tabla_temp_poslog(transac, ref error);
                                if (error.Length > 0)
                                {
                                    return(error);
                                }
                                /*si el insert es correcto entonces hacemos un update*/
                                if (insert)
                                {
                                    data_ora.update_documento_Transac_Mov(transac, ref error);
                                    if (error.Length > 0)
                                    {
                                        return(error);
                                    }
                                }
                            }
                            else
                            {
                                /*realizar el update en la tabla principal*/
                                data_ora.update_documento_Transac_Mov(transac, ref error);
                                if (error.Length > 0)
                                {
                                    return(error);
                                }
                            }
                        }
                    }
                }


                #endregion
                #region <ENVIO LOS DATOS AL SERVER AL POSLOG POR WEBSERVICE>
                DataTable dt_envio = data_ora.select_tmp_poslog_ora();/*seleccionamos datos del oracle*/
                if (dt_envio != null)
                {
                    if (dt_envio.Rows.Count > 0)
                    {
                        foreach (DataRow fila in dt_envio.Rows)
                        {
                            Ent_PosLog_Tda param = new Ent_PosLog_Tda();
                            param.rtl_loc_id       = Convert.ToInt32(fila["RTL_LOC_ID"]);
                            param.wkstn_id         = Convert.ToInt32(fila["WKSTN_ID"]);
                            param.trans_seq        = Convert.ToDecimal(fila["TRANS_SEQ"]);
                            param.business_date    = Convert.ToDateTime(fila["BUSINESS_DATE"]);
                            param.numdoc           = fila["NUMDOC"].ToString();
                            param.total            = Convert.ToDecimal(fila["TOTAL"]);
                            param.document_typcode = fila["DOCUMENT_TYPCODE"].ToString();
                            param.pos_log_data     = fila["POSLOG_DATA"].ToString();

                            string env = data_ora.ws_envio_poslog_tda(param);
                            if (error.Length > 0)
                            {
                                return(error);
                            }
                            /*en este caso quiere decir que no hay errores en el envio*/
                            if (env.Length == 0)
                            {
                                data_ora.update_tmp_bata_transac_ora(param, ref error);
                            }

                            // param.
                        }
                    }
                }
                #endregion
            }
            catch (Exception exc)
            {
                error = exc.Message + "==>POSLOG";
            }
            return(error);
        }