private void xVerificationControl_OnComplete(object Control, FeatureSet FeatureSet, ref DPFP.Gui.EventHandlerStatus EventHandlerStatus) { //DPFP.Template TemplateBD = new DPFP.Template(); RN_Personal obj = new RN_Personal(); RN_Asistencia objas = new RN_Asistencia(); DataTable datosPersona = new DataTable(); DataTable dataAsis = new DataTable(); //byte[] finguerByte; string NroIDPersona = ""; int xitn = 1; byte[] fingerByte; string rutaFoto; bool TerminarBucle = false; int totalFila = 0; Frm_Filtro fil = new Frm_Filtro(); int HoLimite = Dtp_Hora_Limite.Value.Hour; int MiLimite = Dtp_Hora_Limite.Value.Minute; int horaCaptu = DateTime.Now.Hour; int minutoCaptu = DateTime.Now.Minute; try { datosPersona = obj.RN_Leer_todoPersona(); totalFila = datosPersona.Rows.Count; if (datosPersona.Rows.Count <= 0) { return; } var datoPer = datosPersona.Rows[0]; foreach (DataRow xitem in datosPersona.Rows) { if (TerminarBucle == true) { return; } fingerByte = (byte[])xitem["FinguerPrint"]; NroIDPersona = Convert.ToString(xitem["Id_Pernl"]); DPFP.Template TemplateBD = new DPFP.Template(); TemplateBD.DeSerialize(fingerByte); Verificar.Verify(FeatureSet, TemplateBD, ref Resultado); if (Resultado.Verified == true) { rutaFoto = Convert.ToString(xitem["Foto"]); lbl_nombresocio.Text = Convert.ToString(xitem["Nombre_Completo"]); Lbl_Idperso.Text = Convert.ToString(xitem["Id_Pernl"]); lbl_Dni.Text = Convert.ToString(xitem["DNIPR"]); if (File.Exists(rutaFoto) == true) { picSocio.Load(rutaFoto.Trim()); } else { picSocio.Load(Application.StartupPath + @"\user.png"); } if (objas.RN_Checar_SiPersonal_YaMarco_Asistencia(Lbl_Idperso.Text.Trim()) == true) { lbl_msm.BackColor = Color.MistyRose; lbl_msm.ForeColor = Color.Red; lbl_msm.Text = "El sistema verificó que el personal ya marcó su asistencia"; tocar_timbre(); lbl_Cont.Text = "10"; xVerificationControl.Enabled = true; pnl_Msm.Visible = true; tmr_Conta.Enabled = true; return; } if (objas.RN_Checar_SiPersonal_YaMarco_Entrada(Lbl_Idperso.Text.Trim()) == true) { Frm_Sinox sino = new Frm_Sinox(); TerminarBucle = true; fil.Show(); sino.Lbl_msm1.Text = "El usuario ya tiene registrada su entrada, ¿Te gustarìa marcar su salida?"; sino.ShowDialog(); fil.Hide(); if (Convert.ToString(sino.Tag) == "Si") { dataAsis = objas.RN_Buscar_Asistencia_deEntrada(Lbl_Idperso.Text); if (dataAsis.Rows.Count < 1) { return; } lbl_IdAsis.Text = Convert.ToString(dataAsis.Rows[0]["Id_asis"]); objas.RN_Registrar_Salida_Personal(lbl_IdAsis.Text, Lbl_Idperso.Text, lbl_hora.Text, 8); if (BD_Asistencia.salida == true) { lbl_msm.BackColor = Color.YellowGreen; lbl_msm.ForeColor = Color.White; lbl_msm.Text = "La salida del personal fue registrada exitosamente"; tocar_timbreOK(); xVerificationControl.Enabled = false; pnl_Msm.Visible = true; lbl_Cont.Text = "10"; tmr_Conta.Enabled = true; TerminarBucle = true; } } else { LimpiarFormulario(); sec = 10; tmr_Conta.Stop(); pnl_Msm.Visible = false; xVerificationControl.Enabled = true; lbl_Cont.Text = "10"; } } else { //entonces marcar entrada if (horaCaptu >= HoLimite) { lbl_msm.BackColor = Color.MistyRose; lbl_msm.ForeColor = Color.Red; lbl_msm.Text = "Estimado usuario, su hora de entrada ya caducó. Vuelve a casa y regresa mañana"; tocar_timbre(); pnl_Msm.Visible = true; tmr_Conta.Enabled = true; lbl_Cont.Text = "10"; xVerificationControl.Enabled = false; return; } calcular_Minutos_Tardanza(); lbl_IdAsis.Text = RN_Utilitario.RN_NroDoc(3); objas.RN_Registrar_Entrada_Personal(lbl_IdAsis.Text, Lbl_Idperso.Text, lbl_hora.Text, Convert.ToDouble(lbl_totaltarde.Text), Convert.ToInt32(lbl_TotalHotrabajda.Text), lbl_justifi.Text); if (BD_Asistencia.entrada == true) { RN_Utilitario.RN_Actualiza_Tipo_Doc(3); lbl_msm.BackColor = Color.YellowGreen; lbl_msm.ForeColor = Color.White; lbl_msm.Text = "La entrada del personal fue registrada exitosamente"; tocar_timbreOK(); pnl_Msm.Visible = true; tmr_Conta.Enabled = true; xVerificationControl.Enabled = false; lbl_Cont.Text = "10"; TerminarBucle = true; } } } else { if (xitn == totalFila) { if (TerminarBucle == false) { lbl_msm.BackColor = Color.MistyRose; lbl_msm.ForeColor = Color.Red; lbl_msm.Text = "La Huella Dactilar no existe en la base de datos"; tocar_timbre(); lbl_Cont.Text = "10"; pnl_Msm.Visible = true; tmr_Conta.Enabled = true; xVerificationControl.Enabled = false; } } } xitn += 1; } } catch (Exception ex) { MessageBox.Show("Algo malo pasó: " + ex.Message, "Advertencia de Seguridad", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void btn_buscar_Click(object sender, EventArgs e) { RN_Personal obj = new RN_Personal(); RN_Asistencia objas = new RN_Asistencia(); DataTable datapersona = new DataTable(); DataTable dataasis = new DataTable(); Frm_Filtro fil = new Frm_Filtro(); string NroIDPersona; int cont = 1; string rutaFoto; int HoLimite = Dtp_Hora_Limite.Value.Hour; int MiLimite = Dtp_Hora_Limite.Value.Minute; int horaCaptu = DateTime.Now.Hour; int minutoCaptu = DateTime.Now.Minute; try { datapersona = obj.RN_Buscar_Personal_xValor(txt_dni_Buscar.Text.Trim()); if (datapersona.Rows.Count <= 0) { lbl_msm.BackColor = Color.MistyRose; lbl_msm.ForeColor = Color.Red; lbl_msm.Text = "El Nro de Dni no existe"; tocar_timbre(); lbl_Cont.Text = "10"; pnl_Msm.Visible = true; tmr_Conta.Enabled = true; return; } else { var dt = datapersona.Rows[0]; rutaFoto = Convert.ToString(dt["Foto"]); lbl_nombresocio.Text = Convert.ToString(dt["Nombre_Completo"]); lbl_Dni.Text = Convert.ToString(dt["DNIPR"]); NroIDPersona = Convert.ToString(dt["Id_Pernl"]); Lbl_Idperso.Text = Convert.ToString(dt["Id_Pernl"]); if (File.Exists(rutaFoto) == true) { picSocio.Load(rutaFoto.Trim()); } else { picSocio.Load(Application.StartupPath + @"\user.png"); } if (objas.RN_Checar_SiPersonal_YaMarco_Asistencia(Lbl_Idperso.Text) == true) { lbl_msm.BackColor = Color.MistyRose; lbl_msm.ForeColor = Color.Red; lbl_msm.Text = "El Sistema verifico, que el personal ya marco su entrada y salida"; tocar_timbre(); lbl_Cont.Text = "10"; pnl_Msm.Visible = true; tmr_Conta.Enabled = true; return; } if (objas.RN_Checar_SiPersonal_YaMarco_suEntrada(Lbl_Idperso.Text.Trim()) == true) { //le toca marcar su salida dataasis = objas.RN_Buscar_Asistencia_deEntrada(Lbl_Idperso.Text); if (dataasis.Rows.Count > 1) { return; } lbl_IdAsis.Text = Convert.ToString(dataasis.Rows[0]["Id_asis"]); //double horain = Convert.ToDouble(dataasis.Rows[0]["HoIngreso"]); objas.RN_Registrar_Salida_Personal(lbl_IdAsis.Text, Lbl_Idperso.Text, lbl_hora.Text, 8); if (BD_Asistencia.Salida == true) { lbl_msm.BackColor = Color.YellowGreen; lbl_msm.ForeColor = Color.White; lbl_msm.Text = "La Salida del personal fue Registrada Exitosamente"; tocar_bienvenida(); pnl_Msm.Visible = true; tmr_Conta.Enabled = true; lbl_Cont.Text = "10"; } } else { //le toca marcar entrada if (horaCaptu > HoLimite) { lbl_msm.BackColor = Color.MistyRose; lbl_msm.ForeColor = Color.Red; lbl_msm.Text = "Ya no puedes marcar asistencia. Ha llegado Tarde"; tocar_timbre(); lbl_Cont.Text = "10"; pnl_Msm.Visible = true; tmr_Conta.Enabled = true; return; } // esta en el tiempo correcto: Calcular_Minutos_Tardanza(); lbl_IdAsis.Text = RN_Utilitario.RN_NroDoc(3); objas.RN_Registrar_Entrada_Personal(lbl_IdAsis.Text, Lbl_Idperso.Text, lbl_hora.Text, Convert.ToDouble(lbl_totaltarde.Text), 8, lbl_justifi.Text); if (BD_Asistencia.Entrada == true) { RN_Utilitario.RN_Actualizar_Tipo_Doc(3); lbl_msm.BackColor = Color.YellowGreen; lbl_msm.ForeColor = Color.White; lbl_msm.Text = "La entrada del personal fue Registrada Exitosamente"; tocar_bienvenida(); pnl_Msm.Visible = true; tmr_Conta.Enabled = true; lbl_Cont.Text = "10"; } } } } catch (Exception ex) { throw; } }