Exemplo n.º 1
0
        // GET: Colaboradores/Delete/5
        public ActionResult Delete(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            Colaboradores colaboradores = db.Colaboradores.Find(id);

            if (colaboradores == null)
            {
                return(HttpNotFound());
            }

            else
            {
                RegistrosDiarios registrodiarios = db.RegistrosDiarios.Where(r => r.COD_Colaborador == id).FirstOrDefault();

                if (registrodiarios == null)
                {//no existe registro de ingresoso salidas
                    ViewBag.mensajedelete        = "¿Estás seguro que quieres eliminar los datos del colaborador?";
                    ViewBag.estadobotoneleiminar = "enabled";
                }
                else
                {
                    ViewBag.mensajedelete = "Los datos del colaborador no se pueden eliminar, ya existe información registrada";

                    ViewBag.estadobotoneleiminar = "disabled";
                }
            }



            ViewBag.DetalleColaborador = colaboradores;


            return(View(colaboradores));
        }
Exemplo n.º 2
0
        public PartialViewResult GetColaboradorById(string COD_Colaborador)
        {
            using (db)
            {
                var GetColaboradorById = db.Colaboradores.Find(COD_Colaborador);

                //Colaboradores GetColaboradorById = new Colaboradores();
                //GetColaboradorById = db.Colaboradores.Find(COD_Colaborador);

                if (GetColaboradorById == null)
                {
                    ViewBag.desconocido = "COLABORADOR NO REGISTRADO";
                    ViewBag.FechayHora  = DateTime.Now;
                    return(PartialView("GetColaboradorDesconocido", null));
                }

                if (GetColaboradorById != null)
                {
                    if (GetColaboradorById.Estado == true)
                    {
                        if (DateTime.Now >= GetColaboradorById.FechaIngresoReingreso && DateTime.Now <= GetColaboradorById.FechaCese)
                        {//Hasta aqui el colaborador tiene permitido el ingreso y vigente su contrato
                            var GetRegistroDiarioColaborador = dbx.RegistrosDiarios.Where(r => r.COD_Colaborador == COD_Colaborador && r.Fecha.Month == DateTime.Today.Month && r.Fecha.Year == DateTime.Today.Year && r.Fecha.Day == DateTime.Today.Day).FirstOrDefault();

                            if (GetRegistroDiarioColaborador == null)//el colaborador no registro el dia de hoy su ingreso o salida
                            {
                                //registramos su INGRESO al no existir registro alguno de su ingreso
                                //REGISTRAR INGRESO
                                RegistrosDiarios rd = new RegistrosDiarios();

                                rd.COD_Colaborador     = COD_Colaborador;
                                rd.Periodo             = Convert.ToString(DateTime.Today.Year);
                                rd.Fecha               = DateTime.Now;
                                rd.FechaYHoraIngreso   = DateTime.Now;
                                rd.FechaYHoraSalida    = null;
                                rd.UltimaActualizacion = DateTime.Now;
                                // registramos su ingreso pero su salida lo ponemos en null

                                db.RegistrosDiarios.Add(rd);
                                db.SaveChanges();

                                ViewBag.estado        = "ACCESO REGISTRADO";
                                ViewBag.ingresosalida = "INGRESO";
                                ViewBag.FechayHora    = DateTime.Now;
                            }
                            else
                            {                                                                                                                        //el colaborador registro solamente su  ingreso o registro ambos(Ingreso salida)
                                if (GetRegistroDiarioColaborador.FechaYHoraIngreso != null && GetRegistroDiarioColaborador.FechaYHoraSalida == null) //el colaborador ya registro suingreso quedaria pendiente registrar su salida
                                {
                                    Calendarios GetCalendario = dbx.Calendarios.Where(r => r.Fecha == DateTime.Today).FirstOrDefault();
                                    if (GetCalendario != null)
                                    {    // T2 = Domingos feriados
                                        //  T1= horas extra 25% y 35%
                                        //  HN =  horas Normales sin sobretiempo
                                        double T1 = 0, T2 = 0, HN = 0, HorasTrabajadas = 0, descanso;
                                        descanso = 1;
                                        RegistrosDiarios registrodiariosx = db.RegistrosDiarios.Find(GetRegistroDiarioColaborador.ID_RegistroDiario);

                                        DateTime endTime = DateTime.Now;

                                        DateTime startTime = registrodiariosx.FechaYHoraIngreso;


                                        TimeSpan span = endTime.Subtract(startTime);
                                        HorasTrabajadas = span.TotalHours;

                                        if (span.TotalHours >= 6)
                                        {//con descanso
                                            HorasTrabajadas = span.TotalHours - descanso;
                                        }
                                        else
                                        {//sin descanso
                                            HorasTrabajadas = span.TotalHours;
                                        }


                                        if (GetCalendario.ID_TipoDia == "T2")
                                        {
                                            T2 = HorasTrabajadas;
                                            T1 = 0;
                                            HN = 0;
                                        }
                                        else if (GetCalendario.ID_TipoDia == "T1")
                                        {
                                            if (HorasTrabajadas >= 0.5 && HorasTrabajadas <= 8)
                                            {
                                                T2 = 0;
                                                T1 = 0;
                                                HN = HorasTrabajadas;
                                            }
                                            else if (HorasTrabajadas > 8)
                                            {
                                                T2 = 0;
                                                T1 = HorasTrabajadas - 8;
                                                HN = 8;
                                            }
                                        }



                                        //REGISTRAR SALIDA

                                        registrodiariosx.FechaYHoraSalida    = DateTime.Now;
                                        registrodiariosx.UltimaActualizacion = DateTime.Now;
                                        registrodiariosx.ID_TipoDia          = GetCalendario.ID_TipoDia;
                                        registrodiariosx.HorasTrabajadas     = Convert.ToDecimal(HorasTrabajadas);
                                        registrodiariosx.HN = Convert.ToDecimal(HN);
                                        registrodiariosx.T1 = Convert.ToDecimal(T1);
                                        registrodiariosx.T2 = Convert.ToDecimal(T2);

                                        db.Entry(registrodiariosx).State = EntityState.Modified;
                                        db.SaveChanges();

                                        ViewBag.estado        = "ACCESO REGISTRADO";
                                        ViewBag.ingresosalida = "SALIDA";
                                        ViewBag.FechayHora    = DateTime.Now;
                                    }
                                }
                                else if (GetRegistroDiarioColaborador.FechaYHoraIngreso != null && GetRegistroDiarioColaborador.FechaYHoraSalida != null)// el colaborador ya registro su ingreso y salida
                                {
                                    //MOSTRAR MENSAJE QUE YA NO PUEDE INGRESAR A LAS INSTALACIONES EL DIA DE HOY
                                    ViewBag.estado     = "UD YA NO PUEDE INGRESAR A LAS INSTALACIONES EL DIA DE HOY";
                                    ViewBag.FechayHora = DateTime.Now;
                                }
                            }
                        }
                        else
                        {
                            ViewBag.estado = "ACCESO DENEGADO";
                        }
                    }
                    else
                    {
                        ViewBag.estado = "ACCESO DENEGADO";
                    }
                }

                DateTime fechayhoraactual = new DateTime();

                fechayhoraactual = DateTime.Parse(DateTime.Now.Date.ToString("dd/MM/yyyy"));


                ViewBag.FechaServidor = fechayhoraactual;



                return(PartialView("GetColaboradorById", GetColaboradorById));
            }
        }