Example #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            AjusteSIAH ajusteSIAH = db.AjusteSIAHs.Find(id);

            db.AjusteSIAHs.Remove(ajusteSIAH);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #2
0
 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));
 }
Example #3
0
        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);
        }
Example #4
0
        // 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));
        }
Example #5
0
        // 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));
        }
Example #6
0
 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
         }));
     }
 }
Example #7
0
        // 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));
        }
Example #8
0
        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));
        }