public List <BarroMovimientos> calculaMovimientosPorMerma(BarroMovimientosConMerma pBMCM) { List <BarroMovimientos> lstTemp = new List <BarroMovimientos>(); string codigoEnGranel = pBMCM.CodigoProducto.Substring(0, 1) + "1"; double pesoCostal = double.Parse(pBMCM.CodigoProducto.Remove(0, 1)); double entero = 0; if (pBMCM.Merma > pesoCostal) { entero = (int)(pBMCM.Merma / pesoCostal); } entero = entero + 1; //se suma 1 pues es el costal que se debe descontar debido al residuo, osea el barro en granel que se descuenta a la carga. double residuo = pBMCM.Merma; residuo %= pesoCostal; BarroMovimientos mermaEncostalada = new BarroMovimientos(); mermaEncostalada.CodigoProducto = pBMCM.CodigoProducto; mermaEncostalada.FechaMovimiento = DateTime.Now; mermaEncostalada.TipoMovimiento = "Eg"; mermaEncostalada.Unidades = entero; mermaEncostalada.Locacion = 1; mermaEncostalada.PesoTotal = entero * pesoCostal; mermaEncostalada.OrigenTransferencia = pBMCM.Id; mermaEncostalada.OrigenTabla = "BarroMovimiento"; mermaEncostalada.OrigenVariacion = "Merma"; mermaEncostalada.Editor = User.Identity.Name; mermaEncostalada.FechaEdicion = DateTime.Now; lstTemp.Add(mermaEncostalada); //pesoCostal - residuo => se hace esta resta debido a que el residuo es lo que se le restara a un costal completo para saber cuanto se tiene en realidad. BarroMovimientos merma = new BarroMovimientos(); merma.CodigoProducto = codigoEnGranel; merma.FechaMovimiento = DateTime.Now; merma.TipoMovimiento = "In"; merma.Unidades = pesoCostal - residuo; merma.Locacion = 1; merma.PesoTotal = pesoCostal - residuo; merma.OrigenTransferencia = pBMCM.Id; merma.OrigenTabla = "BarroMovimiento"; merma.OrigenVariacion = "Merma"; merma.Editor = User.Identity.Name; merma.FechaEdicion = DateTime.Now; lstTemp.Add(merma); return(lstTemp); }
public ActionResult EditarRegitro(int id) { BarroMovimientos bm = tsvc.getBarroMovimiento(id); ViewBag.Productos = tsvc.obtenerProductos(1); foreach (var item in ViewBag.Productos) { item.Selected = false; if (item.Value == bm.CodigoProducto) { item.Selected = true; } } ViewBag.Provedores = tsvc.getNombreSucursal((int)bm.OrigenTransferencia); double merma = tsvc.obtenerMermaDePedido(bm); BarroMovimientosConMerma BMCM = new BarroMovimientosConMerma(); BMCM.Merma = merma; BMCM.setBarroMovimientos(bm); return(View(BMCM)); }
public ActionResult EditarRegitro(BarroMovimientosConMerma pBMCM) { pBMCM.Editor = User.Identity.Name; pBMCM.FechaEdicion = DateTime.Now; BarroMovimientos bm = pBMCM.getBarroMovimientos(); int res = tsvc.editMovimientoBarro(bm); if (res > 0) { int res1 = tsvc.deleteMermaExistente(bm); if (pBMCM.Merma > 0) { List <BarroMovimientos> lst = calculaMovimientosPorMerma(pBMCM); string codigoEnGranel = pBMCM.CodigoProducto.Substring(0, 1) + "1"; BarroMovimientos exedenteRegistrado = new BarroMovimientos(); exedenteRegistrado.CodigoProducto = codigoEnGranel; exedenteRegistrado.FechaMovimiento = DateTime.Now; exedenteRegistrado.TipoMovimiento = "In"; exedenteRegistrado.Unidades = pBMCM.Merma; exedenteRegistrado.Locacion = pBMCM.OrigenTransferencia; exedenteRegistrado.PesoTotal = pBMCM.Merma; exedenteRegistrado.OrigenTransferencia = bm.Id; exedenteRegistrado.OrigenTabla = "BarroMovimiento"; exedenteRegistrado.OrigenVariacion = "Merma"; exedenteRegistrado.Editor = User.Identity.Name; exedenteRegistrado.FechaEdicion = DateTime.Now; int res2 = tsvc.addMovimientosBarro(lst); int res3 = tsvc.addMovimientosBarro(exedenteRegistrado); } return(RedirectToAction("Index")); } return(new HttpStatusCodeResult(404, "No se pudo actualizar el registro, vuelva a intentarlo mas tarde")); }