Пример #1
0
        public ActionResult Create([Bind(Include = "guiaSalidaId,serie,ordenId,numero,motivoTrasladoId,motivoDetalle,fechaEmision")] GuiaSalida guiasalida)
        {
            if (ModelState.IsValid)
            {
                db.GuiaSalidas.Add(guiasalida);
                db.SaveChanges();
                //return RedirectToAction("Index");
                return(RedirectToAction("Index", "Orden"));
            }

            ViewBag.motivoTrasladoId = new SelectList(db.MotivoTraslado, "motivoTrasladoId", "nombre", guiasalida.motivoTrasladoId);
            ViewBag.ordenId          = new SelectList(db.Ordenes, "ordenId", "numero", guiasalida.ordenId);
            return(View(guiasalida));
        }
Пример #2
0
        // GET: /GuiaSalida/Create
        public ActionResult Create(int?id)
        {
            GuiaSalida GuiaSalida = new GuiaSalida();

            Orden Orden = db.Ordenes.Where(a => a.ordenId == id).FirstOrDefault();

            GuiaSalida.ordenId = Orden.ordenId;
            GuiaSalida.Orden   = Orden;

            ViewBag.motivoTrasladoId = new SelectList(db.MotivoTraslado, "motivoTrasladoId", "nombre");
            ViewBag.ordenId          = new SelectList(db.Ordenes.Where(a => a.ordenId == id), "ordenId", "ordenId");

            return(View(GuiaSalida));
        }
Пример #3
0
        // GET: /GuiaSalida/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GuiaSalida guiasalida = db.GuiaSalidas.Find(id);

            if (guiasalida == null)
            {
                return(HttpNotFound());
            }
            return(View(guiasalida));
        }
Пример #4
0
 public ActionResult Edit([Bind(Include = "guiaSalidaId,serie,numero,ordenId,motivoTrasladoId,motivoDetalle,fechaEmision")] GuiaSalida guiasalida)
 {
     if (ModelState.IsValid)
     {
         db.Entry(guiasalida).State = EntityState.Modified;
         db.Entry(guiasalida).Property(x => x.ordenId).IsModified = false;
         db.SaveChanges();
         //return RedirectToAction("Index");
         return(RedirectToAction("Index", "Orden"));
     }
     ViewBag.motivoTrasladoId = new SelectList(db.MotivoTraslado, "motivoTrasladoId", "nombre", guiasalida.motivoTrasladoId);
     ViewBag.ordenId          = new SelectList(db.Ordenes, "ordenId", "numero", guiasalida.ordenId);
     return(View(guiasalida));
 }
Пример #5
0
        // GET: /GuiaSalida/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GuiaSalida guiasalida = db.GuiaSalidas.Find(id);

            if (guiasalida == null)
            {
                return(HttpNotFound());
            }
            ViewBag.motivoTrasladoId = new SelectList(db.MotivoTraslado, "motivoTrasladoId", "nombre", guiasalida.motivoTrasladoId);
            ViewBag.ordenId          = new SelectList(db.Ordenes, "ordenId", "numero", guiasalida.ordenId);
            return(View(guiasalida));
        }
Пример #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            GuiaSalida guiasalida = db.GuiaSalidas.Find(id);

            db.GuiaSalidas.Remove(guiasalida);

            Orden pedido = db.Ordenes.Find(guiasalida.ordenId);

            pedido.estadoOrdenId = db.EstadosOrden.Single(p => p.nombre == "Creado").estadoOrdenId;

            OrdenEstadoOrden pedidoEstado = new OrdenEstadoOrden();

            pedidoEstado = pedido.Estados.Where(p => p.EstadoOrden.nombre == "Con Guía").FirstOrDefault();
            db.OrdenesEstadoOrden.Remove(pedidoEstado);

            db.SaveChanges();
            //return RedirectToAction("Index");
            return(RedirectToAction("Index", "Orden"));
        }
Пример #7
0
        public bool GenerarGuiaSalidaParcial(int idSolicitud, int idAlmacen, int idEmpleado, Dictionary <int, object> listProductos)
        {
            //NOTA: Cada vez que guardamos algo, usar este bloque try catch para poder saber por qué dió excepción (si es que da)
            try
            {
                // Crear guía de entrada
                var context    = new ETNADbModelContainer();
                var guiaSalida = new GuiaSalida();
                guiaSalida.FechaElaboracion       = DateTime.Now;
                guiaSalida.IdentificadorDocumento = "GS-" + guiaSalida.FechaElaboracion.ToString("MMddyyHmmss");
                guiaSalida.SolicitudSalida        = context.SolicitudesSalida.Find(idSolicitud);
                guiaSalida.Almacen  = context.Almacenes.Find(idAlmacen);
                guiaSalida.Empleado = context.Empleados.Find(idEmpleado);
                context.DocumentosReferencia.Add(guiaSalida);

                var  detalleSolicitud = context.DetalleSolicitudSalida.Where(d => d.IdSolicitudSalida == idSolicitud).ToList();
                bool parcial          = false;
                // Actualizar estado de la solicitud

                foreach (var solicitudEstado in detalleSolicitud)
                {
                    foreach (var cantidadesSolicitudEstado in listProductos)
                    {
                        if (solicitudEstado.IdProducto == cantidadesSolicitudEstado.Key)
                        {
                            if ((solicitudEstado.CantidadFinal - (int)cantidadesSolicitudEstado.Value) > 0)
                            {
                                parcial = true;
                            }
                        }
                    }
                }

                if (parcial)
                {
                    guiaSalida.SolicitudSalida.Estado = (int)Enums.EstadoSolicitudSalida.Parcialmente;
                }
                else
                {
                    guiaSalida.SolicitudSalida.Estado = (int)Enums.EstadoSolicitudSalida.Atendida;
                }

                foreach (var detalle in detalleSolicitud)
                {
                    //Generar Kardex por cada producto
                    var kardex = new Kardex();
                    kardex.Almacen             = context.Almacenes.Find(idAlmacen);
                    kardex.DocumentoReferencia = guiaSalida;
                    kardex.Producto            = detalle.Producto;
                    kardex.Cantidad            = detalle.Cantidad;
                    kardex.ValorUnitario       = detalle.Producto.PrecioListaVenta;
                    kardex.TipoMovimiento      = (int)Enums.TipoMovimiento.Salida;
                    context.Kardex.Add(kardex);

                    //Colocar las cantidades parciales de salida
                    foreach (var cantidades in listProductos)
                    {
                        if (detalle.IdProducto == cantidades.Key)
                        {
                            detalle.CantidadFinal = detalle.CantidadFinal - (int)cantidades.Value;
                        }
                    }

                    //Generando el detalle de guia de salida
                    var detalleGuiaSalida = new DetalleGuiaSalida();
                    detalleGuiaSalida.GuiaSalida = guiaSalida;
                    detalleGuiaSalida.IdProducto = detalle.IdProducto;
                    detalleGuiaSalida.Cantidad   = detalle.CantidadFinal;
                    context.DetalleGuiaSalida.Add(detalleGuiaSalida);
                }

                context.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }