///**************************************************************************************************************
        ///NOMBRE DE LA FUNCIÓN: Registro_Acceso
        ///DESCRIPCIÓN         : Consulta el ultimo registro de acceso del usuario
        ///PARAMENTROS         : P_Registro_Accesos.- Instancia de la Clase de Negocio de Empresas con los datos que servirán de
        ///                                           filtro.
        ///CREO                : Sergio Manuel Gallardo Andrade
        ///FECHA_CREO          : 28/Febrero/2013
        ///MODIFICO            :
        ///FECHA_MODIFICO      :
        ///CAUSA_MODIFICACIÓN  :
        ///*******************************************************************************
        public static void Registro_Acceso(Cls_Apl_Registro_Accesos_Negocio P_Registro_Accesos)
        {
            DataTable     Tabla  = new DataTable();
            StringBuilder Mi_SQL = new StringBuilder();

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

            try
            {
                Mi_SQL.Append("UPDATE " + Apl_Usuarios.Tabla_Apl_Usuarios + " SET ");
                Mi_SQL.Append(Apl_Usuarios.Campo_Fecha_Ultimo_Acceso + " = " + Cls_Ayudante_Sintaxis.Fecha());
                Mi_SQL.Append(" WHERE " + Apl_Usuarios.Campo_Usuario_Id + " = '" + P_Registro_Accesos.P_Usuario_Id + "'");
                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL.ToString());
            }
            catch (Exception Ex)
            {
                String Mensaje = "Error al intentar consultar los Puestos. Error: [" + Ex.Message + "]."; //"Error general en la base de datos"
                throw new Exception(Mensaje);
            }
            finally
            {
                Conexion.HelperGenerico.Cerrar_Conexion();
            }
        }
        ///**************************************************************************************************************
        ///NOMBRE DE LA FUNCIÓN: Consultar_Registro_Accesos
        ///DESCRIPCIÓN         : Consulta los motivos de rechazo
        ///PARAMENTROS         : P_Registro_Accesos.- Instancia de la Clase de Negocio de Empresas con los datos que servirán de
        ///                                           filtro.
        ///CREO                : Miguel Angel Alvarado Eniquez.
        ///FECHA_CREO          : 15/Febrero/2013
        ///MODIFICO            :
        ///FECHA_MODIFICO      :
        ///CAUSA_MODIFICACIÓN  :
        ///*******************************************************************************
        public static DataTable Consultar_Fecha_Servidor(Cls_Apl_Registro_Accesos_Negocio P_Registro_Accesos)
        {
            StringBuilder Mi_SQL = new StringBuilder();

            Conexion.Iniciar_Helper();
            Conexion.HelperGenerico.Conexion_y_Apertura();
            DataTable Dt_Consulta = new DataTable();

            try
            {
                Mi_SQL.Append("SELECT now() as Fecha_Servidor");


                Dt_Consulta = Conexion.HelperGenerico.Obtener_Data_Set(Mi_SQL.ToString()).Tables[0];
            }
            catch (Exception Ex)
            {
                String Mensaje = "Error al intentar consultar los Puestos. Error: [" + Ex.Message + "]."; //"Error general en la base de datos"
                throw new Exception(Mensaje);
            }
            finally
            {
                Conexion.HelperGenerico.Cerrar_Conexion();
            }
            return(Dt_Consulta);
        }
        /// ***********************************************************************************
        /// Nombre de la Función: Alta_Registro_Accesos
        /// Descripción         : Da de alta en la Base de Datos una nueva Empresa
        /// Parámetros          :
        /// Usuario Creo        : Miguel Angel Alvarado Enriquez.
        /// Fecha Creó          : 14/Febrero/2013 12:32 p.m.
        /// Usuario Modifico    :
        /// Fecha Modifico      :
        /// ***********************************************************************************
        public static Boolean Alta_Registro_Accesos(Cls_Apl_Registro_Accesos_Negocio P_Registro_Accesos)
        {
            Boolean       Alta               = false;
            StringBuilder Mi_sql             = new StringBuilder();;
            String        Registro_Id        = "";
            Boolean       Transaccion_Activa = false;

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

            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();

                Registro_Id = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Apl_Registro_Accesos.Tabla_Apl_Registro_Accesos, Apl_Registro_Accesos.Campo_Registro_Id, "", 5);
                Mi_sql.Append("INSERT INTO " + Apl_Registro_Accesos.Tabla_Apl_Registro_Accesos + "(");
                Mi_sql.Append(Apl_Registro_Accesos.Campo_Registro_Id + ", ");
                Mi_sql.Append(Apl_Registro_Accesos.Campo_Usuario_Id + ", ");
                Mi_sql.Append(Apl_Registro_Accesos.Campo_Tipo + ", ");
                Mi_sql.Append(Apl_Registro_Accesos.Campo_Usuario_Creo + ", ");
                Mi_sql.Append(Apl_Registro_Accesos.Campo_Fecha_Creo);
                Mi_sql.Append(") VALUES (");
                Mi_sql.Append("'" + Registro_Id);
                Mi_sql.Append("', '" + P_Registro_Accesos.P_Usuario_Id);
                Mi_sql.Append("', '" + P_Registro_Accesos.P_Tipo);
                Mi_sql.Append("', '" + MDI_Frm_Apl_Principal.Nombre_Usuario);
                Mi_sql.Append("',  " + Cls_Ayudante_Sintaxis.Fecha());
                Mi_sql.Append(")");
                Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_sql.ToString());
                Alta = true;

                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception E)
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Abortar_Transaccion();
                }
                throw new Exception("Alta_Registro_Accesos: " + E.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Alta);
        }
        //*************************************************************************************
        //NOMBRE DE LA FUNCIÓN: Registrar_Salida
        //DESCRIPCIÓN:
        //PARÁMETROS :
        //CREO       : Hugo Enrique Ramírez Aguilera
        //FECHA_CREO : 25-Febrero-2013 04:33 p.m.
        //MODIFICO:
        //FECHA_MODIFICO
        //CAUSA_MODIFICACIÓN
        //*************************************************************************************
        public static void Registrar_Salida()
        {
            Cls_Apl_Registro_Accesos_Negocio Rs_Alta_Acceso = new Cls_Apl_Registro_Accesos_Negocio();

            Rs_Alta_Acceso.P_Usuario_Id = MDI_Frm_Apl_Principal.Usuario_ID;
            Rs_Alta_Acceso.P_Tipo       = "SALIDA"; //    tipos: ACCESO, SALIDA
            Rs_Alta_Acceso.Alta_Registro_Accesos();
        }
        ///**************************************************************************************************************
        ///NOMBRE DE LA FUNCIÓN: Consultar_Registro_Accesos
        ///DESCRIPCIÓN         : Consulta los motivos de rechazo
        ///PARAMENTROS         : P_Registro_Accesos.- Instancia de la Clase de Negocio de Empresas con los datos que servirán de
        ///                                           filtro.
        ///CREO                : Miguel Angel Alvarado Eniquez.
        ///FECHA_CREO          : 15/Febrero/2013
        ///MODIFICO            :
        ///FECHA_MODIFICO      :
        ///CAUSA_MODIFICACIÓN  :
        ///*******************************************************************************
        public static DataTable Consultar_Registro_Accesos(Cls_Apl_Registro_Accesos_Negocio P_Registro_Accesos)
        {
            DataTable     Tabla          = new DataTable();
            StringBuilder Mi_SQL         = new StringBuilder();
            Boolean       Segundo_Filtro = false;

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

            try
            {
                Mi_SQL.Append("SELECT * FROM  " + Apl_Registro_Accesos.Tabla_Apl_Registro_Accesos);
                if (!String.IsNullOrEmpty(P_Registro_Accesos.P_Usuario_Id))
                {
                    Mi_SQL.Append(Segundo_Filtro ? " AND " : " WHERE ");
                    Mi_SQL.Append(Apl_Registro_Accesos.Campo_Usuario_Id + " = '" + P_Registro_Accesos.P_Usuario_Id + "'  ");
                    Segundo_Filtro = true;
                }
                if (!String.IsNullOrEmpty(P_Registro_Accesos.P_Tipo))
                {
                    Mi_SQL.Append(Segundo_Filtro ? " AND " : " WHERE ");
                    Mi_SQL.Append(Apl_Registro_Accesos.Campo_Tipo + " = '" + P_Registro_Accesos.P_Tipo + "'  ");
                    Segundo_Filtro = true;
                }
                if (!String.IsNullOrEmpty(P_Registro_Accesos.P_Registro_Id))
                {
                    Mi_SQL.Append(Segundo_Filtro ? " AND " : " WHERE ");
                    Mi_SQL.Append(Apl_Registro_Accesos.Campo_Registro_Id + " = '" + P_Registro_Accesos.P_Registro_Id + "'  ");
                    Segundo_Filtro = true;
                }
                if (!String.IsNullOrEmpty(P_Registro_Accesos.P_Fecha_Creo))
                {
                    Mi_SQL.Append(Segundo_Filtro ? " AND " : " WHERE ");
                    Mi_SQL.Append(" DATE_FORMAT(" + Apl_Registro_Accesos.Campo_Fecha_Creo + ", '%Y-%m-%d' ) = '" + P_Registro_Accesos.P_Fecha_Creo + "'  ");
                    Segundo_Filtro = true;
                }

                // agregar filtro y orden a la consulta
                DataSet dataset = Conexion.HelperGenerico.Obtener_Data_Set(Mi_SQL.ToString());
                if (dataset != null)
                {
                    Tabla = dataset.Tables[0];
                }
            }
            catch (Exception Ex)
            {
                String Mensaje = "Error al intentar consultar los Puestos. Error: [" + Ex.Message + "]."; //"Error general en la base de datos"
                throw new Exception(Mensaje);
            }
            finally
            {
                Conexion.HelperGenerico.Cerrar_Conexion();
            }
            return(Tabla);
        }
        //*************************************************************************************
        //NOMBRE DE LA FUNCIÓN: Registrar_Acceso
        //DESCRIPCIÓN:
        //PARÁMETROS :
        //CREO       : Hugo Enrique Ramírez Aguilera
        //FECHA_CREO : 25-Febrero-2013 04:33 p.m.
        //MODIFICO:
        //FECHA_MODIFICO
        //CAUSA_MODIFICACIÓN
        //*************************************************************************************
        public static void Registrar_Acceso()
        {
            Cls_Apl_Registro_Accesos_Negocio Rs_Alta_Acceso       = new Cls_Apl_Registro_Accesos_Negocio();
            Cls_Apl_Usuarios_Negocio         Rs_Actualiza_Usuario = new Cls_Apl_Usuarios_Negocio();

            try
            {
                Rs_Alta_Acceso.P_Usuario_Id = MDI_Frm_Apl_Principal.Usuario_ID;
                Rs_Alta_Acceso.P_Tipo       = "ACCESO"; //    tipos: ACCESO, SALIDA
                Rs_Alta_Acceso.Alta_Registro_Accesos();
                //registra el ultimo acceso en la tabla de usuario
                Rs_Alta_Acceso.P_Usuario_Id = MDI_Frm_Apl_Principal.Usuario_ID;
                Rs_Alta_Acceso.Registro_Acceso();
                //Actualiza los intentos de acceso del usuario
                Rs_Actualiza_Usuario.P_Usuario_Id         = MDI_Frm_Apl_Principal.Usuario_ID;
                Rs_Actualiza_Usuario.P_No_Intentos_Acceso = "0";
                Rs_Actualiza_Usuario.Modificar_Usuario();
            }
            catch (Exception E)
            {
                MessageBox.Show(E.ToString());
            }
        }
