Example #1
0
        public ActionResult AddEditUnidadDeTiempo(Int32?UnidadDeTiempoId)
        {
            AddEditUnidadDeTiempoViewModel ViewModel = new AddEditUnidadDeTiempoViewModel();

            ViewModel.UnidadTiempoId = UnidadDeTiempoId;
            ViewModel.Fill(CargarDatosContext());
            return(View(ViewModel));
        }
Example #2
0
        public ActionResult AddEditUnidadDeTiempo(AddEditUnidadDeTiempoViewModel ViewModel)
        {
            if (!ModelState.IsValid)
            {
                ViewModel.Fill(CargarDatosContext());
                TryUpdateModel(ViewModel);
                return(View(ViewModel));
            }

            try
            {
                UnidadTiempo unidaddetiempo = null;

                if (ViewModel.UnidadTiempoId.HasValue)
                {
                    if (context.UnidadTiempo.Any(x => x.Estado.Equals("ACT") && x.UnidadTiempoId != ViewModel.UnidadTiempoId && x.Mes == ViewModel.Mes && x.Anio == ViewModel.Anio))
                    {
                        //Ya existe, retornar error de Already exist
                        PostMessage(MessageType.AExist);
                        return(RedirectToAction("LstUnidadDeTiempo"));
                    }


                    unidaddetiempo             = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == ViewModel.UnidadTiempoId);
                    unidaddetiempo.Descripcion = ConstantHelpers.ObtenerMesPorValorId(ViewModel.Mes.ToString()).ToUpper() + " " + ViewModel.Anio;
                    unidaddetiempo.Anio        = ViewModel.Anio.ToInteger();
                    unidaddetiempo.Mes         = ViewModel.Mes;

                    if (ViewModel.Orden != null && ViewModel.Orden <= 0)
                    {
                        PostMessage(MessageType.Error);
                        return(RedirectToAction("LstUnidadDeTiempo"));
                    }
                    unidaddetiempo.Orden = ViewModel.Orden;

                    context.Entry(unidaddetiempo).State = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    if (context.UnidadTiempo.Any(x => x.Estado.Equals("ACT") && x.Mes == ViewModel.Mes && x.Anio == ViewModel.Anio))
                    {
                        //Ya existe, retornar error de Already exist
                        PostMessage(MessageType.AExist);
                        return(RedirectToAction("LstUnidadDeTiempo"));
                    }

                    unidaddetiempo             = new UnidadTiempo();
                    unidaddetiempo.Descripcion = ConstantHelpers.ObtenerMesPorValorId(ViewModel.Mes.ToString()).ToUpper() + " " + ViewModel.Anio;
                    unidaddetiempo.Anio        = ViewModel.Anio.ToInteger();
                    unidaddetiempo.Mes         = ViewModel.Mes;
                    unidaddetiempo.Estado      = ConstantHelpers.EstadoActivo;
                    unidaddetiempo.Orden       = context.UnidadTiempo.Where(x => x.Estado.Equals(ConstantHelpers.EstadoActivo)).Count() + 1;
                    context.UnidadTiempo.Add(unidaddetiempo);
                }
                List <UnidadTiempo> lstUnidadTiempo = context.UnidadTiempo.ToList();
                if (ViewModel.EsActivo)
                {
                    foreach (UnidadTiempo objUnidadTiempo in lstUnidadTiempo)
                    {
                        objUnidadTiempo.EsActivo = false;
                    }

                    unidaddetiempo.EsActivo = ViewModel.EsActivo;
                }
                //if(unidaddetiempo.Anio == lstUnidadTiempo.Max( x => x.Anio) + 1)
                //{
                //    try
                //    {
                //        var anioAnterior = unidaddetiempo.Anio - 1;
                //        var LstEquipos = context.DatoEdificio.Where(X => X.Tipo.Contains("Equipo") && X.AplicaMantenimiento == true && X.UnidadTiempo.Anio == anioAnterior).ToList();
                //        foreach (var item in LstEquipos)
                //        {
                //            var equipo = new DatoEdificio();
                //            equipo.EdificioId = item.EdificioId;
                //            equipo.Tipo = item.Tipo;
                //            equipo.Dato = item.Dato;
                //            equipo.Nombre = item.Nombre;
                //            equipo.UnidadTiempo = unidaddetiempo;
                //            equipo.AplicaMantenimiento = true;
                //            context.DatoEdificio.Add(equipo);
                //        }
                //        var LstDatos = context.DatoEdificio.Where(X => X.Tipo.Contains("Crono") && X.UnidadTiempo.Anio == anioAnterior).ToList();
                //        foreach (var item in LstDatos)
                //        {
                //            var crono = new DatoEdificio();
                //            crono.EdificioId = item.EdificioId;
                //            crono.Tipo = item.Tipo;
                //            crono.Dato = item.Dato;
                //            crono.Nombre = item.Nombre;
                //            crono.UnidadTiempo = unidaddetiempo;
                //            crono.AplicaMantenimiento = true;
                //            context.DatoEdificio.Add(crono);
                //        }
                //    }
                //    catch (Exception ex)
                //    {
                //        PostMessage(MessageType.Warning, "No se pudo replicar el cronograma del año pasado, error: " + ex.Message + (ex.InnerException != null ? ex.InnerException.Message : String.Empty));
                //    }
                //
                //}
                context.SaveChanges();
                PostMessage(MessageType.Success);
            }
            catch { PostMessage(MessageType.Error); }
            return(RedirectToAction("LstUnidadDeTiempo"));
        }