public ActionResult Edit(Actividad actividad) { if (ModelState.IsValid) { db.Entry(actividad).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.IdCronograma = new SelectList(db.Cronogramas, "IdCronograma", "Estado", actividad.IdCronograma); ViewBag.IdPersonalInterno = new SelectList(db.PersonalesInternos, "IdPersonalInterno", "ApellidoMaterno", actividad.IdPersonalInterno); return View(actividad); }
private void PlanificarRequerimiento(EFDbContext db, PersonalInterno ids, PersonalInterno lp, Requerimiento requerimientoPlanificado, DateTime planificacion) { //***************************************************************** //Generar Cronograma //Establecer Fecha de Inicio del Proyecto List <Fecha> Fechas = new List <Fecha>(); Fecha fecha_ids = new Fecha(); if (ids.Actividades.Count > 0) { fecha_ids.fecha = ids.Actividades[0].FechaFin; fecha_ids.tipo = "2ids"; Fechas.Add(fecha_ids); } Fecha fecha_lp = new Fecha(); if (lp.Actividades.Count > 0) { fecha_lp.fecha = lp.Actividades[0].FechaFin; fecha_lp.tipo = "3lp"; Fechas.Add(fecha_lp); } Fecha fecha_planificacion = new Fecha(); fecha_planificacion.fecha = planificacion; fecha_planificacion.tipo = "1fecha_planificacion"; Fechas.Add(fecha_planificacion); Fechas.Sort(delegate(Fecha f1, Fecha f2) { return(-DateTime.Compare(f1.fecha, f2.fecha) == 0 ? String.Compare(f1.tipo, f2.tipo) : -DateTime.Compare(f1.fecha, f2.fecha)); }); DateTime fechainicio; //************************** //Fecha Incio fechainicio = Fechas[0].fecha; //Se genera Cronograma Cronograma cronogramaPlanificado = new Cronograma(); cronogramaPlanificado.IdRequerimiento = requerimientoPlanificado.IdRequerimiento; cronogramaPlanificado.NumControlCambio = 0; cronogramaPlanificado.FechaInicio = fechainicio; cronogramaPlanificado.FechaFin = fechainicio; cronogramaPlanificado.Version = 1; cronogramaPlanificado.Estado = "Inicial"; db.Cronogramas.Add(cronogramaPlanificado); db.SaveChanges(); int id = cronogramaPlanificado.IdCronograma; //Se generan actividades //Analisis funcional Actividad analisisFuncional = new Actividad(); analisisFuncional.IdCronograma = cronogramaPlanificado.IdCronograma; analisisFuncional.IdPersonalInterno = ids.IdPersonalInterno; analisisFuncional.personalInterno = ids; analisisFuncional.OrdenActividad = 1; analisisFuncional.TipoActividad = "Analisis Funcional"; analisisFuncional.FechaInicio = fechainicio; analisisFuncional.FechaFin = fechainicio.AddDays(requerimientoPlanificado.Cotizaciones[0].DiasAnalisisFuncional); analisisFuncional.Avance = 0; analisisFuncional.Asignacion = 1; //Analisis tecnico Actividad analisisTecnico = new Actividad(); analisisTecnico.IdCronograma = cronogramaPlanificado.IdCronograma; analisisTecnico.IdPersonalInterno = ids.IdPersonalInterno; analisisTecnico.personalInterno = ids; analisisTecnico.OrdenActividad = 2; analisisTecnico.TipoActividad = "Analisis Tecnico"; analisisTecnico.FechaInicio = analisisFuncional.FechaFin; analisisTecnico.FechaFin = analisisTecnico.FechaInicio.AddDays(requerimientoPlanificado.Cotizaciones[0].DiasAnalisisTecnico); analisisTecnico.Avance = 0; analisisTecnico.Asignacion = 1; //Construccion Actividad construccion = new Actividad(); construccion.IdCronograma = cronogramaPlanificado.IdCronograma; //construccion.IdPersonalInterno = null; //construccion.personalInterno = null; construccion.OrdenActividad = 3; construccion.TipoActividad = "Construccion"; construccion.FechaInicio = analisisTecnico.FechaFin; construccion.FechaFin = construccion.FechaInicio.AddDays(requerimientoPlanificado.Cotizaciones[0].DiasConstruccion); construccion.Avance = 0; construccion.Asignacion = 1; //Certificacion Actividad certificacion = new Actividad(); certificacion.IdCronograma = cronogramaPlanificado.IdCronograma; //certificacion.IdPersonalInterno = null; //certificacion.personalInterno = null; certificacion.OrdenActividad = 4; certificacion.TipoActividad = "Certificacion"; certificacion.FechaInicio = construccion.FechaFin; certificacion.FechaFin = certificacion.FechaInicio.AddDays(requerimientoPlanificado.Cotizaciones[0].DiasCertificacion); certificacion.Avance = 0; certificacion.Asignacion = 1; //Seguimiento Actividad seguimiento = new Actividad(); seguimiento.IdCronograma = cronogramaPlanificado.IdCronograma; //seguimiento.IdPersonalInterno = null; //seguimiento.personalInterno = null; seguimiento.OrdenActividad = 5; seguimiento.TipoActividad = "Seguimiento"; seguimiento.FechaInicio = certificacion.FechaFin; seguimiento.FechaFin = seguimiento.FechaInicio.AddDays(requerimientoPlanificado.Cotizaciones[0].DiasSeguimiento); seguimiento.Avance = 0; seguimiento.Asignacion = 1; //gestion Actividad gestion = new Actividad(); gestion.IdCronograma = cronogramaPlanificado.IdCronograma; gestion.IdPersonalInterno = lp.IdPersonalInterno; gestion.personalInterno = lp; gestion.OrdenActividad = 6; gestion.TipoActividad = "Gestion"; gestion.FechaInicio = fechainicio; gestion.FechaFin = seguimiento.FechaFin; gestion.Avance = 0; gestion.Asignacion = 0.15m; //grabando actividades db.Actividades.Add(analisisFuncional); db.Actividades.Add(analisisTecnico); db.Actividades.Add(construccion); db.Actividades.Add(certificacion); db.Actividades.Add(seguimiento); db.Actividades.Add(gestion); db.SaveChanges(); //Se actualiza cronograma cronogramaPlanificado.FechaInicio = gestion.FechaInicio; cronogramaPlanificado.FechaFin = gestion.FechaFin; db.Entry(cronogramaPlanificado).State = EntityState.Modified; db.SaveChanges(); //Se asocian IDS y LP e Actualiza Requerimiento requerimientoPlanificado.IdS = ids; requerimientoPlanificado.IdIdS = ids.IdPersonalInterno; requerimientoPlanificado.LiderProyecto = lp; requerimientoPlanificado.IdLiderProyecto = lp.IdPersonalInterno; requerimientoPlanificado.Estado = "Programado"; db.Entry(requerimientoPlanificado).State = EntityState.Modified; db.SaveChanges(); }