public ActionResult Salida(int[] producto, int[] cantidad) { // El arreglo de producto contiene los productos para realizar la salida de inventario if (producto.Length > 0) { SalidaInventario salida = new SalidaInventario(); int cont = 0; foreach (int p in producto) { salida = new SalidaInventario(); // Calcula el nuevo IdSalida del registro salida.IdSalida = 1; if (Salidas.Count > 0) { salida.IdSalida = Salidas.Max(x => x.IdSalida) + 1; } // Establecemos las demas propiedades del modelo salida.IdProducto = p; salida.Cantidad = cantidad[cont]; salida.producto = ListaProductos.FirstOrDefault(x => x.IdProducto == p); salida.Monto = salida.Cantidad * salida.producto.Precio * 1.08; salida.FechaRegistro = DateTime.Now; salida.IdUsuario = 0; // Este valor se debe de tomar de la variable de Session["Usuario"] Salidas.Add(salida); // Agregamos el producto a la lista de salidas cont++; // Incrementa contador salida = null; // Limpia el modelo para el siguiente ciclo } // db.Guardar(Salidas); // Esta vista muestra los registros del modelo SalidaInventario con una plantilla de tipo List return(RedirectToAction("Reporte")); } return(View()); }
/// ------------------------------------------------------------------------------------------------------------------------ public List <SalidaInventario> GetSalidas() { string sql = "SELECT * FROM Inventario ORDER BY Nombre"; SqlCommand cmd = new SqlCommand(sql, conn); List <SalidaInventario> lista = new List <SalidaInventario>(); try { if (Abrir()) { SqlDataReader dr = cmd.ExecuteReader(); SalidaInventario sal; while (dr.Read()) { sal = new SalidaInventario(); sal.IdSalida = dr.GetInt32(0); sal.IdProducto = dr.GetInt32(1); //sal.producto = dr.GetInt32(2); sal.Cantidad = dr.GetInt32(3); sal.Monto = dr.GetDouble(4); sal.FechaRegistro = dr.GetDateTime(5); sal.IdUsuario = dr.GetInt32(6); lista.Add(sal); sal = null; } Cerrar(); } } catch (Exception ex) { Cerrar(); lista = new List <SalidaInventario>(); } return(lista); }
public override void Start() { using (ISession Sesion = m_SessionFactory.OpenSession()) { using (ITransaction Trans = Sesion.BeginTransaction()) { try { Auditoria Auditoria = Auditoria.ConstruirAuditoria(base.m_ObjectFlow, "Creación"); SalidaInventario SalidaInventario = (SalidaInventario)m_ObjectFlow; SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = (SqlConnection)Sesion.Connection; Trans.Enlist(SqlCmd); // Creamos la Salida de Inventario. Sesion.Save(SalidaInventario); Sesion.Flush(); // Actualizamos los Stocks. foreach (ItemSalidaInventario Item in SalidaInventario.Items) { SqlCmd.CommandText = "pSF_ActualizarStocks"; SqlCmd.Parameters.Clear(); SqlCmd.CommandType = System.Data.CommandType.StoredProcedure; SqlCmd.Parameters.AddWithValue("@IDAlmacen", SalidaInventario.Almacen.ID); SqlCmd.Parameters.AddWithValue("@IDProducto", Item.Producto.ID); SqlCmd.Parameters.AddWithValue("@Cantidad", Item.Cantidad * Item.Factor); SqlCmd.Parameters.AddWithValue("@Operacion", "Decrementar"); SqlCmd.ExecuteNonQuery(); } // Actualizamos la Numeración de la Salida de Inventario if (SalidaInventario.TipoDocumento.GeneraNumeracionAlFinal) { SqlCmd.CommandText = "pSF_Generar_Numeracion"; SqlCmd.Parameters.Clear(); SqlCmd.Parameters.AddWithValue("@Documento", "SalidaInventario"); SqlCmd.Parameters.AddWithValue("@TipoDocumento", "TipoDocumentoInventario"); SqlCmd.Parameters.AddWithValue("@IDDocumento", SalidaInventario.ID); SqlCmd.Parameters.AddWithValue("@IDTipoDocumento", SalidaInventario.TipoDocumento.ID); SqlCmd.ExecuteNonQuery(); } Sesion.Save(Auditoria); Trans.Commit(); m_ResultProcess = EnumResult.SUCESS; } catch (Exception ex) { Trans.Rollback(); m_ResultProcess = EnumResult.ERROR; SoftException.Control(ex); } } } base.Start(); }
public int SetSalidas(SalidaInventario sal, Operacion op) { int res = 0; string sql = ""; switch (op) { case Operacion.Insertar: sql = "INSERT INTO Salidas VALUES(@nom)"; break; case Operacion.Actualizar: sql = "UPDATE Salidas SET Nombre = @nom WHERE (IdSalida = @idsal)"; break; case Operacion.Eliminar: sql = "DELETE FROM Salidas WHERE (IdSalida = @idsal)"; break; } try { SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@idsal", sal.IdSalida); cmd.Parameters.AddWithValue("@idpro", sal.IdProducto); cmd.Parameters.AddWithValue("@pro", sal.producto); cmd.Parameters.AddWithValue("@can", sal.Cantidad); cmd.Parameters.AddWithValue("@mon", sal.Monto); cmd.Parameters.AddWithValue("@fec", sal.FechaRegistro); cmd.Parameters.AddWithValue("@idu", sal.IdUsuario); if (Abrir()) { res = cmd.ExecuteNonQuery(); Cerrar(); } } catch (Exception ex) { Cerrar(); res = -1; } return(res); }
public override void Start() { using (ISession Sesion = m_SessionFactory.OpenSession()) { using (ITransaction Trans = Sesion.BeginTransaction()) { try { SalidaInventario SalidaInventario = (SalidaInventario)m_ObjectFlow; Sesion.Delete(SalidaInventario); Sesion.Flush(); foreach (ItemSalidaInventario Item in SalidaInventario.Items) { SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = (SqlConnection)Sesion.Connection; Trans.Enlist(SqlCmd); SqlCmd.CommandText = "pSF_ActualizarStocks"; SqlCmd.CommandType = System.Data.CommandType.StoredProcedure; SqlCmd.Parameters.AddWithValue("@IDAlmacen", SalidaInventario.Almacen.ID); SqlCmd.Parameters.AddWithValue("@IDProducto", Item.Producto.ID); SqlCmd.Parameters.AddWithValue("@Cantidad", Item.Cantidad * Item.Factor); SqlCmd.Parameters.AddWithValue("@Operacion", "Incrementar"); SqlCmd.ExecuteNonQuery(); } Trans.Commit(); m_ResultProcess = EnumResult.SUCESS; } catch (Exception ex) { Trans.Rollback(); m_ResultProcess = EnumResult.ERROR; SoftException.Control(ex); } } } base.Start(); }