Example #1
0
    protected void btnIngresar_Click(object sender, EventArgs e)
    {
        lblError.Text = "";

        //try
        //{
        if (password.Text.Length > 2)
        {
            Autenticar acceso = new Autenticar();
            acceso.Usuario  = username.Text;
            acceso.Password = password.Text;
            object[] valido = acceso.autenticar();
            if (Convert.ToBoolean(valido[0]))
            {
                if (Convert.ToBoolean(valido[1]))
                {
                    Usuarios usuario = new Usuarios();
                    usuario.Usuario = username.Text;
                    usuario.obtienePerfilUsuario();
                    if (usuario.Perfil != 0)
                    {
                        usuario.obtieneNombreUsuario();
                        if (usuario.Perfil == 1)
                        {
                            usuario.existeSessionPrevia();
                            if (!usuario.SesionPrevia)
                            {
                                usuario.registraAccesoAdmin();
                                if (usuario.Registrado)
                                {
                                    /*Session["nombreUsuario"] = usuario.Nombre.Trim();
                                     * Session["usuario"] = usuario.Usuario;*/
                                    Response.Redirect("Administracion.aspx?u=" + usuario.Usuario + "&nu=" + usuario.Nombre);
                                }
                                else
                                {
                                    lblError.Text = "Se produjo un error al intentar accesar, contacte al administrador del sistema para que le solucione su acceso.";
                                }
                            }
                            else
                            {
                                btnCierreSesion.Visible = true;
                                btnIngresar.Enabled     = false;
                                lblError.Text           = "Aún cuenta con una sesión activa; de clic en el siguiente botón para realizar el cierre de sesión correspondiente.";
                            }
                        }
                        else
                        {
                            DataSet islas = usuario.obtienePuntos();
                            if (islas != null)
                            {
                                if (islas.Tables[0].Rows.Count != 0)
                                {
                                    CierreCaja cierre = new CierreCaja();
                                    cierre.FechaDia = fechas.obtieneFechaLocal().ToString("yyyy-MM-dd");
                                    cierre._horaDia = fechas.obtieneFechaLocal().ToString("HH:mm:ss");
                                    cierre.Punto    = usuario.Punto;
                                    cierre.existeCierreDia();
                                    if (cierre.cierreDia)
                                    {
                                        string alerta = "alert('Ya se ha realizado el corte del día y no es posible realizar más ventas por el día de hoy')";
                                        ScriptManager.RegisterStartupScript(this, typeof(Page), "cierre", alerta, true);
                                    }
                                    else
                                    {
                                        usuario.existeSessionPrevia();
                                        if (!usuario.SesionPrevia)
                                        {
                                            if (islas.Tables[0].Rows.Count == 1)
                                            {
                                                usuario.obtienePuntoVenta();
                                                usuario.tieneCajaAsignada();
                                                Cajas caja = new Cajas();
                                                if (!usuario.UltimaCaja)
                                                {
                                                    caja.Usuario = usuario.Usuario;
                                                    caja.Acceso  = "E";
                                                    caja.Punto   = usuario.Punto;
                                                    caja.generaCaja();
                                                    object[] cajaAsignada = caja.Valores;
                                                    if (Convert.ToBoolean(cajaAsignada[0]))
                                                    {
                                                        Islas isla = new Islas();
                                                        isla.Almacen = usuario.Punto;
                                                        isla.obtieneNombre();

                                                        //Notificaicon de mas de 2 accesos al sistema
                                                        object[] accesos = caja.cajasDelDia();
                                                        if (Convert.ToBoolean(accesos[0]))
                                                        {
                                                            int registros = Convert.ToInt32(Convert.ToString(accesos[1]));
                                                            if (registros > 2)
                                                            {
                                                                Notificaciones notifi = new Notificaciones();
                                                                notifi.Punto         = isla.Almacen;
                                                                notifi.Usuario       = usuario.Usuario;
                                                                notifi.Fecha         = fechas.obtieneFechaLocal();
                                                                notifi.Estatus       = "P";
                                                                notifi.Extra         = registros.ToString();
                                                                notifi.Clasificacion = 4;
                                                                notifi.Origen        = "V";
                                                                notifi.armaNotificacion();
                                                                notifi.agregaNotificacion();
                                                            }
                                                        }

                                                        /*Session["nomPv"] = isla.Nombre;
                                                         * Session["caja"] = caja.Caja;
                                                         * Session["nombreUsuario"] = usuario.Nombre.Trim();
                                                         * Session["usuario"] = usuario.Usuario;*/
                                                        //string href = "PuntoVenta.aspx?u=" + usuario.Usuario + "&nu=" + usuario.Nombre + "&p=" + usuario.Punto + "&np=" + isla.Nombre + "&c=" + caja.Caja;
                                                        //ScriptManager.RegisterStartupScript(this, this.GetType(), "onclick", "javascript:window.location.href('"+ href+ "');", true);
                                                        //ScriptManager.RegisterStartupScript(this, this.GetType(), "onclick", "javascript:window.open( '"+href+"','_blank','height=600px,width=600px,scrollbars=1');", true);

                                                        try
                                                        {
                                                            Response.Redirect("PuntoVenta.aspx?u=" + usuario.Usuario + "&nu=" + usuario.Nombre + "&p=" + usuario.Punto + "&np=" + isla.Nombre + "&c=" + caja.Caja, false);
                                                            Context.ApplicationInstance.CompleteRequest();
                                                        }
                                                        catch (ThreadAbortException ex)
                                                        {
                                                            Thread.ResetAbort();
                                                            Response.Redirect("PuntoVenta.aspx?u=" + usuario.Usuario + "&nu=" + usuario.Nombre + "&p=" + usuario.Punto + "&np=" + isla.Nombre + "&c=" + caja.Caja, false);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        lblError.Text = "Se produjo un error al accesar:" + Convert.ToString(cajaAsignada[1]);
                                                    }
                                                }
                                                else
                                                {
                                                    lblError.Text = "No realizó su corte de caja, contacte al administrador para realizar el corte correspondiente.";
                                                }
                                            }
                                            else
                                            {
                                                SqlDataSourceIslas.DataBind();
                                                lblErrorIsla.Text = "";
                                                pnlMask.Visible   = true;
                                                pnlIslas.Visible  = true;
                                            }
                                        }
                                        else
                                        {
                                            btnCierreCaja.Visible = true;
                                            btnIngresar.Enabled   = false;
                                            lblError.Text         = "Aún cuenta con una sesión activa o no realizó su corte de caja; de clic en el siguiente botón para realizar el cierre correspondiente.";
                                        }
                                    }
                                }
                                else
                                {
                                    lblError.Text = "No cuenta con una Tienda asignada, por favor contacte al administrador del sistema para que le asigne una.";
                                }
                            }
                            else
                            {
                                lblError.Text = "No cuenta con una Tienda asignada, por favor contacte al administrador del sistema para que le asigne una.";
                            }
                        }
                    }
                    else
                    {
                        lblError.Text = "No cuenta con el perfil necesario para accesar a la aplicación, contacte a su administrador del sistema.";
                    }
                }
                else
                {
                    lblError.Text = "Usuario y/o Contraseña Incorrectos.";
                }
            }
            else
            {
                lblError.Text = Convert.ToString(valido[1]);
            }
        }
        else
        {
            lblError.Text = "La contraseña debe contener entre 5 y 15 caracteres.";
        }

        //}
        //catch (Exception ex)
        //{
        //    lblError.Text = ex.Message;
        //}
    }