Diccionario de Datos

Logo

Diccionario de datos de los modelos de COÉXITO

🏠 Menú principal ← Volver a vistas materializadas

SIMACMOBILE.VISTA_TRX_DETALLE_COMERCIAL

Base de datos origen: ORCLSMM

Tipo de objeto: MATERIALIZED VIEW

SQL


  CREATE MATERIALIZED VIEW "SIMACMOBILE"."VISTA_TRX_DETALLE_COMERCIAL" ("TERRITORIO", "SUCURSAL", "ZONA", "VENDEDOR", "LINEA", "SUB_CATEGORIA", "CLIENTE_NIT", "CLIENTE_RAZON_SOCIAL", "NUMERO_FACTURA", "FECHA_VENTA", "REFERENCIA", "DESC_ITEM", "CANTIDAD", "VALOR_UNITARIO", "TOTAL", "CATEGORIA_REFERENCIA", "LINEA_REFERENCIA", "SUBLINEA_COMERCIAL", "EQUIVALENCIA_GALONES", "MES", "ANIO", "DIA", "MARCA", "EXCLUIR", "DOCUMENTO_ORACLE", "TIPO_TRANS", "CLIENTE_SITE", "ORDEN_PEDIDO", "SEGMENTO1", "SEGMENTO2", "SEGMENTO3", "SEGMENTO4", "SEGMENTO5", "SEGMENTO6", "SEGMENTO7", "SEGMENTO8", "SEGMENTO9", "SEGMENTO10")
  SEGMENT CREATION IMMEDIATE
  ORGANIZATION HEAP PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  BUILD DEFERRED
  USING INDEX 
  REFRESH FORCE ON DEMAND
  USING DEFAULT LOCAL ROLLBACK SEGMENT
  USING ENFORCED CONSTRAINTS DISABLE ON QUERY COMPUTATION DISABLE QUERY REWRITE
  AS WITH VENDEDOR_ZONA AS (
SELECT DISTINCT ID_PR.ZONA, PE.COD_VENDEDOR, PE.MES, PE.ANIO  
        FROM (SELECT
                MES,
                ANIO,
                 ZONA,
                 MAX(ID_PREERP) ID_PREERP
            FROM
                SIMACMOBILE.PRESUPUESTO_ERP                
           --WHERE MES = 3
           --AND ANIO = 2025
            GROUP BY  MES,
               ANIO,ZONA)ID_PR
               JOIN SIMACMOBILE.PRESUPUESTO_ERP PE ON PE.ID_PREERP = ID_PR.ID_PREERP
),ZONA_VENTA_HISTORICO AS (
    SELECT
        DISTINCT VEHI.ID_VEHIERP,
        CASE
            WHEN VEHI.TIPO_TRANS LIKE '%NC%' THEN CASE
                WHEN VHE.ZONA IS NOT NULL
                AND SUBSTR(VHE.ZONA, 4, 1) = '-' THEN VHE.ZONA
                ELSE CASE
                    WHEN PRES2.ZONA IS NOT NULL THEN PRES2.ZONA
                    ELSE CASE
                        WHEN VHE.CODIGO_VENDEDOR IS NOT NULL THEN CASE
                            WHEN SUBSTR(VHE.CODIGO_VENDEDOR, 4, 1) = 'C'
                            OR SUBSTR(VHE.CODIGO_VENDEDOR, 4, 2) = 'CE' THEN CONCAT(SUBSTR(VHE.CODIGO_VENDEDOR, 1, 3), '-100')
                        END
                        ELSE CASE
                            WHEN PRES.ZONA IS NOT NULL THEN PRES.ZONA
                            ELSE CASE
                                WHEN SUBSTR(VEHI.CODIGO_VENDEDOR, 4, 1) = 'C'
                                OR SUBSTR(VEHI.CODIGO_VENDEDOR, 4, 2) = 'CE' THEN CONCAT(SUBSTR(VEHI.CODIGO_VENDEDOR, 1, 3), '-100')
                            END
                        END
                    END
                END
            END
            ELSE CASE
                WHEN VEHI.ZONA IS NOT NULL
                AND SUBSTR(VEHI.ZONA, 4, 1) = '-' THEN VEHI.ZONA
                ELSE CASE
                    WHEN PRES.ZONA IS NOT NULL THEN PRES.ZONA
                    ELSE CASE
                        WHEN SUBSTR(VEHI.CODIGO_VENDEDOR, 4, 1) = 'C'
                        OR SUBSTR(VEHI.CODIGO_VENDEDOR, 4, 2) = 'CE' THEN CONCAT(SUBSTR(VEHI.CODIGO_VENDEDOR, 1, 3), '-100')
                    END
                END
            END
        END AS ZONA,
        EXTRACT(MONTH FROM VEHI.FECHA_VENTA) AS MES,
        EXTRACT(YEAR FROM VEHI.FECHA_VENTA) AS ANIO
    FROM
        SIMACMOBILE.VENTA_HISTORICO_ERP VEHI
        LEFT JOIN (
            SELECT
                MES,
                ANIO,
                COD_VENDEDOR,
                MIN(ZONA) ZONA
            FROM
                SIMACMOBILE.PRESUPUESTO_ERP
            GROUP BY
                MES,
                ANIO,
                COD_VENDEDOR
            ORDER BY
                MES,
                ZONA,
                COD_VENDEDOR,
                ANIO
        ) PRES ON PRES.COD_VENDEDOR = substr(VEHI.CODIGO_VENDEDOR,1,7)
        AND EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) = PRES.MES
        AND EXTRACT(
            YEAR
            FROM
                VEHI.FECHA_VENTA
        ) = PRES.ANIO
        LEFT JOIN SIMACMOBILE.VENTA_HISTORICO_ERP VHE ON VHE.DOCUMENTO_ORACLE = VEHI.TRANSACCION_ORIGINAL
        AND VEHI.TIPO_TRANS LIKE '%NC%'
        AND (VHE.CODIGO_VENDEDOR LIKE '%C%')
        AND (VHE.TIPO_TRANS LIKE '%FV%')
       -- AND (
       --     VEHI.CODIGO_SUCURSAL_ORACLE = VHE.CODIGO_SUCURSAL_ORACLE
       -- )
        LEFT JOIN (
            SELECT
                MES,
                ANIO,
                COD_VENDEDOR,
                MIN(ZONA) ZONA
            FROM
                SIMACMOBILE.PRESUPUESTO_ERP
            GROUP BY
                MES,
                ANIO,
                COD_VENDEDOR
            ORDER BY
                MES,
                ZONA,
                COD_VENDEDOR,
                ANIO
        ) PRES2 ON PRES2.COD_VENDEDOR = substr(VHE.CODIGO_VENDEDOR,1,7)
        AND EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) = PRES2.MES
        AND EXTRACT(
            YEAR
            FROM
                VEHI.FECHA_VENTA
        ) = PRES2.ANIO
    WHERE
        /*EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) = 3
        AND EXTRACT(
            YEAR
            FROM
                VEHI.FECHA_VENTA
        ) = 2025
        AND EXTRACT(
            DAY
            FROM
                VEHI.FECHA_VENTA
        ) >= 1
        AND EXTRACT(
            DAY
            FROM
                VEHI.FECHA_VENTA
        ) <= 31*/
        (VEHI.CODIGO_VENDEDOR LIKE '%C%')
        AND SUBSTR(VEHI.CODIGO_VENDEDOR, 1, 3) IN ('100','101','200','201','202','300','400','500','501','502','503','600')
        AND (
            VEHI.TIPO_TRANS LIKE '%FV%'
            OR VEHI.TIPO_TRANS LIKE '%BP%'
            OR VEHI.TIPO_TRANS LIKE '%ND%'
            OR VEHI.TIPO_TRANS LIKE '%NC%'
            OR VEHI.TIPO_TRANS LIKE '%RB%'
        )
),
REFERENCIA_EXCLUIDA AS (
SELECT
	* 
FROM 
	SIMACMOBILE.REFERENCIA_ERP re JOIN SIMACMOBILE.REFERENCIA_EXCLUIDA_IND rei ON rei.ID_REERP = re.ID_REERP
WHERE rei.CEDI = 1 AND 
rei.ESTADO_REGISTRO = 'A'
),
DETALLE_VENTA_HISTORICO AS (
    SELECT
         VEHI.ID_VEHIERP,
        VEHI.NUMERO_FACTURA,
        VEHI.CLIENTE_NIT,
        VEHI.CLIENTE_RAZON_SOCIAL,
        VEHI.CODIGO AS REFERENCIA,
        NVL(VZ.COD_VENDEDOR,CASE WHEN VEHI.VENDEDOR LIKE '%CE%' THEN CONCAT(SUBSTR(VEHI.VENDEDOR, 1, 3), 'C001') ELSE SUBSTR(VEHI.VENDEDOR,1,7) END) VENDEDOR,
     --   CASE WHEN VEHI.VENDEDOR LIKE ''%CE%'' THEN CONCAT(SUBSTR(VEHI.VENDEDOR, 1, 3), ''C001'') ELSE SUBSTR(VEHI.VENDEDOR,1,7) END VENDEDOR,
        REPLACE(
            REPLACE(REPLACE(ZONA.ZONA, CHR(10), ''), CHR(13), ''),
            ' ',
            ''
        ) ZONA,
        VEHI.CATEGORIA_REFERENCIA,
        NVL(SUBSTR(VZ.COD_VENDEDOR,1,3),VEHI.SUCURSAL_VENDEDOR) AS SUCURSAL,
        VEHI.MARCA,
        VEHI.CANTIDAD,
        VEHI.VALOR_UNITARIO,
        VEHI.FECHA_VENTA,
        VEHI.SUBLINEA_COMERCIAL,
        VEHI.EQUIVALENCIA_GALONES,
        EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) AS MES,
        --CASE WHEN SUB.LINEA = ''REPUESTOS'' AND VEHI.LINEA LIKE ''%FRENO%'' THEN ''FRENOS'' WHEN SUB.LINEA = ''REPUESTOS'' AND VEHI.LINEA LIKE ''%BUJIA%'' THEN ''BUJIAS'' ELSE SUB.SUB_CATEGORIA END SUB_CATEGORIA,
        CASE WHEN SUB.LINEA = 'REPUESTOS' THEN
            CASE
            WHEN VEHI.LINEA = 'FILTROS_COEXITO' THEN 'FILTROS' WHEN VEHI.LINEA = 'PASTILLAS_DE_FRENOS' THEN 'FRENOS'
            WHEN VEHI.LINEA = 'AGUA_DESMINERALIZADA' THEN 'OTROS' WHEN VEHI.LINEA = 'REFRIGERANTE' THEN 'OTROS'
            ELSE SUB.SUB_CATEGORIA
        END ELSE SUB.SUB_CATEGORIA END SUB_CATEGORIA,
        SUB.EXCLUIR,
        SUB.LINEA,
        CASE WHEN VEHI.TIPO_TRANS LIKE '%FV%' OR VEHI.TIPO_TRANS LIKE '%ND%' THEN
            CASE WHEN (VEHI.CANTIDAD * VEHI.VALOR_UNITARIO)<0 THEN
                 CASE WHEN   VEHI.DESC_ITEM LIKE '%QP_%' THEN VEHI.DESC_ITEM ELSE 'QP_'||VEHI.DESC_ITEM  END
            ELSE
             VEHI.DESC_ITEM
            END 
        WHEN VEHI.TIPO_TRANS LIKE '%NC%' THEN
            CASE WHEN (VEHI.CANTIDAD * VEHI.VALOR_UNITARIO)>0 THEN
                 CASE WHEN   VEHI.DESC_ITEM LIKE '%QP_%' THEN VEHI.DESC_ITEM ELSE 'QP_'||VEHI.DESC_ITEM  END
            ELSE
             VEHI.DESC_ITEM
            END
        ELSE
        VEHI.DESC_ITEM
        END AS DESC_ITEM,
        VEHI.LINEA AS LINEA_REFERENCIA,
        VEHI.DOCUMENTO_ORACLE,
        VEHI.TIPO_TRANS,
        VEHI.CLIENTE_SITE,
        VEHI.ORDEN_PEDIDO,
        VEHI.SEGMENTO1,
        VEHI.SEGMENTO2,
        VEHI.SEGMENTO3,
        VEHI.SEGMENTO4,
        VEHI.SEGMENTO5,
        VEHI.SEGMENTO6,
        VEHI.SEGMENTO7,
        VEHI.SEGMENTO8,
        VEHI.SEGMENTO9,
        VEHI.SEGMENTO10
    FROM
        SIMACMOBILE.VISTA_VENTA_HISTORICO_ERP VEHI
        JOIN (
            SELECT
                HORE.SUB_CATEGORIA,
                HORE.EXCLUIR,
                HORE.LINEA,
                HORE.MARCA,
                CARE.CODIGO_CATEGORIA
            FROM
                SIMACMOBILE.HOMOLOGACION_CATEGORIA_REFERENCIA_ERP HORE
                JOIN SIMACMOBILE.CATEGORIAXREFERENCIA_ERP CARE ON CARE.ID_CAREERP = HORE.ID_CAREERP
                WHERE HORE.ESTADO_REGISTRO = 'A'
        ) SUB ON SUB.CODIGO_CATEGORIA = VEHI.CATEGORIA_REFERENCIA
        AND SUB.MARCA = VEHI.MARCA
        JOIN ZONA_VENTA_HISTORICO ZONA ON ZONA.ID_VEHIERP = VEHI.ID_VEHIERP
        AND ZONA.MES = EXTRACT(MONTH FROM VEHI.FECHA_VENTA) AND ZONA.ANIO = EXTRACT(YEAR FROM VEHI.FECHA_VENTA)
        LEFT JOIN VENDEDOR_ZONA VZ ON VZ.ZONA = REPLACE(REPLACE(REPLACE(ZONA.ZONA, CHR(10), ''), CHR(13), ''),' ','')
        AND VZ.MES = EXTRACT(MONTH FROM VEHI.FECHA_VENTA) AND VZ.ANIO = EXTRACT(YEAR FROM VEHI.FECHA_VENTA)
    WHERE
        /*EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) ='||P_MES||'
        AND EXTRACT(
            YEAR
            FROM
                VEHI.FECHA_VENTA
        ) ='||P_ANIO||'
        AND EXTRACT(
            DAY
            FROM
                VEHI.FECHA_VENTA
        ) >='||P_DIA_INICIAL||'
        AND EXTRACT(
            DAY
            FROM
                VEHI.FECHA_VENTA
        ) <='||P_DIA_FINAL||'*/
        (VEHI.VENDEDOR LIKE '%C%')
        AND SUBSTR(VEHI.VENDEDOR, 1, 3) IN ('100','101','200','201','202','300','400','500','501','502','503','600')
        AND (
            VEHI.TIPO_TRANS LIKE '%FV%'
            OR VEHI.TIPO_TRANS LIKE '%BP%'
            OR VEHI.TIPO_TRANS LIKE '%ND%'
            OR VEHI.TIPO_TRANS LIKE '%NC%'
            OR VEHI.TIPO_TRANS LIKE '%RB%'
        )
        AND (VEHI.DESC_ITEM NOT LIKE '%GARANTI%' AND VEHI.DESC_ITEM NOT LIKE '%SCRAP%') -- AND VEHI.CODIGO NOT LIKE ''%_01''
        AND VEHI.CODIGO NOT IN (SELECT CODIGO FROM REFERENCIA_EXCLUIDA)
),
OTROS_NO_ENCONTRADOS AS (
    SELECT
        VEHI.CANTIDAD_ITEM AS CANTIDAD,
        VEHI.MONTO_UNITARIO_ITEM AS VALOR_UNITARIO,
        VEHI.CLIENTE_NIT,
        VEHI.CLIENTE_RAZON_SOCIAL,
        VEHI.NUMERO_FACTURA,
        VEHI.FECHA_VENTA,
       NVL(VZ.COD_VENDEDOR,CASE WHEN VEHI.CODIGO_VENDEDOR LIKE '%CE%' THEN CONCAT(SUBSTR(VEHI.CODIGO_VENDEDOR, 1, 3), 'C001') ELSE SUBSTR(VEHI.CODIGO_VENDEDOR,1,7) END) CODIGO_VENDEDOR,
        --SUBSTR(VEHI.CODIGO_VENDEDOR,1,7) CODIGO_VENDEDOR,
        VEHI.CODIGO_ITEM AS REFERENCIA,
        VEHI.DESC_ITEM,
        REPLACE(
            REPLACE(REPLACE(ZONA.ZONA, CHR(10), ''), CHR(13), ''),
            ' ',
            ''
        ) ZONA,
        EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) AS MES,
        VEHI.ID_VEHIERP,
        ITCA.CATEGORIA_REFERENCIA,
        REER.LINEA AS LINEA_REFERENCIA,
        REER.SUBLINEA_COMERCIAL,
        REER.EQUIVALENCIA_GALONES,
        REER.MARCA,
        VEHI.DOCUMENTO_ORACLE,
        VEHI.TIPO_TRANS,
        VEHI.CLIENTE_SITE,
        VEHI.ORDEN_PEDIDO,
        VEHI.SEGMENTO1,
        VEHI.SEGMENTO2,
        VEHI.SEGMENTO3,
        VEHI.SEGMENTO4,
        VEHI.SEGMENTO5,
        VEHI.SEGMENTO6,
        VEHI.SEGMENTO7,
        VEHI.SEGMENTO8,
        VEHI.SEGMENTO9,
        VEHI.SEGMENTO10
    FROM
        SIMACMOBILE.VENTA_HISTORICO_ERP VEHI
        JOIN ZONA_VENTA_HISTORICO ZONA ON ZONA.ID_VEHIERP = VEHI.ID_VEHIERP
         AND ZONA.MES = EXTRACT(MONTH FROM VEHI.FECHA_VENTA) AND ZONA.ANIO = EXTRACT(YEAR FROM VEHI.FECHA_VENTA)
         LEFT JOIN VENDEDOR_ZONA VZ ON VZ.ZONA = REPLACE(REPLACE(REPLACE(ZONA.ZONA, CHR(10), ''), CHR(13), ''),' ','')
                    AND VZ.MES = EXTRACT(MONTH FROM VEHI.FECHA_VENTA) AND VZ.ANIO = EXTRACT(YEAR FROM VEHI.FECHA_VENTA)
         LEFT JOIN  SIMACMOBILE.REFERENCIA_ERP REER ON REER.ID_REERP = VEHI.ID_REERP 
         LEFT JOIN  SIMACMOBILE.ITEM_CATEGORIA_ERP ITCA ON ITCA.ID_ICERP = REER.ID_ICERP
    WHERE
        /*EXTRACT(
            MONTH
            FROM
                VEHI.FECHA_VENTA
        ) ='||P_MES||'
        AND EXTRACT(
            YEAR
            FROM
                VEHI.FECHA_VENTA
        ) ='||P_ANIO||'
        AND EXTRACT(
            DAY
            FROM
                VEHI.FECHA_VENTA
        ) >='||P_DIA_INICIAL||'
        AND EXTRACT(
            DAY
            FROM
                VEHI.FECHA_VENTA
        ) <='||P_DIA_FINAL||'*/
        (VEHI.CODIGO_VENDEDOR LIKE '%C%')
        AND SUBSTR(VEHI.CODIGO_VENDEDOR, 1, 3) IN ('100','101','200','201','202','300','400','500','501','502','503','600')
        AND VEHI.CODIGO_ITEM NOT IN (SELECT CODIGO FROM REFERENCIA_EXCLUIDA)
        AND VEHI.ID_VEHIERP NOT IN (
            SELECT
                DEVE.ID_VEHIERP
            FROM
                DETALLE_VENTA_HISTORICO DEVE
        )
        AND (
            VEHI.TIPO_TRANS LIKE '%FV%'
            OR VEHI.TIPO_TRANS LIKE '%BP%'
            OR VEHI.TIPO_TRANS LIKE '%ND%'
            OR VEHI.TIPO_TRANS LIKE '%NC%'
            OR VEHI.TIPO_TRANS LIKE '%RB%'
        )
        AND (VEHI.DESC_ITEM NOT LIKE '%GARANTI%' AND VEHI.DESC_ITEM NOT LIKE '%SCRAP%')-- AND VEHI.CODIGO_ITEM NOT LIKE ''%_01''
),
RESULTADO AS (
    SELECT
        DET.LINEA,
        DET.SUB_CATEGORIA,
        DET.ZONA,
        DET.CLIENTE_NIT,
        DET.CLIENTE_RAZON_SOCIAL,
        DET.NUMERO_FACTURA,
        DET.FECHA_VENTA,
        DET.VENDEDOR,
        DET.SUCURSAL,
        DET.REFERENCIA,
        SUM(DET.CANTIDAD) CANTIDAD,
        DET.VALOR_UNITARIO,
        DET.MES,
        DET.DESC_ITEM,
        DET.MARCA,
        DET.EXCLUIR,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'LIV'
                AND DET.LINEA = 'LLANTAS'
                AND DET.MARCA NOT IN (
                    'WANLI',
                    'TRACMAX',
                    'LANVIGATOR',
                    'OTRAS_MARCAS',
                    'KINGSTAR',
                    'NO_APLICA',
                    'CRATOS',
                    'DOUBLESTAR'
                )
                AND DET.EXCLUIR = '0' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_LL_LIV,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'PES'
                AND DET.LINEA = 'LLANTAS'
                AND DET.MARCA in ('HANKOOK','LAUFENN')
                AND DET.EXCLUIR = '0' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_LL_PES,
        --LAS EXCLUIDAS
        --LLANTAS CHINAS
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'CHIN'
                AND DET.LINEA = 'LLANTAS'
                AND DET.MARCA IN (
                    'LAUFENN',
                    'WANLI',
                    'TRACMAX',
                    'LANVIGATOR',
                    'OTRAS_MARCAS',
                    'KINGSTAR',
                    'NO_APLICA',
                    'CRATOS',
                    'DOUBLESTAR'
                )
                AND DET.EXCLUIR = '1' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_CHIN,
        --LLANTAS CHAOYANG LIVIANAS
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'LIV.CHY'
                AND DET.LINEA = 'LLANTAS'
                AND DET.MARCA = 'CHAOYANG'
                AND DET.EXCLUIR = '1' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_LL_LIV_CHY,
        --LLANTAS CHAOYANG PESADAS
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'PES.CHY'
                AND DET.LINEA = 'LLANTAS'
                AND DET.MARCA = 'CHAOYANG'
                AND DET.EXCLUIR = '1' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_LL_PES_CHY,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'MOTO'
                AND DET.LINEA = 'LLANTAS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_LL_MOTO,
        --BATERIAS
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'LIV'
                AND DET.LINEA = 'BATERIAS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_BAT_LIV,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'PES'
                AND DET.LINEA = 'BATERIAS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_BAT_PES,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'MOTO'
                AND DET.LINEA = 'BATERIAS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_BAT_MOTO,
        --LUBRICANTES
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'LUBRIC'
                AND DET.LINEA = 'LUBRIC' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_LUBRIC,
        --REPUESTOS
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'BUJIAS'
                AND DET.LINEA = 'REPUESTOS'
                AND DET.MARCA <> 'COEXITO'
                AND DET.EXCLUIR = '1' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_BUJIA,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'FILTROS'
                AND DET.LINEA = 'REPUESTOS'
                AND DET.LINEA_REFERENCIA = 'FILTROS_COEXITO'
                AND DET.EXCLUIR = '0' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_FILTRO,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'LIQ.FREN'
                AND DET.LINEA = 'REPUESTOS' AND DET.LINEA_REFERENCIA = 'LIQUIDO_DE_FRENOS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_LIQ_FREN,
         SUM(
        	CASE
                WHEN DET.SUB_CATEGORIA = 'OTROS'
                AND DET.LINEA = 'REPUESTOS' 
                AND DET.LINEA_REFERENCIA NOT IN ('LIQUIDO_DE_FRENOS', 'FILTROS_COEXITO', 'PASTILLAS_DE_FRENOS')
                THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_REPUESTOS_OTROS,
        --CLIENTES
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'RECOGIDA'
                AND DET.LINEA = 'BAPUS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_BAPUS,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'FRENOS'
                AND DET.LINEA = 'REPUESTOS'
                AND DET.LINEA_REFERENCIA = 'PASTILLAS_DE_FRENOS'
                THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_FRENO,
        --EQUIPOS
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'EQUIPOS'
                AND DET.LINEA = 'EQUIPOS'
                AND DET.VALOR_UNITARIO > 0 THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_EQUIPO,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'EQUIPOS'
                AND DET.LINEA = 'EQUIPOS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_EQUIPOS,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'SRE'
                AND DET.LINEA = 'SRE'
                AND DET.VALOR_UNITARIO > 0 THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_SRE,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'SRE'
                AND DET.LINEA = 'SRE' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_SRE,
        SUM(
            CASE
                WHEN DET.LINEA LIKE '%VRLA%'
                AND DET.VALOR_UNITARIO > 0 THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_VRLA,
        SUM(
            CASE
                WHEN DET.LINEA LIKE '%VRLA%' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_VRLA,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'MISCELANEOS'
                AND DET.LINEA = 'MISCELANEOS'
                AND DET.VALOR_UNITARIO > 0 THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_MISCELANEOS,
        SUM(
            CASE
                WHEN DET.SUB_CATEGORIA = 'MISCELANEOS'
                AND DET.LINEA = 'MISCELANEOS' THEN DET.CANTIDAD * DET.VALOR_UNITARIO
                ELSE 0
            END
        ) AS VALOR_TOTAL_MISCELANEOS,
        DET.CATEGORIA_REFERENCIA,
        DET.LINEA_REFERENCIA,
        DET.SUBLINEA_COMERCIAL,
        DET.EQUIVALENCIA_GALONES,
        DET.DOCUMENTO_ORACLE,
        DET.TIPO_TRANS,
        DET.CLIENTE_SITE,
        DET.ORDEN_PEDIDO,
        DET.SEGMENTO1,
        DET.SEGMENTO2,
        DET.SEGMENTO3,
        DET.SEGMENTO4,
        DET.SEGMENTO5,
        DET.SEGMENTO6,
        DET.SEGMENTO7,
        DET.SEGMENTO8,
        DET.SEGMENTO9,
        DET.SEGMENTO10
    FROM
        DETALLE_VENTA_HISTORICO DET
    GROUP BY
        DET.LINEA,
        DET.SUB_CATEGORIA,
        DET.ZONA,
        DET.CLIENTE_NIT,
        DET.CLIENTE_RAZON_SOCIAL,
        DET.NUMERO_FACTURA,
        DET.FECHA_VENTA,
        DET.VENDEDOR,
        DET.SUCURSAL,
        DET.REFERENCIA,
        --DET.CANTIDAD,
        DET.DESC_ITEM,
        DET.MARCA,
        DET.EXCLUIR,
        DET.VALOR_UNITARIO,
        DET.MES,
        DET.CATEGORIA_REFERENCIA,
        DET.LINEA_REFERENCIA,
        DET.SUBLINEA_COMERCIAL,
        DET.EQUIVALENCIA_GALONES,
        DET.DOCUMENTO_ORACLE,
        DET.TIPO_TRANS,
        DET.CLIENTE_SITE,
        DET.ORDEN_PEDIDO,
        DET.SEGMENTO1,
        DET.SEGMENTO2,
        DET.SEGMENTO3,
        DET.SEGMENTO4,
        DET.SEGMENTO5,
        DET.SEGMENTO6,
        DET.SEGMENTO7,
        DET.SEGMENTO8,
        DET.SEGMENTO9,
        DET.SEGMENTO10
)
select
    COALESCE( TERR.territorio, TERR2.territorio) TERRITORIO,
    CONSO.SUCURSAL,
    CONSO.ZONA,
    CONSO.VENDEDOR,
    CONSO.LINEA,
    CONSO.SUB_CATEGORIA,
    CONSO.CLIENTE_NIT,
    CONSO.CLIENTE_RAZON_SOCIAL,
    REPLACE(CONSO.NUMERO_FACTURA,'-','')NUMERO_FACTURA,
    CONSO.FECHA_VENTA,
    CONSO.REFERENCIA,
    CONSO.DESC_ITEM,
    CASE WHEN CONSO.DESC_ITEM NOT LIKE '%QP_%' THEN CASE WHEN CONSO.VALOR_UNITARIO <> 0 THEN((CONSO.CANTIDAD*CONSO.VALOR_UNITARIO)/abs(CONSO.VALOR_UNITARIO))ELSE CONSO.CANTIDAD END ELSE 0 END CANTIDAD,
    CASE WHEN CONSO.DESC_ITEM NOT LIKE '%QP_%' THEN ABS(CONSO.VALOR_UNITARIO) ELSE 0 END VALOR_UNITARIO,
    CONSO.TOTAL,
    CONSO.CATEGORIA_REFERENCIA,
    CONSO.LINEA_REFERENCIA,
    CONSO.SUBLINEA_COMERCIAL,
    COALESCE(CASE WHEN CONSO.DESC_ITEM NOT LIKE '%QP_%' AND CONSO.VALOR_UNITARIO <> 0 AND CONSO.CANTIDAD <> 0 THEN  
        (CONSO.EQUIVALENCIA_GALONES*((CONSO.CANTIDAD*((CONSO.CANTIDAD*CONSO.VALOR_UNITARIO)/
        abs(CONSO.VALOR_UNITARIO)))/
        abs((CONSO.CANTIDAD*((CONSO.CANTIDAD*CONSO.VALOR_UNITARIO)/
        abs(CONSO.VALOR_UNITARIO)))))) ELSE 0 END,0) EQUIVALENCIA_GALONES,
    EXTRACT(MONTH FROM CONSO.FECHA_VENTA) AS MES,
    EXTRACT(YEAR FROM CONSO.FECHA_VENTA) AS ANIO,
    EXTRACT(DAY FROM CONSO.FECHA_VENTA) AS DIA,
    CONSO.MARCA,
    CONSO.EXCLUIR,
    CONSO.DOCUMENTO_ORACLE,
    CONSO.TIPO_TRANS,
    CONSO.CLIENTE_SITE,
    CONSO.ORDEN_PEDIDO,
    CONSO.SEGMENTO1,
    CONSO.SEGMENTO2,
    CONSO.SEGMENTO3,
    CONSO.SEGMENTO4,
    CONSO.SEGMENTO5,
    CONSO.SEGMENTO6,
    CONSO.SEGMENTO7,
    CONSO.SEGMENTO8,
    CONSO.SEGMENTO9,
    CONSO.SEGMENTO10
FROM
    (
        SELECT
            INDI.LINEA,
            INDI.SUB_CATEGORIA,
            INDI.ZONA,
            INDI.CLIENTE_NIT,
            INDI.CLIENTE_RAZON_SOCIAL,
            INDI.NUMERO_FACTURA,
            INDI.FECHA_VENTA,
            INDI.VENDEDOR,
            INDI.SUCURSAL,
            INDI.REFERENCIA,
            INDI.DESC_ITEM,
            SUM(INDI.CANTIDAD) CANTIDAD,
            INDI.VALOR_UNITARIO,
            INDI.MES,
            INDI.MARCA,
            INDI.EXCLUIR,
            ROUND(
                SUM(
                    VALOR_TOTAL_LL_LIV + VALOR_TOTAL_LL_PES + VALOR_TOTAL_CHIN + VALOR_TOTAL_LL_LIV_CHY + VALOR_TOTAL_LL_PES_CHY + VALOR_LL_MOTO + VALOR_TOTAL_BAT_LIV + VALOR_TOTAL_BAT_PES + VALOR_TOTAL_BAT_MOTO + VALOR_TOTAL_LUBRIC + VALOR_TOTAL_BUJIA + VALOR_TOTAL_FILTRO + VALOR_TOTAL_LIQ_FREN + VALOR_FRENO + VALOR_TOTAL_REPUESTOS_OTROS + VALOR_TOTAL_EQUIPOS + VALOR_TOTAL_SRE + VALOR_TOTAL_VRLA + VALOR_TOTAL_MISCELANEOS
                )
            ) AS TOTAL,
            INDI.CATEGORIA_REFERENCIA,
            INDI.LINEA_REFERENCIA,
            INDI.SUBLINEA_COMERCIAL,
            (NVL(INDI.EQUIVALENCIA_GALONES,0)* SUM(INDI.CANTIDAD)) AS EQUIVALENCIA_GALONES,
            INDI.DOCUMENTO_ORACLE,
            INDI.TIPO_TRANS,
            INDI.CLIENTE_SITE,
            INDI.ORDEN_PEDIDO,
            INDI.SEGMENTO1,
            INDI.SEGMENTO2,
            INDI.SEGMENTO3,
            INDI.SEGMENTO4,
            INDI.SEGMENTO5,
            INDI.SEGMENTO6,
            INDI.SEGMENTO7,
            INDI.SEGMENTO8,
            INDI.SEGMENTO9,
            INDI.SEGMENTO10
        FROM
            RESULTADO INDI
        GROUP BY
            INDI.LINEA,
            INDI.SUB_CATEGORIA,
            INDI.ZONA,
            INDI.CLIENTE_NIT,
            INDI.CLIENTE_RAZON_SOCIAL,
            INDI.NUMERO_FACTURA,
            INDI.FECHA_VENTA,
            INDI.VENDEDOR,
            INDI.SUCURSAL,
            INDI.REFERENCIA,
            INDI.DESC_ITEM,
            INDI.VALOR_UNITARIO,
            INDI.MES,
            INDI.MARCA,
            INDI.EXCLUIR,
            INDI.CATEGORIA_REFERENCIA,
            INDI.LINEA_REFERENCIA,
            INDI.SUBLINEA_COMERCIAL,
            INDI.EQUIVALENCIA_GALONES,
            INDI.DOCUMENTO_ORACLE,
            INDI.TIPO_TRANS,
            INDI.CLIENTE_SITE,
            INDI.ORDEN_PEDIDO,
            INDI.SEGMENTO1,
            INDI.SEGMENTO2,
            INDI.SEGMENTO3,
            INDI.SEGMENTO4,
            INDI.SEGMENTO5,
            INDI.SEGMENTO6,
            INDI.SEGMENTO7,
            INDI.SEGMENTO8,
            INDI.SEGMENTO9,
            INDI.SEGMENTO10
        UNION
        SELECT
            'OTROS' LINEA,
            'OTROS' SUB_CATEGORIA,
            OTNO.ZONA,
            OTNO.CLIENTE_NIT,
             OTNO.CLIENTE_RAZON_SOCIAL,
            OTNO.NUMERO_FACTURA,
            OTNO.FECHA_VENTA,
                        OTNO.CODIGO_VENDEDOR AS VENDEDOR,
            SUBSTR(OTNO.ZONA,1,3) AS SUCURSAL,
            OTNO.REFERENCIA,
            OTNO.DESC_ITEM,
            OTNO.CANTIDAD,
            OTNO.VALOR_UNITARIO,
            OTNO.MES,
            OTNO.MARCA,
            2 AS EXCLUIR,
            SUM(ROUND(OTNO.CANTIDAD * OTNO.VALOR_UNITARIO)) AS "TOTAL",
            OTNO.CATEGORIA_REFERENCIA,
            OTNO.LINEA_REFERENCIA,
            OTNO.SUBLINEA_COMERCIAL,
            NVL(OTNO.EQUIVALENCIA_GALONES,0)* OTNO.CANTIDAD AS EQUIVALENCIA_GALONES,
            OTNO.DOCUMENTO_ORACLE,
            OTNO.TIPO_TRANS,
            OTNO.CLIENTE_SITE,
            OTNO.ORDEN_PEDIDO,
            OTNO.SEGMENTO1,
            OTNO.SEGMENTO2,
            OTNO.SEGMENTO3,
            OTNO.SEGMENTO4,
            OTNO.SEGMENTO5,
            OTNO.SEGMENTO6,
            OTNO.SEGMENTO7,
            OTNO.SEGMENTO8,
            OTNO.SEGMENTO9,
            OTNO.SEGMENTO10
        FROM
            OTROS_NO_ENCONTRADOS OTNO
        GROUP BY
            OTNO.ZONA,
            OTNO.CLIENTE_NIT,
            OTNO.CLIENTE_RAZON_SOCIAL,
            OTNO.NUMERO_FACTURA,
            OTNO.FECHA_VENTA,
            OTNO.CODIGO_VENDEDOR,
            SUBSTR(OTNO.ZONA,1,3),
            OTNO.REFERENCIA,
            OTNO.CANTIDAD,
            OTNO.VALOR_UNITARIO,
            OTNO.DESC_ITEM,
            OTNO.MES,
            OTNO.CATEGORIA_REFERENCIA,
            OTNO.LINEA_REFERENCIA,
            OTNO.SUBLINEA_COMERCIAL,
            NVL(OTNO.EQUIVALENCIA_GALONES,0)* OTNO.CANTIDAD,
            OTNO.MARCA,
            OTNO.DOCUMENTO_ORACLE,
            OTNO.TIPO_TRANS,
            OTNO.CLIENTE_SITE,
            OTNO.ORDEN_PEDIDO,
            OTNO.SEGMENTO1,
            OTNO.SEGMENTO2,
            OTNO.SEGMENTO3,
            OTNO.SEGMENTO4,
            OTNO.SEGMENTO5,
            OTNO.SEGMENTO6,
            OTNO.SEGMENTO7,
            OTNO.SEGMENTO8,
            OTNO.SEGMENTO9,
            OTNO.SEGMENTO10
) CONSO
    LEFT JOIN (
        SELECT
            DISTINCT ZONA,
            MIN(TERRITORIO) TERRITORIO,
            MES, ANIO
      FROM
            SIMACMOBILE.PRESUPUESTO_ERP
        GROUP BY
            ZONA,
            MES, ANIO
        --ORDER BY
        --COD_REGIONAL
    ) TERR ON TERR.ZONA = CONSO.ZONA
        AND TERR.MES = EXTRACT(MONTH FROM CONSO.FECHA_VENTA)
        AND TERR.ANIO = EXTRACT(YEAR FROM CONSO.FECHA_VENTA)
        LEFT JOIN (
        SELECT
            DISTINCT COD_REGIONAL,
            MIN(TERRITORIO) TERRITORIO,
            MES, ANIO
        FROM
            SIMACMOBILE.PRESUPUESTO_ERP
        --WHERE
        --    MES = EXTRACT(MONTH FROM CONSO.FECHA_VENTA)
        --    AND ANIO = EXTRACT(YEAR FROM CONSO.FECHA_VENTA)
        GROUP BY
            COD_REGIONAL,
            MES, ANIO
        --ORDER BY
        --    COD_REGIONAL
    ) TERR2 ON TERR2.COD_REGIONAL = CONSO.SUCURSAL
        AND TERR2.MES = EXTRACT(MONTH FROM CONSO.FECHA_VENTA)
        AND TERR2.ANIO = EXTRACT(YEAR FROM CONSO.FECHA_VENTA) 
    WHERE ((CONSO.LINEA = 'BAPUS')
       OR (CONSO.TOTAL <> 0 AND CONSO.LINEA <> 'BAPUS'));

← Volver al esquema SIMACMOBILE

🏠 Volver al menú principal