private void InicializarEstados() { try { //sacar ID var idusu = accesoDatos.GetIDUsuarioByUserName(Environment.UserName); //Comprobar si ya se ha marcado la entrada: var horainicio = accesoDatos.GetHoraInicioByIDUsuario(idusu); if (horainicio != null) { lblHoraEntrada.Text = ((DateTime)horainicio).ToString("G"); btnEntrada.Enabled = false; } //Comprobar si ya se ha marcado la salida: var horafin = accesoDatos.GetHoraFinByIDUsuario(idusu); if (horafin != null) { lblHoraSalida.Text = ((DateTime)horafin).ToString("G"); btnSalida.Enabled = false; } } catch (Exception ex) { accesoDatos.guardarLog(ex.Message, 2); } accesoDatos.guardarLog("InicializarEstados realizada correctamente", 4); }
//METODOS DE LOS BOTONES: private void btnEntrada_Click(object sender, EventArgs e) { DateTime horaentrada = DateTime.Now; //variable que cvale la hora-fecha actual lblHoraEntrada.Text = horaentrada.ToString(); //el label ("---") de Text lo modificamos por horaentrada btnEntrada.Enabled = false; //desactivamos el botón this.accesoDatos = new AccesoFichador(); //instaciamos un objeto para conectarnos con la base de datos //llamamos al metodo correspondiente con sus parametros var IDUsuario = accesoDatos.GetIDUsuarioByUserName(Environment.UserName); accesoDatos.GuardarUsuarioYHoraEntrada(IDUsuario, horaentrada); btnSalida.Enabled = true; buttonI = 1; InicializarEstados(); }
private void btnSalida_Click(object sender, EventArgs e) { try { DateTime horasalida = DateTime.Now; lblHoraSalida.Text = horasalida.ToString(); btnSalida.Enabled = false; this.accesoDatos = new AccesoFichador(); var IDUsuario = accesoDatos.GetIDUsuarioByUserName(Environment.UserName); accesoDatos.GuardarHoraSalida(IDUsuario, horasalida); InicializarEstados(); } catch (Exception ex) { accesoDatos.guardarLog(ex.Message, 2); } accesoDatos.guardarLog("btnSalida_click realizada correctamente", 4); }
private void fichadorToolStripMenuItem_Click(object sender, EventArgs e) { try { if (accesoDatos == null) { this.accesoDatos = new AccesoFichador(); } var idusu = accesoDatos.GetIDUsuarioByUserName(Environment.UserName); var hInicio = accesoDatos.GetHoraInicioByIDUsuario(idusu); var hFin = accesoDatos.GetHoraFinByIDUsuario(idusu); if (hInicio != null && hFin != null) { MessageBox.Show("Ya has fichado, no se te permite volver a fichar por hoy"); } else { if (vFichador == null || vFichador.IsDisposed) { vFichador = new FrmFichador(); vFichador.MdiParent = this; } if (vFichador.CanFocus) { vFichador.Focus(); } else { vFichador.Show(); } } } catch (Exception ex) { accesoDatos.guardarLog(ex.Message, 2); } accesoDatos.guardarLog("fichadorToolStripMenuItem_Click correctamente realizado", 4); }
public void AnadirTareas(Tareas ventanaTareas) { try { if (accesoDatos == null) { accesoDatos = new AccesoFichador(); } var valor = (UsuariosListas)cBoxListadoAM.SelectedValue; var usuario = (UsuariosListas)cBoxListadoAM.SelectedItem; //TODO: He encontrado otra manera de hacer esto //--> var concatenacion = (DateDiaPickerAM.Value).Date + ((DateTime) radTimePickerHoraInicioAM.Value).TimeOfDay; //Si vais a utilizar el resultado de sumaDiayHora como DAtetime y no como string, devolver en la funcion datetime y os ahorrais el // casteo cada vez que la utiliceis //var concatenacion = accesoDatos.sumaDiaYHora(DateDiaPickerAM.Value, (DateTime)radTimePickerHoraInicioAM.Value)); var concatenacion = (DateDiaPickerAM.Value).Date + ((DateTime)radTimePickerHoraInicioAM.Value).TimeOfDay; var nomTarea = txtNombreTareaAM.Text; var descTarea = txtDescripcionAM.Text; //saca la duracion total de ese usuario y de esa fecha "concatenada" string minutosTrabajadosDia = accesoDatos.HorasTrabajadas(Convert.ToInt32(valor.ID), Convert.ToDateTime(concatenacion)); //los minutos totales trabajados en ese dia y para ese usuario int minutosFichados = accesoDatos.obtenerHorasTrabajadasDiaFichador(DateDiaPickerAM.Value.ToString("d"), valor.ID); //que admita solo enteros el campo duracion: int dur = Convert.ToInt32(nmrDuracion.Value); //cada vez que le pongamos una duracion que nos lo sume en nuestra variable, para ir acumulandolo y poder controlarlo int sumaDurYminTrabajados = Convert.ToInt32(minutosTrabajadosDia) + dur; //saca el dia del pick var day = DateDiaPickerAM.Value.ToString("d"); //saca nuestro ID: var sacaID = (UsuariosListas)cBoxListadoAM.SelectedValue; var ide = accesoDatos.GetIDUsuarioByUserName(sacaID.nombre); //saca la hora y fecha seleccionadas var horaDeComboBox = (DateTime)radTimePickerHoraInicioAM.Value; var horaDia = horaDeComboBox.ToString("t"); //tengo hora del combobox, la que hayamos seleccionado, con formato 00:00 var horaDelDia = Convert.ToDateTime(concatenacion); //convertido //saca la HoraInicio, dado el dia y su id var horaInicios = Convert.ToDateTime(accesoDatos.GetHoraInicioByDia(Convert.ToDateTime(day), ide)); //saca HoraFin dado el dia y su id var horaFinal = Convert.ToDateTime(accesoDatos.GetHoraFinByDia(Convert.ToDateTime(day), ide)); //si los minutos totales fichados(haber fichado y desfichado) son mayores o iguales que la suma de los minutos y duraciones que lo inserte //si tenemos 20 minutos fichados y hemos puesto duracion de 10 y luego de 5, si que las insertaria, porque 20>=10 y 20>=(10+5) if (minutosFichados == -1) { MessageBox.Show("NO HAS TERMINADO DE FICHAR"); } else if (minutosFichados < sumaDurYminTrabajados) { MessageBox.Show("REVISAR MINUTOS DE LAS TAREAS"); } //si se pasa y ya no se cumple no dejará insertar else if (horaDelDia < horaInicios || horaDelDia > horaFinal) { MessageBox.Show("LA HORA ES INCORRECTA"); } else if (dur == 0) { MessageBox.Show(("NO PUEDES PONER VALOR 0 EN UNA TAREA")); } else { accesoDatos.insertaTarea(Convert.ToDateTime(concatenacion), dur, nomTarea, descTarea, usuario.ID); } if (accesoDatos == null) { accesoDatos = new AccesoFichador(); } // int resultado = accesoDatos.HorasTrabajadas(); if (DatosFich != null) { //hacemos el filtro comparando que el ID del user de la tabla Usuarios coincida con el del objeto de Fichador(el que hayamos seleccionado) DatosFich.Where(user => user.IDUsuario == valor.ID).ToList(); } var listas = accesoDatos.RellenaComboBox(); cBoxListadoAM.DataSource = listas; } catch (Exception ex) { accesoDatos.guardarLog(ex.Message, 2); } accesoDatos.guardarLog("AñadirTareas correctamente realizado", 4); }