public ActionResult EditPlanillaQuincena(Int32 EdificioId, Int32?UnidadTiempoId) { EditPlanillaQuincenaViewModel model = new EditPlanillaQuincenaViewModel(); model.Fill(CargarDatosContext(), EdificioId, UnidadTiempoId); return(View(model)); }
public ActionResult EditPlanillaQuincena(EditPlanillaQuincenaViewModel model, FormCollection formCollection) { try { if (!ModelState.IsValid) { model.Fill(CargarDatosContext(), model.EdificioId, model.UnidadTiempoId); TryUpdateModel(model); PostMessage(MessageType.Error, i18n.ValidationStrings.DatosIncorrectos); return(View(model)); } using (TransactionScope transaction = new TransactionScope()) { var LstTrabajadores = context.Trabajador.Where(x => x.EdificioId == model.EdificioId && x.Estado == ConstantHelpers.EstadoActivo).ToList(); foreach (var trabajador in LstTrabajadores) { DetalleQuincena detalle = context.DetalleQuincena.Find(trabajador.DetalleQuincenaId); var movilidad = formCollection["planilla-bonus-movilidad-" + trabajador.TrabajadorId]; var bonificacion = formCollection["planilla-bonificacion-" + trabajador.TrabajadorId]; var quincena = formCollection["planilla-total-quincena-" + trabajador.TrabajadorId]; var seguro = formCollection["planilla-seguro-" + trabajador.TrabajadorId]; bool esNuevo = false; PlanillaQuincena planilla = context.PlanillaQuincena.Where(x => x.TrabajadorId == trabajador.TrabajadorId && x.UnidadTiempoId == model.UnidadTiempoId).FirstOrDefault(); if (planilla == null) { planilla = new PlanillaQuincena(); esNuevo = true; } planilla.TrabajadorId = trabajador.TrabajadorId; planilla.UnidadTiempoId = model.UnidadTiempoId.Value; if (detalle.BonoPorMovilidad) { planilla.BonoPorMovilidad = movilidad.ToDecimal(); } if (detalle.Bonificacion) { planilla.Bonificacion = bonificacion.ToDecimal(); } planilla.TotalQuincena = quincena.ToDecimal(); if (detalle.Seguro) { planilla.Seguro = seguro.ToDecimal(); } if (esNuevo) { context.PlanillaQuincena.Add(planilla); } } PostMessage(MessageType.Success, "Guardado Correctamente"); context.SaveChanges(); transaction.Complete(); return(RedirectToAction("LstEdificio", "Building")); } } catch (Exception ex) { model.Fill(CargarDatosContext(), model.EdificioId, model.UnidadTiempoId); TryUpdateModel(model); PostMessage(MessageType.Error, "Ocurrió un error, por favor inténtelo más tarde"); return(View(model)); } return(View()); }