Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        //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();
        }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }