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)); }
// 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)); }
// 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)); }
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)); }
// 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)); }
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")); }
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; } }