← Volver al índice

📄 Vista: [dbo].[v_consumos_6]

Versión: v1.1 Autor: Jimmy Ricardo Sánchez Romero Fecha: 2025-10-09 Dependencias: [dbo].[T_Consumos_6],[dbo].[v_bodegas_1] Estado: Activa ✅


📘 Descripción funcional

Vista que consolida los consumos de materiales (entradas/salidas) ajustando las cantidades según el tipo de documento y motivo. Esta vista normaliza los signos de las cantidades para análisis contable y logístico.

Se realiza un filtro por motivos ('604-01','604-03','604-07','604-17') Para el documento AMP se filtra por ('601-26')

Por temas de rendimiento se lleva a una tabla con ETL.


🧮 Estructura SQL

    CREATE OR ALTER VIEW [dbo].[v_bodegas_1]
    AS
    SELECT 
        T1.[CodBodega],                                         -- Código de bodega
        T1.[CodMaterial],                                       -- Código del material consumido
        CASE 
            WHEN T1.[motivo] IN ('604-01','604-03','604-07','604-17') 
                THEN T1.[Cantidad] * (-1)                       -- Invierte signo si el motivo indica devolución o salida
            ELSE T1.[Cantidad]
        END AS [Cantidad],
        T1.[Unidad],                                            -- Unidad de medida del consumo
        T1.[Fecha],                                             -- Fecha del movimiento
        T1.[Negocio],                                           -- Negocio al que pertenece el consumo
        T1.[Tipo de documento]                                  -- Tipo de documento que originó el movimiento
    FROM [dbo].[T_Consumos_6] AS T1
    INNER JOIN [dbo].[v_bodegas_1] AS T2 
        ON T2.[CodBodega] = T1.[CodBodega]
        AND T1.[Negocio] = T2.[Negocio]
    WHERE [Tipo de documento] NOT IN ('AMP')                   -- Filtra todo excepto documentos tipo AMP

    UNION ALL .
    
    /**********************************************************************************************
    BLOQUE 2: Documentos tipo 'AMP' (manejo especial)
    **********************************************************************************************/
    SELECT 
        T1.[CodBodega],
        T1.[CodMaterial],
        CASE 
            WHEN T1.[motivo] IN ('601-26') 
                THEN T1.[Cantidad] * (-1)                       -- Ajusta signo para motivos específicos de AMP
            ELSE T1.[Cantidad]
        END AS [Cantidad],
        T1.[Unidad],
        T1.[Fecha],
        T1.[Negocio],
        T1.[Tipo de documento]
    FROM [dbo].[T_Consumos_6] AS T1
    INNER JOIN [dbo].[v_bodegas_1] AS T2 
        ON T2.[CodBodega] = T1.[CodBodega]
        AND T1.[Negocio] = T2.[Negocio]
    WHERE [Tipo de documento] IN ('AMP');                      -- Solo documentos tipo AMP
    GO

⚙️ Origen de datos

Esquema Tablas principales
dbo T_Consumos_6
dbo v_bodegas_1

🧾 Columnas principales

Columna Tipo de dato Descripción
CodBodega VARCHAR(20) Código con el que los usuarios reconocen la bodega
CodMaterial INT Código del material o producto
Cantidad NUMERIC(38,4) Cantidad
Unidad CHAR(4) Unidad de inventario
Fecha DATE Fecha
Negocio VARCHAR(5) Instancia del ERP
Tipo de documento VARCHAR(5) Tipo de documento utilizado en la causación

🔄 Historial de cambios

Versión Fecha Autor Descripción
v1.0 2022-03-15 Jimmy R. Sánchez Creación inicial
v1.1 2025-10-09 Jimmy R. Sánchez Documentación formal

🔍 Observaciones