public IHttpActionResult PutHistorialAsignacion(int id, HistorialAsignacion historialAsignacion)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != historialAsignacion.ha_id)
            {
                return(BadRequest());
            }

            db.Entry(historialAsignacion).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!HistorialAsignacionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetHistorialAsignacion(int id)
        {
            HistorialAsignacion historialAsignacion = db.HistorialAsignacion.Find(id);

            if (historialAsignacion == null)
            {
                return(NotFound());
            }

            return(Ok(historialAsignacion));
        }
        public IHttpActionResult PostHistorialAsignacion(HistorialAsignacion historialAsignacion)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.HistorialAsignacion.Add(historialAsignacion);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = historialAsignacion.ha_id }, historialAsignacion));
        }
示例#4
0
        public ActionResult Create([Bind(Include = "ci_corretaje_id,ci_articulo_id,ci_cantidadAsignada")] CasaInventario casaInventario)
        {
            ActualizarVariables();
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else if (Session["Tipo"].ToString() == "Corretaje" || Session["Tipo"].ToString() == "Contabilidad" || Session["Tipo"].ToString() == "Habilitacion" || Session["Tipo"].ToString() == "Administrador")
            {
                if (ModelState.IsValid)
                {
                    int ubi = Convert.ToInt32(Request.Form["ubicacion"]);
                    casaInventario.ci_fecha      = DateTime.Now;
                    casaInventario.ci_usuario_id = Convert.ToInt32(Session["UsuarioID"].ToString());
                    db.CasaInventario.Add(casaInventario);
                    db.SaveChanges();
                    decimal            cantidadRestante = casaInventario.ci_cantidadAsignada;
                    List <Existencias> ex = db.Existencias.Select(x => x).Where(x => x.ext_art_id == casaInventario.ci_articulo_id).Where(x => x.ext_cantidadActual > 0 && x.ext_ubicacion == ubi).OrderBy(e => e.ext_fechaAgregado).ToList();
                    foreach (Existencias item in ex)
                    {
                        if (cantidadRestante == 0)
                        {
                            break;
                        }
                        if (item.ext_cantidadActual >= cantidadRestante)
                        {
                            item.ext_cantidadActual -= cantidadRestante;
                            cantidadRestante         = 0;
                        }
                        else
                        {
                            decimal diferencia = cantidadRestante - (decimal)item.ext_cantidadActual;
                            item.ext_cantidadActual = 0;
                            cantidadRestante        = diferencia;
                        }
                        HistorialAsignacion ha = new HistorialAsignacion();
                        ha.ha_existencia_id  = item.Id;
                        ha.ha_casaInventario = casaInventario.ci_Id;
                        db.HistorialAsignacion.Add(ha);
                        db.SaveChanges();
                    }
                    return(RedirectToAction("Index", new { id = casaInventario.ci_corretaje_id }));
                }

                return(View(casaInventario));
            }
            else
            {
                string redireccion = lc.Redireccionar(Session["Tipo"].ToString());
                return(RedirectToAction(redireccion.Split('-')[1], redireccion.Split('-')[0]));
            }
        }
        public IHttpActionResult DeleteHistorialAsignacion(int id)
        {
            HistorialAsignacion historialAsignacion = db.HistorialAsignacion.Find(id);

            if (historialAsignacion == null)
            {
                return(NotFound());
            }

            db.HistorialAsignacion.Remove(historialAsignacion);
            db.SaveChanges();

            return(Ok(historialAsignacion));
        }
示例#6
0
        public ActionResult DeleteConfirmed(int id)
        {
            ActualizarVariables();
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else if (Session["Tipo"].ToString() == "Corretaje" || Session["Tipo"].ToString() == "Contabilidad" || Session["Tipo"].ToString() == "Habilitacion" || Session["Tipo"].ToString() == "Administrador")
            {
                int                ubicacion      = 0;
                CasaInventario     casaInventario = db.CasaInventario.Find(id);
                int                corretaje      = casaInventario.ci_corretaje_id;
                CasaInventario     ci             = db.CasaInventario.AsNoTracking().Where(x => x.ci_Id == casaInventario.ci_Id).FirstOrDefault();
                decimal            diferencia     = ci.ci_cantidadAsignada;
                List <Existencias> le             = new List <Existencias>();
                foreach (HistorialAsignacion ha in ci.HistorialAsignacion)
                {
                    if (ubicacion == 0)
                    {
                        ubicacion = (int)ha.Existencias.ext_ubicacion;
                    }
                    le.Add(ha.Existencias);
                }
                le.OrderByDescending(x => x.ext_fechaAgregado);
                if (diferencia > 0)
                {
                    decimal            cantidadRestante = diferencia;
                    List <Existencias> ex = db.Existencias.Select(x => x).Where(x => x.ext_art_id == casaInventario.ci_articulo_id && ubicacion == x.ext_ubicacion).OrderByDescending(e => e.ext_fechaAgregado).ToList();
                    foreach (Existencias item in ex)
                    {
                        if (cantidadRestante == 0)
                        {
                            break;
                        }
                        if (item.ext_cantidad >= (cantidadRestante + item.ext_cantidadActual))
                        {
                            item.ext_cantidadActual += cantidadRestante;
                            cantidadRestante         = 0;
                            HistorialAsignacion ha = db.HistorialAsignacion.Where(x => x.ha_existencia_id == item.Id && x.ha_casaInventario == casaInventario.ci_Id).FirstOrDefault();
                            db.HistorialAsignacion.Remove(ha);
                            db.SaveChanges();
                        }
                        else
                        {
                            diferencia = (decimal)item.ext_cantidad - (decimal)item.ext_cantidadActual;
                            item.ext_cantidadActual = item.ext_cantidad;
                            cantidadRestante       -= diferencia;
                            HistorialAsignacion ha = db.HistorialAsignacion.Where(x => x.ha_existencia_id == item.Id && x.ha_casaInventario == casaInventario.ci_Id).FirstOrDefault();
                            db.HistorialAsignacion.Remove(ha);
                            db.SaveChanges();
                        }
                    }
                }

                db.CasaInventario.Remove(db.CasaInventario.Find(casaInventario.ci_Id));
                db.SaveChanges();
                return(RedirectToAction("Index", new { id = corretaje }));
            }
            else
            {
                string redireccion = lc.Redireccionar(Session["Tipo"].ToString());
                return(RedirectToAction(redireccion.Split('-')[1], redireccion.Split('-')[0]));
            }
        }
