public ActionResult CostesadicionalesUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] TransformacionesCostesadicionalesModel item) { var model = Session[sessioncostes] as List <TransformacionesCostesadicionalesModel>; if (ModelState.IsValid) { var editItem = model.Single(f => f.Id == item.Id); if (item.Tipodocumento == TipoCosteAdicional.Documento && string.IsNullOrEmpty(item.Referenciadocumento)) { ModelState.AddModelError("Referenciadocumento", "El campo es obligatorio"); } { if (item.Tipodocumento == TipoCosteAdicional.Importefijo) { item.Referenciadocumento = string.Empty; item.Total = Math.Round((double)(item.Importe * (item.Porcentaje / 100.0)), 2); } if (item.Tipodocumento == TipoCosteAdicional.Costexm2 || item.Tipodocumento == TipoCosteAdicional.Costexm3) { item.Referenciadocumento = string.Empty; item.Total = 0; } editItem.Tipodocumento = item.Tipodocumento; editItem.Referenciadocumento = item.Referenciadocumento; editItem.Importe = item.Importe; editItem.Porcentaje = item.Porcentaje; editItem.Total = item.Total; editItem.Tipocoste = item.Tipocoste; editItem.Tiporeparto = item.Tiporeparto; editItem.Notas = item.Notas; Session[sessioncostes] = model; } } return(PartialView("_transformacionescostesadicionales", model)); }
public ActionResult CostesadicionalesNew([ModelBinder(typeof(DevExpressEditorsBinder))] TransformacionesCostesadicionalesModel item) { var model = Session[sessioncostes] as List <TransformacionesCostesadicionalesModel>; if (ModelState.IsValid) { var max = model.Any() ? model.Max(f => f.Id) : 0; item.Id = max + 1; if (item.Tipodocumento == TipoCosteAdicional.Documento && string.IsNullOrEmpty(item.Referenciadocumento)) { ModelState.AddModelError("Referenciadocumento", "El campo es obligatorio"); } else { if (item.Tipodocumento == TipoCosteAdicional.Importefijo) { item.Referenciadocumento = string.Empty; item.Total = Math.Round((double)(item.Importe * (item.Porcentaje / 100.0)), 2); model.Add(item); Session[sessioncostes] = model; } else // { // // xm2 xm3 // item.Referenciadocumento = string.Empty; // item.Total = 0; // model.Add(item); // Session[sessioncostes] = model; // } // } //} { item.Referenciadocumento = string.Empty; // Código para calcular el coste adicional cuando tipoDocumento es xm2 o xm3 var tipoDocumento = item.Tipodocumento; var codUnidadMedida = "-1"; if (tipoDocumento == TipoCosteAdicional.Costexm2) { codUnidadMedida = "02"; } else if (tipoDocumento == TipoCosteAdicional.Costexm3) { codUnidadMedida = "03"; } var lineas = Session[sessionentrada] as List <TransformacionesentradaLinModel>; var totalMetros = 0.0d; foreach (var l in lineas) { var unidadMedida = l.Fkunidades; if (unidadMedida.Equals(codUnidadMedida)) { totalMetros += Math.Round((double)l.Metros, 3); } } //item.Total = Math.Round((double)item.Importe * totalMetros, 2); item.Total = Math.Round((double)(item.Importe * (item.Porcentaje / 100.0)), 2); model.Add(item); Session[sessioncostes] = model; } } } return(PartialView("_transformacionescostesadicionales", model)); }