}   //frin del metodo

        ///*******************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Migrar_Datos_Camara
        ///DESCRIPCIÓN          : Lee los datos de la cámara y lo inserta en ope_accesos_camaras
        ///PARÁMETROS           : P_Banco que contiene la informacion de el nuevo banco
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 1 Diciembre 2014
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*******************************************************************************
        public static DataTable Consultar_Si_Existe_Registros(Cls_Cat_Accesos_Camara_Negocio P_Migracion)
        {
            StringBuilder Mi_Sql = new StringBuilder();
            DateTime      Fecha;
            String        Str_Cadena_Ip           = String.Empty;
            String        Query                   = String.Empty;
            DataTable     Dt_Resultados           = new DataTable();
            DataTable     Dt_Consulta             = new DataTable();
            DataTable     Dt_Consultar_Existencia = new DataTable();
            Boolean       Transaccion_Activa      = false;

            try
            {
                Fecha = P_Migracion.P_Dtime_Fecha;

                Conexion.Iniciar_Helper();

                if (!Conexion.HelperGenerico.Estatus_Transaccion())
                {
                    Conexion.HelperGenerico.Conexion_y_Apertura();
                }
                else
                {
                    Transaccion_Activa = true;
                }

                Mi_Sql.Clear();
                Mi_Sql.Append("SELECT * ");
                Mi_Sql.Append(" From " + Ope_Accesos_Camaras.Tabla_Ope_Accesos_Camaras);
                Mi_Sql.Append(" where " + Ope_Accesos_Camaras.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras.Campo_Fecha_Hora + " = '" + Fecha.ToString("yyyy-MM-dd") + " 00:00:00" + "'");

                Dt_Resultados = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString());
            }
            catch (Exception e)
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Abortar_Transaccion();
                }

                throw new Exception("Cámara : " + e.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }

            return(Dt_Resultados);
        }   //frin del metodo
        ///*******************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Migrar_Datos_Camara
        ///DESCRIPCIÓN          : Lee los datos de la cámara y lo inserta en ope_accesos_camaras
        ///PARÁMETROS           : P_Banco que contiene la informacion de el nuevo banco
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 1 Diciembre 2014
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*******************************************************************************
        public static DataTable Migrar_Datos_Camara_Datos(Cls_Cat_Accesos_Camara_Negocio P_Migracion)
        {
            StringBuilder   Mi_Sql = new StringBuilder();
            DateTime        Fecha;
            String          Str_Cadena_Ip           = String.Empty;
            String          Query                   = String.Empty;
            DataTable       Dt_Resultados           = new DataTable();
            DataTable       Dt_Consulta             = new DataTable();
            DataTable       Dt_Consultar_Existencia = new DataTable();
            Boolean         Transaccion_Activa      = false;
            WebRequest      Solicitud_Request;
            HttpWebResponse Respuesta_Response;
            Stream          Archivo_Respuesta;
            StreamReader    Lectura;
            String          Respuesta_De_Servidor;

            String[] Archivo;
            String   SqlQuery;
            String   SqlInsert;

            String[] Linea;
            int      No_Acceso;
            object   res;
            Boolean  Estatus = false;

            try
            {
                Fecha = P_Migracion.P_Dtime_Fecha;

                Conexion.Iniciar_Helper();

                if (!Conexion.HelperGenerico.Estatus_Transaccion())
                {
                    Conexion.HelperGenerico.Conexion_y_Apertura();
                }
                else
                {
                    Transaccion_Activa = true;
                }

                Str_Cadena_Ip = "http://<CamIP>/local/VE170/rep.csv?";

                String StartMonth = Fecha.ToString("MM");
                String EndMonth   = StartMonth;
                String StartDay   = Fecha.ToString("dd");
                String EndDay     = StartDay;
                String StartHour  = "0";
                String EndHour    = "23";

                Query  = "StartMonth=" + StartMonth;
                Query += "&EndMonth=" + EndMonth;
                Query += "&StartDay=" + StartDay;
                Query += "&EndDay=" + EndDay;
                Query += "&StartHour=" + StartHour;
                Query += "&EndHour=" + EndHour;
                Query += "&DetailLevel=H";


                //  se consultaran las camaras activas
                Mi_Sql.Append("SELECT * FROM " + Cat_Camaras.Tabla_Cat_Camaras + " where " + Cat_Camaras.Campo_Estatus + " ='ACTIVO'");
                Dt_Consulta = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString());

                Mi_Sql.Clear();
                Mi_Sql.Append("delete from " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras);
                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_Sql.ToString());

                //  inicion de la transaccion
                Conexion.HelperGenerico.Iniciar_Transaccion();


                foreach (DataRow Registro in Dt_Consulta.Rows)
                {
                    //Mi_Sql.Clear();
                    //Mi_Sql.Append("Select " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + ".*");
                    //Mi_Sql.Append(" From " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras);
                    //Mi_Sql.Append(" where (" + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Fecha_Hora + " >= '" + Fecha.ToString("yyyy-MM-dd") + " 00:00:00" + "'");
                    //Mi_Sql.Append(" and " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Fecha_Hora + " <= '" + Fecha.ToString("yyyy-MM-dd") + " 23:59:59" + "'");
                    //Mi_Sql.Append(")");
                    //Mi_Sql.Append(" And " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Camara_Id + "='" + Registro[Cat_Camaras.Campo_Camara_ID].ToString() + "'");
                    //Dt_Consultar_Existencia = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString());

                    //  valida que no exista informacion
                    //if (Dt_Consultar_Existencia != null && Dt_Consultar_Existencia.Rows.Count == 0)
                    //{

                    Str_Cadena_Ip = "http://<CamIP>/local/VE170/rep.csv?";
                    Str_Cadena_Ip = Str_Cadena_Ip.Replace("<CamIP>", Registro[Cat_Camaras.Campo_Url].ToString()) + Query;

                    Mi_Sql.Clear();
                    Mi_Sql.Append("INSERT INTO " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "(");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_No_Acceso + ",");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_Fecha_Hora + ",");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_Cantidad + ",");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_Cantidad_Salida + ",");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_Camara_Id + ",");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_Usuario_Creo + ",");
                    Mi_Sql.Append(Ope_Accesos_Camaras_Temp.Campo_Fecha_Creo + ")");
                    Mi_Sql.Append("VALUES('$No_Acceso', '$Fecha_Hora', $Cantidad, $Salida, '$Camara_Id', '$Usuario_Creo', NOW());");

                    Solicitud_Request             = WebRequest.Create(Str_Cadena_Ip);
                    Solicitud_Request.Credentials = new NetworkCredential(Registro[Cat_Camaras.Campo_Usuario].ToString(), Registro[Cat_Camaras.Campo_Contrasenia].ToString());

                    Respuesta_Response    = (HttpWebResponse)Solicitud_Request.GetResponse();
                    Archivo_Respuesta     = Respuesta_Response.GetResponseStream();
                    Lectura               = new StreamReader(Archivo_Respuesta);
                    Respuesta_De_Servidor = Lectura.ReadToEnd();

                    Archivo   = Respuesta_De_Servidor.Replace("\r\n", "\n").Split('\n');
                    SqlQuery  = Mi_Sql.ToString();
                    SqlInsert = String.Empty;

                    Conexion.Iniciar_Helper();
                    Conexion.HelperGenerico.Conexion_y_Apertura();

                    res       = Conexion.HelperGenerico.Obtener_Escalar("SELECT IFNULL(MAX(" + Ope_Accesos_Camaras_Temp.Campo_No_Acceso + "), 0) FROM " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras);
                    No_Acceso = int.Parse(res.ToString());


                    for (int Cont_For = 5; Cont_For < Archivo.Length; Cont_For++)
                    {
                        No_Acceso++;

                        Linea = Archivo[Cont_For].Split(',');

                        if (Linea.Length != 3)
                        {
                            break;
                        }

                        if (Linea[1] != "n/a")
                        {
                            string Hora       = DateTime.Parse(Linea[0]).ToString("HH");
                            string Fecha_Hora = Fecha.ToString("yyyy-MM-dd") + " " + Hora;

                            SqlInsert += SqlQuery;
                            SqlInsert  = SqlInsert.Replace("$No_Acceso", String.Format("{0:0000000000}", +No_Acceso))
                                         .Replace("$Fecha_Hora", Fecha_Hora);

                            ////  validacion para la camara de entrada
                            //if (Registro[Cat_Camaras.Campo_Tipo].ToString() == "ENTRADA")
                            //{
                            SqlInsert = SqlInsert.Replace("$Cantidad", Linea[1]);
                            //    SqlInsert = SqlInsert.Replace("$Salida", "0");
                            //}
                            //else
                            //{
                            //    SqlInsert = SqlInsert.Replace("$Cantidad", "0");
                            SqlInsert = SqlInsert.Replace("$Salida", Linea[2]);
                            //}


                            SqlInsert = SqlInsert.Replace("$Camara_Id", Registro[Cat_Camaras.Campo_Camara_ID].ToString())
                                        .Replace("$Usuario_Creo", MDI_Frm_Apl_Principal.Nombre_Usuario);
                        }
                    }// fin del for arcnivo

                    if (!String.IsNullOrEmpty(SqlInsert))
                    {
                        Conexion.HelperGenerico.Ejecutar_NonQuery(SqlInsert);
                    }

                    Lectura.Close();
                    Archivo_Respuesta.Close();
                    Respuesta_Response.Close();

                    //}//consulta de existencia de registros
                }   // fin del foreach

                Mi_Sql.Clear();
                Mi_Sql.Append("SELECT " + Cat_Camaras.Tabla_Cat_Camaras + "." + Cat_Camaras.Campo_Nombre);
                Mi_Sql.Append(", " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Fecha_Hora);
                Mi_Sql.Append(", " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Cantidad);
                Mi_Sql.Append(", " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Cantidad_Salida);
                Mi_Sql.Append(" From " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras);
                Mi_Sql.Append(" left outer join " + Cat_Camaras.Tabla_Cat_Camaras + " on " + Cat_Camaras.Tabla_Cat_Camaras + "." + Cat_Camaras.Campo_Camara_ID);
                Mi_Sql.Append(" = " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Camara_Id);
                Mi_Sql.Append(" where (" + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Fecha_Hora + " >= '" + Fecha.ToString("yyyy-MM-dd") + " 00:00:00" + "'");
                Mi_Sql.Append(" and " + Ope_Accesos_Camaras_Temp.Tabla_Ope_Accesos_Camaras + "." + Ope_Accesos_Camaras_Temp.Campo_Fecha_Hora + " <= '" + Fecha.ToString("yyyy-MM-dd") + " 23:59:59" + "'");
                Mi_Sql.Append(")");

                Dt_Resultados = Conexion.HelperGenerico.Obtener_Data_Table(Mi_Sql.ToString());

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception e)
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Abortar_Transaccion();
                }

                throw new Exception("Cámara : " + e.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }

            return(Dt_Resultados);
        }
