public static void renovarStock(DetallePedido detPedido, SqlConnection con, SqlTransaction trans, Pedido pedido, List <Producto> productosConPocaMP)
        {
            DataTable ProductosIntermedio;
            DataTable MateriaPrima;
            DataTable DetallePlan;
            int       idProductoFinal      = 0;
            int       idProductoIntermedio = 0;
            double    cantidad             = 0;

            idProductoFinal = detPedido.producto.idProducto;                                                                             //OBTENEMOS EL ID DEL PRODUCTO FINAL
            cantidad        = detPedido.cantidad;                                                                                        //OBTENEMOS LA CANTIDAD DE PRODUCTOS
            if (ProductoDAO.verificarProductoPlanificado(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true)               //PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE
            {
                DetallePlan = DetallePlanProduccionDAO.GetDetallePlanXProducto(idProductoFinal, pedido.fechaNecesidad.Date, con, trans); //OBTENEMOS LOS DATOS DEL DETALLE DEL PLAN

                renovarDetallePlanYPedidoXPlan(DetallePlan, pedido.idPedido, con, trans, cantidad);

                MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal, trans, con);              //CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS
                DataTable MateriaPrimaXIntermedio = new DataTable();
                ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal, con, trans); //CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO

                renovarMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans, productosConPocaMP);
            }
            //else
            //{
            //    if (ProductoDAO.verificarPlanSinProducto(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true)//PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE
            //    {
            //        Producto prodNuevo = new Producto();
            //        prodNuevo.idProducto = idProductoFinal;
            //        DetallePlanProduccion detallePlanProduccion = new DetallePlanProduccion()
            //        {
            //            fechaProduccion = pedido.fechaNecesidad,
            //            idPlan = PlanMaestroProduccionDAO.obtenerIdPlan(pedido.fechaNecesidad.Date),
            //            cantidadPLan = 0,
            //            producto = prodNuevo,
            //            cantidadPedido = double.Parse(cantidad.ToString())
            //        };

            //        cargarNuevoDetallePlanYPedidoXPlan(detallePlanProduccion, con, trans, pedido);

            //        MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal, trans, con);//CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS
            //        DataTable MateriaPrimaXIntermedio = new DataTable();
            //        ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal, con, trans);//CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO

            //        obtenerMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans);
            //    }
            //}
        }
        public static void UpdateStockReservadoYActualdePedidoEntregado(DetallePedido det, int idPedido, int estadoHasta)
        {
            Acceso ac = new Acceso();

            SqlConnection  conexion = new SqlConnection(ac.getCadenaConexion());
            SqlTransaction tran     = null;
            SqlCommand     cmd      = new SqlCommand("UPDATE [Luiggi].[dbo].[Producto] SET [stockActual] = stockActual - @cantidad, [stockReservado] = stockReservado - @cantidad  WHERE idProducto = @idProducto", conexion);


            cmd.Parameters.AddWithValue("@idProducto", det.producto.idProducto);
            cmd.Parameters.AddWithValue("@cantidad", det.cantidad);

            try
            {
                conexion.Open();
                tran            = conexion.BeginTransaction();
                cmd.Connection  = conexion;
                cmd.Transaction = tran;
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();

                PedidoDAO.UpdateEstados(idPedido, estadoHasta);


                tran.Commit();
            }
            catch (ArgumentException ex)
            {
                tran.Rollback();
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                tran.Rollback();
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }
        }
Beispiel #3
0
        public static List <DetallePedido> getCantidadPedidaxProducto(DateTime fecha)
        {
            Acceso ac = new Acceso();
            List <DetallePedido> detalles = new List <DetallePedido>();

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("sp_buscar_cantidad_pedido_fecha");

            cmd.Parameters.AddWithValue("@fecha", fecha);

            try
            {
                conexion.Open();

                cmd.Connection = conexion;

                cmd.CommandType = CommandType.StoredProcedure;

                SqlDataReader dr = cmd.ExecuteReader();

                DetallePedido d;
                Producto      p;
                UnidadMedida  u;

                while (dr.Read())
                {
                    u = new UnidadMedida();

                    u.Nombre = dr["Unidad"].ToString();

                    p = new Producto();


                    p.Nombre     = dr["nombre"].ToString();
                    p.Unidad     = u;
                    p.idProducto = Convert.ToInt16(dr["idProducto"]);

                    d = new DetallePedido();

                    d.cantidad = Convert.ToInt32(dr["cantidad"]);
                    d.producto = p;


                    detalles.Add(d);
                }
            }
            catch (InvalidOperationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }


            return(detalles);
        }
Beispiel #4
0
        public static List <DetallePedido> GetDetalleXPedido(int ped)
        {
            Acceso ac = new Acceso();

            List <DetallePedido> detalles = new List <DetallePedido>();

            string     sql = "SELECT * from CONSULTA_DETALLE_PEDIDO where idPedido = @ped";
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.AddWithValue("@ped", ped);
            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            try
            {
                conexion.Open();

                cmd.Connection  = conexion;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;

                SqlDataReader dr = cmd.ExecuteReader();

                DetallePedido d;
                Producto      p;
                UnidadMedida  u;
                Estado        e;

                while (dr.Read())
                {
                    e          = new Estado();
                    e.idEstado = Convert.ToInt32(dr["idEstado"]);
                    u          = new UnidadMedida();

                    u.IDUnidad = Convert.ToInt32(dr["idUnidad"]);
                    u.Nombre   = dr["UnidadMedida"].ToString();

                    p = new Producto();

                    p.CODProducto = Convert.ToInt32(dr["codProducto"]);
                    p.Nombre      = dr["nombre"].ToString();
                    p.Unidad      = u;
                    p.idProducto  = Convert.ToInt16(dr["idProducto"]);

                    d = new DetallePedido();

                    d.cantidad  = Convert.ToDouble(dr["cantidad"]);
                    d.producto  = p;
                    d.precio    = Convert.ToDouble(dr["precio"]);
                    d.subTotal  = Convert.ToDouble(dr["subTotal"]);
                    d.reservado = Convert.ToBoolean(dr["reservado"]);
                    d.Estado    = e;

                    detalles.Add(d);
                }
            }
            catch (InvalidOperationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }


            return(detalles);
        }