예제 #7
0
        //*************************************************************************************
        //NOMBRE DE LA FUNCIÓN: Iniciar_Sesion_Usuario
        //DESCRIPCIÓN: inicia Session el usuario que se logueo
        //PARÁMETROS :
        //CREO       : Sergio Manuel Gallardo Andrade
        //FECHA_CREO : 20-Febrero-2013
        //MODIFICO:
        //FECHA_MODIFICO
        //CAUSA_MODIFICACIÓN
        //*************************************************************************************
        private void Iniciar_Sesion_Usuario()
        {
            Cls_Apl_Usuarios_Negocio         Rs_Usuario_logueado = new Cls_Apl_Usuarios_Negocio();
            Cls_Ope_Turnos_Negocio           Rs_Turno            = new Cls_Ope_Turnos_Negocio();
            Cls_Apl_Registro_Accesos_Negocio Rs_Consultar_Acceso = new Cls_Apl_Registro_Accesos_Negocio();

            DataTable Dt_Resultado      = new DataTable();
            DataTable Dt_Accesos        = new DataTable();
            DataTable Dt_Turno          = new DataTable();
            DateTime  Dtime_Fecha_Turno = new DateTime();

            String Respuesta = "";
            int    Dias      = 0;

            try
            {
                Rs_Usuario_logueado.P_Usuario     = Txt_Login.Text.ToString();
                Rs_Usuario_logueado.P_Contrasenia = Cls_Seguridad.Encriptar(Txt_Password.Text.ToString());
                Rs_Usuario_logueado.P_Equipo_Creo = Environment.MachineName;

                Dt_Resultado = Rs_Usuario_logueado.Consultar_Usuario();

                if (Dt_Resultado.Rows.Count > 0)
                {
                    if (Dt_Resultado.Rows[0][Apl_Usuarios.Campo_Estatus].ToString() == "ACTIVO")
                    {
                        //se verifica si no han pasado mas de tres meses de inactividad del usuario
                        if (Deshabilitar_Usuario(Dt_Resultado.Rows[0][Apl_Usuarios.Campo_Usuario_Id].ToString()))
                        {
                            Dias = Calcular_Dias_Caduca_Password(Convert.ToDateTime(Dt_Resultado.Rows[0][Apl_Usuarios.Campo_Fecha_Expira_Contrasenia]));
                            Validar_Mensaje_Dias_Contrasenia(Dias);
                            Asignar_Valores_Globales(Dt_Resultado);

                            //  Establece el estatus de Aceptar para el usuario logueado correcto
                            Estatus_Login = Estatus_Dialogo.Aceptar;

                            //  se registra el acceso del usuario
                            Registrar_Acceso();

                            //  consulta los accesos al sistema
                            Rs_Consultar_Acceso.P_Fecha_Creo = DateTime.Now.ToString("yyyy-MM-dd");
                            Dt_Accesos = Rs_Consultar_Acceso.Consultar_Registro_Accesos();

                            ////  validacion para que el turno se cerro anteriormente *************************************
                            //Rs_Turno.P_Estatus = "ABIERTO";
                            //Dt_Turno = Rs_Turno.Consultar_Turnos();

                            //if (Dt_Turno != null && Dt_Turno.Rows.Count > 0)
                            //{
                            //    foreach (DataRow Registro in Dt_Turno.Rows)
                            //    {
                            //        Dtime_Fecha_Turno = Convert.ToDateTime(Registro["Hora_Inicio"].ToString());
                            //    }

                            //    //  comparamos la fecha actual contra la fecha del turno
                            //    if (Dtime_Fecha_Turno.ToString("dd/MM/yyyy") != DateTime.Now.ToString("dd/MM/yyyy"))
                            //    {
                            //        //  si es distinta se procedara a cerrar el turno
                            //        Rs_Turno.P_Fecha_Hora_Cierre = DateTime.Now;
                            //        //Rs_Turno.Cierre_Turno_Fuera_Fecha();

                            //        //if (Dt_Accesos.Rows.Count == 1 && Dt_Accesos != null)
                            //        //{
                            //        //    //  Se valida la conexion para el envio de la informacion al deudorcad
                            //        //    if (Validar_Conexion())
                            //        //    {
                            //        //        //  se manda la informacion pendiente
                            //        //        try
                            //        //        {
                            //        //            //Btn_Exportar_Click(null, null);
                            //        //        }
                            //        //        catch (Exception x)
                            //        //        {
                            //        //        }

                            //        //    }// fin de la validacion de conexcion

                            //        //}// fin del if de registros de accesos

                            //    }// fin de la validacion de la fecha

                            //}// fin de la validacion de los turnos


                            //  Cierra la ventana de login ****************************************************
                            this.Dispose();
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show(this, "El usuario ha caducado, favor de comunicarse con su administrador del sistema para poder acceder.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                    else
                    {
                        MessageBox.Show(this, "El usuario ha caducado, favor de comunicarse con su administrador del sistema para poder acceder.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    Respuesta = Registrar_Intentos(Txt_Login.Text.ToString());
                    if (Respuesta == "ULTIMA")
                    {
                        MessageBox.Show(this, "Si fallas una vez más se bloqueara el usuario.", "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    else
                    {
                        if (Respuesta == "BLOKEADO")
                        {
                            MessageBox.Show(this, "El Usuario se ha bloqueado por intentos fallidos.", "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                        else
                        {
                            MessageBox.Show(this, "El Usuario o Contraseña no son los correctos por favor verifícalos.", "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
                    Txt_Login.Focus();
                }
            }
            catch (Exception Ex)
            {
                throw new Exception("Iniciar_Sesion_Usuario: " + Ex.Message);
            }
        }