示例#7
0
 public ActionResult Edit([Bind(Include = "ci_Id,ci_articulo_id,ci_corretaje_id,ci_cantidadAsignada,ci_fecha,ci_usuario_id")] CasaInventario casaInventario)
 {
     ActualizarVariables();
     if (Session["Usuario"] == null)
     {
         return(RedirectToAction("Index", "Home"));
     }
     else if (Session["Tipo"].ToString() == "Corretaje" || Session["Tipo"].ToString() == "Contabilidad" || Session["Tipo"].ToString() == "Habilitacion" || Session["Tipo"].ToString() == "Administrador")
     {
         if (ModelState.IsValid)
         {
             int                ubic       = 0;
             CasaInventario     ci         = db.CasaInventario.AsNoTracking().Where(x => x.ci_Id == casaInventario.ci_Id).FirstOrDefault();
             decimal            diferencia = ci.ci_cantidadAsignada - casaInventario.ci_cantidadAsignada;
             List <Existencias> le         = new List <Existencias>();
             foreach (HistorialAsignacion ha in ci.HistorialAsignacion)
             {
                 le.Add(ha.Existencias);
             }
             le.OrderByDescending(x => x.ext_fechaAgregado);
             if (diferencia < 0)
             {
                 foreach (Existencias ex in le)
                 {
                     if (diferencia == 0)
                     {
                         break;
                     }
                     if (ex.ext_cantidad >= diferencia)
                     {
                         Existencias ex1 = db.Existencias.Find(ex.Id);
                         if (ubic == 0)
                         {
                             ubic = (int)ex1.ext_ubicacion;
                         }
                         ex1.ext_cantidadActual = ex1.ext_cantidadActual + diferencia;
                         diferencia             = 0;
                         db.SaveChanges();
                     }
                     else
                     {
                         Existencias ex1 = db.Existencias.Find(ex.Id);
                         if (ubic == 0)
                         {
                             ubic = (int)ex1.ext_ubicacion;
                         }
                         ex1.ext_cantidadActual = ex1.ext_cantidad;
                         diferencia             = diferencia - (decimal)ex1.ext_cantidad;
                         db.HistorialAsignacion.Remove(ci.HistorialAsignacion.Where(x => x.Existencias.Id == ex.Id).FirstOrDefault());
                         db.SaveChanges();
                     }
                 }
             }
             else if (diferencia > 0)
             {
                 decimal            cantidadRestante = diferencia;
                 List <Existencias> ex = db.Existencias.Select(x => x).Where(x => x.ext_art_id == casaInventario.ci_articulo_id && ubic == x.ext_ubicacion).OrderByDescending(e => e.ext_fechaAgregado).ToList();
                 foreach (Existencias item in ex)
                 {
                     if (cantidadRestante == 0)
                     {
                         break;
                     }
                     if (item.ext_cantidad >= (cantidadRestante + item.ext_cantidadActual))
                     {
                         item.ext_cantidadActual += cantidadRestante;
                         cantidadRestante         = 0;
                     }
                     else
                     {
                         diferencia = (decimal)item.ext_cantidad - (decimal)item.ext_cantidadActual;
                         item.ext_cantidadActual = item.ext_cantidad;
                         cantidadRestante       -= diferencia;
                         HistorialAsignacion ha = db.HistorialAsignacion.Where(x => x.ha_existencia_id == item.Id && x.ha_casaInventario == casaInventario.ci_Id).FirstOrDefault();
                         db.HistorialAsignacion.Remove(ha);
                     }
                     db.SaveChanges();
                 }
             }
             db.Entry(casaInventario).State = EntityState.Modified;
             db.SaveChanges();
             return(RedirectToAction("Index", new { id = casaInventario.ci_corretaje_id }));
         }
         return(View(casaInventario));
     }
     else
     {
         string redireccion = lc.Redireccionar(Session["Tipo"].ToString());
         return(RedirectToAction(redireccion.Split('-')[1], redireccion.Split('-')[0]));
     }
 }