Пример #1
0
        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);
        }
Пример #2
0
        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;
        }