/// <summary> /// REALIZAR UN FLAG EN TRN_TRANS PARA YA NO ENVIAR AL TEMPORAL /// </summary> /// <param name="param"></param> public void update_documento_TRN_TRANS(Ent_Bat_Tk_Return 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 + "'"; try { //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; } }
/// <summary> /// INSERTAR LA TABLA TEMPORAL DEL TRN_TRANS VENTA /// </summary> /// <param name="param"></param> /// <returns></returns> public Boolean inserta_tabla_temp(Ent_Bat_Tk_Return 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 + "(RTL_LOC_ID,BUSINESS_DATE,WKSTN_ID,TRANS_SEQ,TOTAL,FISCAL_NUMBER) VALUES(:RTL_LOC_ID,:BUSINESS_DATE,:WKSTN_ID,:TRANS_SEQ,:TOTAL,:FISCAL_NUMBER)"; 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, "BUSINESS_DATE", DbType.DateTime, param.BUSINESS_DATE); db.AddInParameter(dbCommandWrapper, "WKSTN_ID", DbType.Decimal, param.WKSTN_ID); db.AddInParameter(dbCommandWrapper, "TRANS_SEQ", DbType.Decimal, param.TRANS_SEQ); db.AddInParameter(dbCommandWrapper, "TOTAL", DbType.Decimal, param.TOTAL); db.AddInParameter(dbCommandWrapper, "FISCAL_NUMBER", DbType.String, param.FISCAL_NUMBER); //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); }
/// <summary> /// SI EXISTE EN LA TABLA TEMPORAL LOS PARAMETROS DE VENTA /// </summary> /// <param name="param"></param> /// <returns></returns> public Boolean existe_tabla_temp(Ent_Bat_Tk_Return param, ref string error) { Boolean existe = false; string sqlquery = "SELECT count(*) as existe FROM " + Ent_Acceso_BD.nom_tabla + " WHERE 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 + "'"; 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); }
public string ejecuta_proceso_oracle() { string error = ""; //string fecha = DateTime.Today.AddDays(-1).ToString("dd/MM/yyyy"); string fecha = DateTime.Today.AddDays(-90).ToString("dd/MM/yyyy");// DateTime.Today.ToString("dd/MM/yyyy"); //string _fecha_ini = DateTime.Today.AddDays(-90).ToString("dd/MM/yyyy"); //TextWriter tw = null; //System.Globalization.CultureInfo cultureinfo = new System.Globalization.CultureInfo("ES-Pe"); //DateTime fecha = DateTime.Parse(d, cultureinfo); //var culturaArgentina = CultureInfo.GetCultureInfo("es-PE"); //var dutchCulture = CultureInfo.CreateSpecificCulture("Es-Pe"); //DateTime fecha = DateTime.Parse(d, dutchCulture); //var fecha = DateTime.ParseExact(d, "dd/MM/yyyy HH:mm:ss", dutchCulture); try { //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + fecha.ToString()); //tw.Flush(); //tw.Close(); //tw.Dispose(); 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"; } //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + "entrando paso 1"); //tw.Flush(); //tw.Close(); //tw.Dispose(); //_server = "172.16.100.252"; _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; } //_tienda = "50702"; 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); } //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + "entrando paso 2"); //tw.Flush(); //tw.Close(); //tw.Dispose(); if (con_ora == null) { return(""); } Ent_Acceso_BD.server = _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(); #endregion #region <ORACLE CREACION Y EXISTENCIA> Boolean existe = data_ora.existe_tabla(ref error); if (error.Length > 0) { return(error); } if (!existe) { error = data_ora.crear_table(); } if (error.Length > 0) { return(error); } #endregion #region <REGION DE TRANSACCIONES AL TEMPORAL> //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + "entrando paso 3"); //tw.Flush(); //tw.Close(); //tw.Dispose(); string query = ""; DataTable dtventa_ora = data_ora.get_documento_TRN_TRANS(fecha, ref error, ref query); //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + query); //tw.Flush(); //tw.Close(); //tw.Dispose(); if (error.Length > 0) { return(error); } if (dtventa_ora != null) { if (dtventa_ora.Rows.Count > 0) { //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + "Si hay Datos"); //tw.Flush(); //tw.Close(); //tw.Dispose(); foreach (DataRow fila in dtventa_ora.Rows) { Ent_Bat_Tk_Return param = new Ent_Bat_Tk_Return(); param.RTL_LOC_ID = Convert.ToDecimal(fila["RTL_LOC_ID"]); param.BUSINESS_DATE = Convert.ToDateTime(fila["BUSINESS_DATE"]); param.WKSTN_ID = Convert.ToDecimal(fila["WKSTN_ID"]); param.TRANS_SEQ = Convert.ToDecimal(fila["TRANS_SEQ"]); decimal _n = Convert.ToDecimal(fila["TOTAL"], new NumberFormatInfo() { NumberDecimalSeparator = "." }); param.TOTAL = _n;// Convert.ToDecimal(fila["TOTAL"]); param.FISCAL_NUMBER = fila["FISCAL_NUMBER"].ToString(); /*VERIFICAR QUE NO EXISTA EL DOCUMENTO*/ Boolean existe_tmp = data_ora.existe_tabla_temp(param, ref error); if (error.Length > 0) { return(error); } if (!existe_tmp) { Boolean insert = data_ora.inserta_tabla_temp(param, ref error); if (error.Length > 0) { return(error); } /*si el insert es correcto entonces hacemos un update*/ if (insert) { data_ora.update_documento_TRN_TRANS(param, ref error); if (error.Length > 0) { return(error); } } } else { /*realizar el update en la tabla principal*/ data_ora.update_documento_TRN_TRANS(param, ref error); if (error.Length > 0) { return(error); } } } } else { //tw = new StreamWriter(ruta_log, true); //tw.WriteLine(DateTime.Today.ToString() + " " + DateTime.Now.ToString("HH:mm:ss") + "==>" + "No hay Datos"); //tw.Flush(); //tw.Close(); //tw.Dispose(); } } #endregion #region <REGION DE ENVIO DE DATA AL SERVER WEB SERVICE> DataTable dt_envio = data_ora.select_tmp_ora();/*seleccionamos datos del oracle*/ if (dt_envio != null) { if (dt_envio.Rows.Count > 0) { foreach (DataRow fila in dt_envio.Rows) { String FC_SUNA = fila["FISCAL_NUMBER"].ToString().Substring(0, 1) == "B" ? "03" : "01"; String FC_SFAC = fila["FISCAL_NUMBER"].ToString().Substring(0, 4).ToString(); String FC_NFAC = fila["FISCAL_NUMBER"].ToString().Substring(5, fila["FISCAL_NUMBER"].ToString().Length - 5).ToString().PadLeft(8, '0'); Ent_Tk_Set_Parametro param = new Ent_Tk_Set_Parametro(); param.COD_TDA = fila["RTL_LOC_ID"].ToString(); param.FECHA = Convert.ToDateTime(fila["BUSINESS_DATE"]); param.MONTO = Convert.ToDecimal(fila["TOTAL"]); param.FC_SUNA = FC_SUNA; param.SERIE = FC_SFAC; param.NUMERO = FC_NFAC; Ent_Tk_Return env = data_ora.ws_envio_param(param, ref error); if (error.Length > 0) { return(error); } /*en este caso quiere decir que no hay errores en el envio*/ if (env.estado_error.Length == 0) { Int32 RTL_LOC_ID = Convert.ToInt32(fila["RTL_LOC_ID"]); Int32 WKSTN_ID = Convert.ToInt32(fila["WKSTN_ID"]); Int32 TRANS_SEQ = Convert.ToInt32(fila["TRANS_SEQ"]); string FISCAL_NUMBER = fila["FISCAL_NUMBER"].ToString(); /*en este caso vemos que se genero el cupon*/ data_ora.update_tmp_ora(env.cupon_imprimir, RTL_LOC_ID, WKSTN_ID, TRANS_SEQ, FISCAL_NUMBER, ref error); imprimir(env); } // param. } } } #endregion #region <REGION PARA LA REIMPRESION DE TICKETS RETORNO> List <Ent_Tk_Return> lista_reimprime = data_ora.ws_get_reimprimir_tk_return(_tienda); if (lista_reimprime != null) { if (lista_reimprime.Count > 0) { foreach (Ent_Tk_Return fila in lista_reimprime) { imprimir(fila); data_ora.ws_update_tk_return_reimprimir(_tienda, fila.cupon_imprimir); } } } #endregion } catch (Exception exc) { error = error + "==>" + exc.Message; } return(error); }
private void btnconectar_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { string fecha = DateTime.Today.ToString("dd/MM/yyyy");/*fecha de validacion*/ #region <CONEXIONES DE ORACLE> Ent_Acceso_BD.server = "10.10.10.209";// txtserver.Text; Ent_Acceso_BD.user = txtusuario.Text; Ent_Acceso_BD.password = txtpassword.Text; Ent_Acceso_BD.port = Convert.ToInt32(txtport.Text); Ent_Acceso_BD.sid = txtsid.Text; Ent_Acceso_BD.nom_tabla = "BAT_TK_RETURN"; Dat_Ora_Data data_ora = new Dat_Ora_Data(); #endregion #region <ORACLE CREACION Y EXISTENCIA> string error = ""; Boolean existe = data_ora.existe_tabla(ref error); if (!existe) { data_ora.crear_table(); } #endregion #region <REGION DE TRANSACCIONES AL TEMPORAL> string query = ""; DataTable dtventa_ora = data_ora.get_documento_TRN_TRANS(fecha, ref error, ref query); if (dtventa_ora != null) { if (dtventa_ora.Rows.Count > 0) { foreach (DataRow fila in dtventa_ora.Rows) { Ent_Bat_Tk_Return param = new Ent_Bat_Tk_Return(); param.RTL_LOC_ID = Convert.ToDecimal(fila["RTL_LOC_ID"]); param.BUSINESS_DATE = Convert.ToDateTime(fila["BUSINESS_DATE"]); param.WKSTN_ID = Convert.ToDecimal(fila["WKSTN_ID"]); param.TRANS_SEQ = Convert.ToDecimal(fila["TRANS_SEQ"]); param.TOTAL = Convert.ToDecimal(fila["TOTAL"]); param.FISCAL_NUMBER = fila["FISCAL_NUMBER"].ToString(); //string error = ""; /*VERIFICAR QUE NO EXISTA EL DOCUMENTO*/ Boolean existe_tmp = data_ora.existe_tabla_temp(param, ref error); if (!existe_tmp) { Boolean insert = data_ora.inserta_tabla_temp(param, ref error); /*si el insert es correcto entonces hacemos un update*/ if (insert) { data_ora.update_documento_TRN_TRANS(param, ref error); } } else { /*realizar el update en la tabla principal*/ data_ora.update_documento_TRN_TRANS(param, ref error); } } } } #endregion MessageBox.Show("Trancciones Exitosa", "Mensaje..", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception exc) { MessageBox.Show(exc.Message, "Mensaje..", MessageBoxButtons.OK, MessageBoxIcon.Error); } Cursor.Current = Cursors.Default; }