Пример #3
0
        ///*************************************************************************************
        ///NOMBRE DE LA FUNCIÓN : Btn_Migrar_Accesos_Camara_Click
        ///DESCRIPCIÓN          : Muestra la forma en pantalla
        ///PARÁMETROS           :
        ///CREÓ                 : Héctor Gabriel Galicia Luna
        ///FECHA_CREO           : 10 Octubre 2013
        ///MODIFICÓ             :
        ///FECHA_MODIFICO       :
        ///CAUSA_MODIFICACIÓN   :
        ///*************************************************************************************
        private void Btn_Migrar_Accesos_Camara_Click(object sender, EventArgs e)
        {
            Cls_Cat_Accesos_Camara_Negocio Negocio  = new Cls_Cat_Accesos_Camara_Negocio();
            DataTable Dt_Consulta_Registros_Camaras = new DataTable();

            Negocio.P_Dtime_Fecha = Convert.ToDateTime(Dte_Fecha.Text);

            //  validacion para la captura de la informacion preliminar de las camaras
            if (Chk_Capturar_Informacion.Checked == false)
            {
                if (Negocio.P_Dtime_Fecha > DateTime.Now)
                {
                    MessageBox.Show("La fecha no puede ser mayor a la actual " + DateTime.Now.ToString("dd/MMM/yyyy"), "Validación"
                                    , MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    DataTable Resultados = Negocio.Migrar_Datos_Camara_Negocio();

                    if (Resultados != null && Resultados.Rows.Count > 1)
                    {
                        //MessageBox.Show("Migración Exitosa", "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Grd_Resultados.DataSource = Resultados;
                    }
                    else
                    {
                        Grd_Resultados.DataSource = new DataTable();
                    }
                }
            }
            else
            {
                //  proceso para la informacion pendiente de las camaras que no sea la del dia actual
                if (Negocio.P_Dtime_Fecha < DateTime.Now)
                {
                    //  se consulta que no exista informacion para poder continuar con la insercion
                    Dt_Consulta_Registros_Camaras = Negocio.Consultar_Si_Existe_Registros();

                    //  si no existen registros se procede a ser ingresados.
                    if (Dt_Consulta_Registros_Camaras != null && Dt_Consulta_Registros_Camaras.Rows.Count == 0)
                    {
                        DataTable Resultados = Negocio.Migrar_Datos_Pendientes_Camara();

                        if (Resultados != null && Resultados.Rows.Count > 1)
                        {
                            //MessageBox.Show("Migración Exitosa", "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            Grd_Resultados.DataSource = Resultados;
                        }
                        else
                        {
                            Grd_Resultados.DataSource = new DataTable();
                        }
                    }
                    else
                    {
                        Grd_Resultados.DataSource = new DataTable();
                    }
                }
                else
                {
                    Grd_Resultados.DataSource = new DataTable();
                }
            }
        }