// GET: PreparacionBarro/Edit/5 public ActionResult Edit(int id) { ViewBag.Loc = (int)HttpContext.Application["Locacion"]; PreparacionBarroConsumo PreBarCon = tsvc.detallePreparacionBarroConsumo(id); ViewBag.lstRecervas = tsvc.getReservasFrom((int)PreBarCon.Locacion); ViewBag.lstLocaciones = tsvc.obtenerSucursales(ViewBag.Loc); return(View(PreBarCon)); }
// GET: PreparacionBarro/Create public ActionResult Create() { ViewBag.Loc = (int)HttpContext.Application["Locacion"]; ViewBag.NombreLocacion = tsvc.getNombreSucursal(ViewBag.Loc); List <ReservaBarro> lstReservas = tsvc.getReservasFrom(ViewBag.Loc); ViewBag.lstLuz = lstReservas; ViewBag.lstLocaciones = tsvc.obtenerSucursales(ViewBag.Loc); PreparacionBarroConsumo PreBar = new PreparacionBarroConsumo(); PreBar.FechaPreparacion = DateTime.Today; PreBar.NumPreparado = tsvc.getNumeroPreparado(ViewBag.Loc); PreBar.BarroBlanco = 105; PreBar.BarroNegro = 150; PreBar.Locacion = ViewBag.Loc; PreBar.lstConsumoBarroNegro = lstReservas.Where(x => x.Tipo == "Negro") .Select(y => new ReservaBarroPreparado() { CodigoBarro = y.CodigoBarro, Tipo = y.Tipo, Capacidad = y.Capacidad, Unidades = y.Unidades, TotalKg = y.TotalKg }).ToList(); PreBar.lstConsumoBarroBlanco = lstReservas.Where(x => x.Tipo == "Blanco") .Select(y => new ReservaBarroPreparado() { CodigoBarro = y.CodigoBarro, Tipo = y.Tipo, Capacidad = y.Capacidad, Unidades = y.Unidades, TotalKg = y.TotalKg }).ToList(); return(View(PreBar)); }
public ActionResult Create(PreparacionBarroConsumo pPreBar) { ViewBag.Loc = (int)HttpContext.Application["Locacion"]; if (ModelState.IsValid) { double?tmpBarNeg = pPreBar.BarroNegro; double?SumBN = pPreBar.lstConsumoBarroNegro.Select(x => new { TotalSolicitado = x.Capacidad * x.BarroUsado }).Sum(x => x.TotalSolicitado); double?SumBB = pPreBar.lstConsumoBarroBlanco.Select(x => new { TotalSolicitado = x.Capacidad * x.BarroUsado }).Sum(x => x.TotalSolicitado); List <BarroMovimientos> lst = new List <BarroMovimientos>(); pPreBar.Estado = "Disponible"; PreparacionBarro PB = new PreparacionBarro() { Id = pPreBar.Id, FechaPreparacion = pPreBar.FechaPreparacion, NumPreparado = pPreBar.NumPreparado, BarroNegro = pPreBar.BarroNegro, BarroBlanco = pPreBar.BarroBlanco, Recuperado = pPreBar.Recuperado, EnPiedra = pPreBar.EnPiedra, TiempoAgitacion = pPreBar.TiempoAgitacion, NumTambos = pPreBar.NumTambos, DesperdicioMojado = pPreBar.DesperdicioMojado, Comentario = pPreBar.Comentario, Estado = pPreBar.Estado, Locacion = pPreBar.Locacion, Editor = User.Identity.Name, FechaEdicion = DateTime.Now }; //Si las recercas asignadas para cubrir el barro Negro solicitado son mayores, se cubre el pedido, en caso contrario se solicita asignar mas recervas. if (pPreBar.BarroNegro <= SumBN) { //Si las recercas asignadas para cubrir el barro Blanco solicitado son mayores, se cubre el pedido, en caso contrario se solicita asignar mas recervas. if (pPreBar.BarroBlanco <= SumBB) { int idPreparacion = tsvc.addPreparacionBarro(PB); if (idPreparacion != -1) { var lstBarMovNegro = calculaBarroMovimientos(pPreBar.lstConsumoBarroNegro, (int)pPreBar.BarroNegro, PB, idPreparacion); lst.AddRange(lstBarMovNegro); var lstBarMovBlanco = calculaBarroMovimientos(pPreBar.lstConsumoBarroBlanco, (int)pPreBar.BarroBlanco, PB, idPreparacion); lst.AddRange(lstBarMovBlanco); List <BarroMovimientos> lstVariaciones = calculaBarroMovimientosVariaciones(PB, idPreparacion); //Por ultimo se registran los movimientos en BD. int res2 = tsvc.addMovimientosBarro(lst); if (res2 > 0) { if (lstVariaciones.Count > 0) { int res3 = tsvc.addMovimientosBarro(lstVariaciones); if (res3 > 0) { return(RedirectToAction("Index", new { pLoc = ViewBag.Loc })); } } else { return(RedirectToAction("Index", new { pLoc = ViewBag.Loc })); } } } else { ViewBag.txtMensaje = "No se pudo crear la preparación, vuelva a intentarlo más tarde."; } } else //Como las recervas son menores al barro solicitado, se pide una cantidad mayor de recervas. { ViewBag.txtMensaje = "Es necesario que asignes reservas de barro blanco mayores que el barro blanco solicitado para la preparación."; } } else //Como las recervas son menores al barro solicitado, se pide una cantidad mayor de recervas. { ViewBag.txtMensaje = "Es necesario que asignes reservas de barro mayores que el barro negro solicitado para la preparación."; } } List <ReservaBarro> lstReservas = tsvc.getReservasFrom((int)pPreBar.Locacion); ViewBag.lstLuz = lstReservas; ViewBag.lstLocaciones = tsvc.obtenerSucursales(ViewBag.Loc); return(View(pPreBar)); }