public Controlador.LogicaAcceso VerificarAutorizacion(Controlador.LogicaAcceso clsLogicaAcceso) { Controlador.LogicaAcceso clsLogicaAccesox = new Controlador.LogicaAcceso(); SqlConnection cnx = Conexion.Conexion.ObtenerConexion(); cnx.Open(); SqlCommand comando = new SqlCommand(String.Format( "SELECT IIF (getdate() BETWEEN t1.FechaDesde AND t1.FechaHasta, 1,0) AS Autorizacion, t1.idTipoPersonal, t1.idEmpresaColaboradora, t2.Apellidos, t2.Nombres, t1.idpersonal AS DNI, " + "t3.NombreEmpresa, t4.NombreTipoPersonal, t2.Foto " + "FROM acceso as t1 " + "INNER JOIN personal AS t2 ON t1.idPersonal=t2.idPersonal " + "INNER JOIN empresacolaboradora AS t3 ON t1.idEmpresaColaboradora=t3.idEmpresaColaboradora " + "INNER JOIN tipopersonal AS t4 ON t1.idTipoPersonal=t4.idTipoPersonal " + "WHERE T1.idpersonal = '{0}'", clsLogicaAcceso.idacceso), cnx); SqlDataReader reader = comando.ExecuteReader(); while (reader.Read()) { clsLogicaAccesox.autorizacion = Convert.ToInt32(reader["Autorizacion"]); clsLogicaAccesox.apellidos = Convert.ToString(reader["Apellidos"]); clsLogicaAccesox.nombres = Convert.ToString(reader["Nombres"]); clsLogicaAccesox.dni = Convert.ToString(reader["DNI"]); clsLogicaAccesox.nombreempresa = Convert.ToString(reader["NombreEmpresa"]); clsLogicaAccesox.nombretipopersonal = Convert.ToString(reader["NombreTipoPersonal"]); clsLogicaAccesox.idTipoPersonal = Convert.ToString(reader["idTipoPersonal"]); clsLogicaAccesox.idEmpresaColaboradora = Convert.ToString(reader["idEmpresaColaboradora"]); clsLogicaAccesox.foto = (byte[])reader["Foto"]; } cnx.Close(); return clsLogicaAccesox; }
private void txtDNI_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == Convert.ToChar(Keys.Enter)) { Controlador.LogicaAcceso clsLogicaacceso = new Controlador.LogicaAcceso(); clsLogicaacceso.idacceso = txtDNI.Text; Modelo.LogicaAcceso_BD clsLogicaAccesoBD = new Modelo.LogicaAcceso_BD(); clsLogicaacceso = clsLogicaAccesoBD.VerificarAutorizacion(clsLogicaacceso); if (clsLogicaacceso.dni != null) { //existe el acceso parta el personal pero no se si esta activado su pase lblNombres.Text = clsLogicaacceso.nombres; lblApellidos.Text = clsLogicaacceso.apellidos; lblDNI.Text = clsLogicaacceso.dni; lblNombreEmpresa.Text = clsLogicaacceso.nombreempresa; lblTipoPersonal.Text = clsLogicaacceso.nombretipopersonal; picFoto.Image = byteArrayToImage(clsLogicaacceso.foto); // aqui verifico el estado de su pase if (clsLogicaacceso.autorizacion == 1) { serialPort1.Write(Verde_ON); lblAcceso.Text = "Acceso Permitido"; lblAcceso.ForeColor = Color.Green; // ---> verifico el ultimo registro de ingreso y salidas Controlador.Registro clsRegistro = new Controlador.Registro(); clsRegistro.idAcceso = clsLogicaacceso.dni; Modelo.Registro_BD clsRegistroBD = new Modelo.Registro_BD(); clsRegistro = clsRegistroBD.BuscarUltimoRegistrodeESxIDACCESO(clsRegistro); // fin <--- int estado = 3; if (clsRegistro.idEstado != null) { estado = int.Parse(clsRegistro.idEstado); } Controlador.Registro clsRegistrox = new Controlador.Registro(); // Modelo.Registro_BD clsRegistroBDx = new Modelo.Registro_BD(); if (estado == 1) { //el personal sale de las instalaciones clsRegistrox.idTipoPersonal = clsLogicaacceso.idTipoPersonal; clsRegistrox.idEmpresaColaboradora = clsLogicaacceso.idEmpresaColaboradora; clsRegistrox.idAcceso = clsLogicaacceso.dni; clsRegistrox.idEstado = "0"; Modelo.Registro_BD.insertarAcceso(clsRegistrox);//retorna 1 si se guardo correctamente contadorgrid++; dataGridView1.Rows.Add(contadorgrid,byteArrayToImage(clsLogicaacceso.foto),clsLogicaacceso.apellidos +" "+clsLogicaacceso.nombres, clsLogicaacceso.dni); dataGridView1.Sort(this.dataGridView1.Columns["Column4"], ListSortDirection.Descending); } else if (estado == 0) { //el personal ingresa a las instalaciones clsRegistrox.idTipoPersonal = clsLogicaacceso.idTipoPersonal; clsRegistrox.idEmpresaColaboradora = clsLogicaacceso.idEmpresaColaboradora; clsRegistrox.idAcceso = clsLogicaacceso.dni; clsRegistrox.idEstado = "1"; Modelo.Registro_BD.insertarAcceso(clsRegistrox);//retorna 1 si se guardo correctamente contadorgrid++; dataGridView1.Rows.Add(contadorgrid, byteArrayToImage(clsLogicaacceso.foto), clsLogicaacceso.apellidos + " " + clsLogicaacceso.nombres, clsLogicaacceso.dni); dataGridView1.Sort(this.dataGridView1.Columns["Column4"], ListSortDirection.Descending); } else { clsRegistrox.idTipoPersonal = clsLogicaacceso.idTipoPersonal; clsRegistrox.idEmpresaColaboradora = clsLogicaacceso.idEmpresaColaboradora; clsRegistrox.idAcceso = clsLogicaacceso.dni; clsRegistrox.idEstado = "1"; Modelo.Registro_BD.insertarAcceso(clsRegistrox);//retorna 1 si se guardo correctamente contadorgrid++; dataGridView1.Rows.Add(contadorgrid, byteArrayToImage(clsLogicaacceso.foto), clsLogicaacceso.apellidos + " " + clsLogicaacceso.nombres, clsLogicaacceso.dni); dataGridView1.Sort(this.dataGridView1.Columns["Column4"], ListSortDirection.Descending); } } else if (clsLogicaacceso.autorizacion == 0) { serialPort1.Write(Rojo_ON); //prender 3segundos lblAcceso.Text = "ACCESO DENEGADO"; lblAcceso.ForeColor = Color.Red; } } else { //no existe personal //poner foto vacia picFoto.Image = null; lblNombres.Text ="?"; lblApellidos.Text = "?"; lblDNI.Text = "?"; lblNombreEmpresa.Text = "?"; lblTipoPersonal.Text = "?"; } } }