Diccionario de datos de los modelos de COÉXITO
| 🏠 Menú principal | ← Volver a vistas materializadas |
Base de datos origen: ORCLSMM
Tipo de objeto: MATERIALIZED VIEW
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'));