public ActionResult DeleteConfirmed(int id) { AjusteSIAH ajusteSIAH = db.AjusteSIAHs.Find(id); db.AjusteSIAHs.Remove(ajusteSIAH); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "id,fechaGeneracion,info,usuarioId")] AjusteSIAH ajusteSIAH) { if (ModelState.IsValid) { db.Entry(ajusteSIAH).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.usuarioId = new SelectList(db.UserAccounts, "id", "nombre", ajusteSIAH.usuarioId); return(View(ajusteSIAH)); }
private void agregarHistoricoFisico(AjusteSIAH ajusteSIAH, int saldo, DetalleAjusteSIAH detalle) { HistoricoFisico historicoFisico = new HistoricoFisico(); historicoFisico.insumoId = detalle.insumoId; historicoFisico.fechaMovimiento = ajusteSIAH.fechaGeneracion; historicoFisico.descripcion = "Ajuste de stock: " + detalle.info; historicoFisico.saldo = saldo; historicoFisico.isNegative = detalle.cantidad < 0 ? true : false; historicoFisico.cantidad = detalle.cantidad; db.HistoricoFisico.Add(historicoFisico); }
// GET: AjusteSIAHs/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AjusteSIAH ajusteSIAH = db.AjusteSIAHs.Include(x => x.usuario).Where(x => x.id == id).FirstOrDefault(); if (ajusteSIAH == null) { return(HttpNotFound()); } return(View(ajusteSIAH)); }
// GET: AjusteSIAHs/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AjusteSIAH ajusteSIAH = db.AjusteSIAHs.Find(id); if (ajusteSIAH == null) { return(HttpNotFound()); } return(View(ajusteSIAH)); }
public ActionResult ActualizarStock(string[] syncData, string userId) { try { // TODO: crear un ajuste nuevo y al recorrer los insumos ir agregando los detalles // No olvidar crear los historicos para cada insumo var ajuste = new AjusteSIAH(); ajuste.fechaGeneracion = DateTime.UtcNow; ajuste.info = "Sincronización con stock OCASA"; ajuste.usuarioId = int.Parse(userId); Uri baseUri = new Uri("http://localhost:3000"); var detalles = new HashSet <DetalleAjusteSIAH>(); foreach (var id in syncData) { var insumoActual = db.Insumos.Find(int.Parse(id)); var insumoOcasaActual = db.InsumoOcasa.Find(int.Parse(id)); if (insumoActual != null) { //Asumimos que el Stock Fisico (entregado) es mayor al stock (comprometido por las autorizaciones) //por lo tanto calculamos la diferencia para mantener la misma respecto al nuevo stock //Ej: Stock fisico = 100; Stock comprometido = 30; Stock Ocasa = 90 //Resultado -> Stock fisico 90; Stock comprometido = 20 var diferenciaStocks = insumoOcasaActual.stockFisico - insumoActual.stockFisico; var diff = insumoActual.stockFisico - insumoActual.stock; insumoActual.stockFisico = insumoOcasaActual.stockFisico <= 0 ? 0 : insumoOcasaActual.stockFisico; insumoActual.stock = insumoActual.stockFisico - diff <= 0 ? 0 : insumoActual.stockFisico - diff; db.Entry(insumoActual).State = EntityState.Modified; var detalleAjuste = new DetalleAjusteSIAH(); detalleAjuste.insumoId = insumoActual.id; detalleAjuste.info = "Ajuste por sincronizacion con OCASA"; detalleAjuste.cantidad = diferenciaStocks; detalles.Add(detalleAjuste); agregarHistoricoSIAH(ajuste, insumoActual.stock, detalleAjuste); agregarHistoricoFisico(ajuste, insumoActual.stockFisico, detalleAjuste); } } ajuste.detallesAjuste = detalles; db.AjusteSIAHs.Add(ajuste); db.SaveChanges(); return(RedirectToAction("DirectorArea", "Home", new { param = "Success" })); } catch (Exception e) { Console.WriteLine(e.ToString()); return(RedirectToAction("DirectorArea", "Home", new { param = e.Message })); } }
// GET: AjusteSIAHs/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AjusteSIAH ajusteSIAH = db.AjusteSIAHs.Find(id); if (ajusteSIAH == null) { return(HttpNotFound()); } ViewBag.usuarioId = new SelectList(db.UserAccounts, "id", "nombre", ajusteSIAH.usuarioId); return(View(ajusteSIAH)); }
public ActionResult Create([Bind(Include = "id,fechaGeneracion,info,usuarioId,detallesAjuste")] AjusteSIAH ajusteSIAH) { foreach (var detalle in ajusteSIAH.detallesAjuste) { detalle.insumo = null; var insumo = db.Insumos.Find(detalle.insumoId); // Si es negativo se resta, si es positivo se suma insumo.stock = insumo.stock + detalle.cantidad; insumo.stockFisico = insumo.stockFisico + detalle.cantidad; agregarHistoricoSIAH(ajusteSIAH, insumo.stock, detalle); agregarHistoricoFisico(ajusteSIAH, insumo.stockFisico, detalle); db.Entry(insumo).State = EntityState.Modified; } if (ModelState.IsValid) { try { db.AjusteSIAHs.Add(ajusteSIAH); // Guardar el registro en la DB if (db.SaveChanges() > 0) { return(RedirectToAction("Index", new { param = "Success" })); } return(RedirectToAction("Index")); } catch (Exception e) { return(RedirectToAction("Index", new { param = "Ocurrio un error inesperado al enviar el registro" })); } } ViewBag.usuarioId = new SelectList(db.UserAccounts, "id", "nombre", ajusteSIAH.usuarioId); return(View(ajusteSIAH)); }