예제 #1
0
 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());
 }
예제 #2
0
        /// ------------------------------------------------------------------------------------------------------------------------

        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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();
        }