Diccionario de Datos

Logo

Diccionario de datos de los modelos de COÉXITO

🏠 Menú principal ← Volver a vistas materializadas

SIMACMOBILE.VM_VENTAS_AUXILIARES_COMISION_USEM

Base de datos origen: ORCLSMM

Tipo de objeto: MATERIALIZED VIEW

SQL


  CREATE MATERIALIZED VIEW "SIMACMOBILE"."VM_VENTAS_AUXILIARES_COMISION_USEM" ("ID_ZONA", "CODIGO_ZONA", "ID_SUCURSAL", "CODIGO_SUCURSAL", "NOMBRE_SUCURSAL", "ID_VERP", "VENDEDOR", "PRIMER_NOMBRE", "APELLIDOS", "IDENTIFICACION", "FECHA_VIGENCIA_VENDEDOR", "ID_VENTA", "FECHA_VENTA", "ANIO", "MES", "DIA", "CARGO", "COMISIONADOR", "NO_COMISIONADOR", "VALOR_BONO", "CODIGO_CONCEPTO", "LINEA_COMISION", "TIPO", "COMISION", "TOTAL_CANTIDAD", "VALOR_VENTA", "VALOR_COMISIONADO")
  SEGMENT CREATION IMMEDIATE
  ORGANIZATION HEAP PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  BUILD IMMEDIATE
  USING INDEX 
  REFRESH COMPLETE ON DEMAND
  USING DEFAULT LOCAL ROLLBACK SEGMENT
  USING ENFORCED CONSTRAINTS DISABLE ON QUERY COMPUTATION DISABLE QUERY REWRITE
  AS WITH
sucursales_zonas AS (
	SELECT
	szue.ID_ZOUSERP AS ID_ZONA,
	zue.CODIGO AS CODIGO_ZONA,
	zue.NOMBRE AS NOMBRE_ZONA,
	szue.ID_SUERP AS ID_SUCURSAL,
	se.CODIGO AS CODIGO_SUCURSAL,
	se.NOMBRE AS NOMBRE_SUCURSAL
	FROM SIMACMOBILE.SUCURSAL_ZONA_USEM_ERP szue
	JOIN SIMACMOBILE.SUCURSAL_ERP se ON se.ID_SUERP = szue.ID_SUERP
	JOIN SIMACMOBILE.ZONA_USEM_ERP zue ON zue.ID_ZOUSERP = szue.ID_ZOUSERP
	WHERE szue.ESTADO_REGISTRO = 'A'
	AND se.ESTADO_REGISTRO = 'A'
	AND se.CODIGO_ORGANIZACION LIKE 'E!_%' ESCAPE '!'
	AND zue.ESTADO_REGISTRO = 'A'
),
referencia_excluida AS (
	SELECT rei.ID_REEXIN, re.ID_REERP, re.CODIGO FROM SIMACMOBILE.REFERENCIA_ERP re
	JOIN SIMACMOBILE.REFERENCIA_EXCLUIDA_IND rei ON rei.ID_REERP = re.ID_REERP
	WHERE rei.USEM = 1
	AND rei.ESTADO_REGISTRO = 'A'
),
vista_venta_historico AS (
	SELECT
	sucursales_zonas.ID_ZONA,
	sucursales_zonas.CODIGO_ZONA,
	sucursales_zonas.NOMBRE_ZONA,
	sucursales_zonas.ID_SUCURSAL,
	sucursales_zonas.CODIGO_SUCURSAL,
	sucursales_zonas.NOMBRE_SUCURSAL,
	vvhe.ID_VEHIERP AS ID_VENTA,
	vvhe.VENDEDOR,
	vvhe.CANTIDAD,
	vvhe.VALOR_UNITARIO,
	vvhe.CATEGORIA_REFERENCIA,
	vvhe.MARCA,
	vvhe.FECHA_VENTA,
	EXTRACT(YEAR FROM vvhe.FECHA_VENTA) ANIO,
    EXTRACT(MONTH FROM vvhe.FECHA_VENTA) MES,
    EXTRACT(DAY FROM vvhe.FECHA_VENTA) DIA
	FROM SIMACMOBILE.VISTA_VENTA_HISTORICO_ERP vvhe
	JOIN sucursales_zonas ON sucursales_zonas.CODIGO_SUCURSAL = vvhe.SUCURSAL
	LEFT JOIN referencia_excluida rex ON rex.CODIGO = vvhe.CODIGO
    JOIN SIMACMOBILE.REFERENCIA_ERP re ON re.CODIGO = vvhe.CODIGO
	WHERE rex.ID_REEXIN IS NULL
    AND vvhe.CLIENTE_NIT <> '890300225'
    AND re.SUBLINEA_COMERCIAL  <> 'MANO_DE_OBRA_TERCEROS_CVI' 
	AND vvhe.FECHA_VENTA >= ADD_MONTHS(SYSDATE, -12)
),
venta_historico AS (
	SELECT
	sucursales_zonas.ID_ZONA,
	sucursales_zonas.CODIGO_ZONA,
	sucursales_zonas.NOMBRE_ZONA,
	sucursales_zonas.ID_SUCURSAL,
	sucursales_zonas.CODIGO_SUCURSAL,
	sucursales_zonas.NOMBRE_SUCURSAL,
	vhe.ID_VEHIERP AS ID_VENTA,
	vhe.CODIGO_VENDEDOR,
	vhe.DESC_ITEM,
	vhe.ID_REERP,
	vhe.CANTIDAD_ITEM,
	vhe.MONTO_UNITARIO_ITEM,
	vhe.FECHA_VENTA,
	EXTRACT(YEAR FROM vhe.FECHA_VENTA) ANIO,
    EXTRACT(MONTH FROM vhe.FECHA_VENTA) MES,
    EXTRACT(DAY FROM vhe.FECHA_VENTA) DIA
	FROM SIMACMOBILE.VENTA_HISTORICO_ERP vhe
	JOIN sucursales_zonas ON sucursales_zonas.ID_SUCURSAL = vhe.ID_SUERP
	LEFT JOIN referencia_excluida rex ON rex.ID_REERP = vhe.ID_REERP
	WHERE rex.ID_REEXIN IS NULL
    AND vhe.CLIENTE_NIT <> '890300225'
	AND vhe.FECHA_VENTA >= ADD_MONTHS(SYSDATE, -12)
),
homologacion AS (
	SELECT CODIGO_CATEGORIA, MARCA, LINEA_COMISION
	FROM SIMACMOBILE.HOMOLOGACION_CATEGORIA_REFERENCIA_USEM_ERP hcrue
	JOIN SIMACMOBILE.CATEGORIAXREFERENCIA_ERP ce ON ce.ID_CAREERP = hcrue.ID_CAREERP
),
ventas_individuales AS (
	SELECT
	vvhe.ID_ZONA,
	vvhe.CODIGO_ZONA,
	vvhe.ID_SUCURSAL,
	vvhe.CODIGO_SUCURSAL,
	vvhe.NOMBRE_SUCURSAL,
	ve.ID_VERP,
	ve.CODIGO AS VENDEDOR,
	ve.PRIMER_NOMBRE,
	ve.APELLIDOS,
	ve.IDENTIFICACION,
	gvue.VIGENTE AS FECHA_VIGENCIA_VENDEDOR,
	vvhe.ID_VENTA,
	vvhe.FECHA_VENTA,
    vvhe.ANIO,
    vvhe.MES,
    vvhe.DIA,
	teue.CODIGO AS CARGO,
	COALESCE(cvcue.INDICADOR_COMISION, 0) AS COMISIONADOR,
	CASE
		WHEN gvue.ID_GAVEUSERP IS NULL THEN 0
		ELSE 1
	END AS NO_COMISIONADOR,
	COALESCE(gvue.VALOR_BONO, 0) AS VALOR_BONO,
	ccue.CODIGO AS CODIGO_CONCEPTO,
	homologacion.LINEA_COMISION,
	'I' AS TIPO,
	CASE
		WHEN COALESCE(cvcue.INDICADOR_COMISION, 0) = 1 THEN
			CASE
				WHEN ctcue.ID_TACOUSERP = cvcue.ID_TACOUSERP THEN ccue.PONDERACION_BASE
				ELSE 0
			END
		ELSE 0
	END AS COMISION,
    vvhe.CANTIDAD  AS TOTAL_CANTIDAD,
	vvhe.CANTIDAD * vvhe.VALOR_UNITARIO AS VALOR_VENTA,
	vvhe.CANTIDAD * vvhe.VALOR_UNITARIO * CASE
        WHEN COALESCE(cvcue.INDICADOR_COMISION, 0) = 1 THEN ccue.PONDERACION_BASE
        ELSE 0
    END * 0.01 AS VALOR_COMISIONADO
	FROM SIMACMOBILE.VENDEDOR_ERP ve
	LEFT JOIN SIMACMOBILE.GARANTIZADO_VENDEDOR_USEM_ERP gvue ON gvue.ID_VERP = ve.ID_VERP AND gvue.ESTADO_REGISTRO = 'A'
	LEFT JOIN SIMACMOBILE.CLASIFICACION_VENDEDOR_COMISION_USEM_ERP cvcue ON cvcue.ID_VERP = ve.ID_VERP AND cvcue.ESTADO_REGISTRO = 'A'
	JOIN SIMACMOBILE.VENDEDOR_TIPO_EMPLEADO_USEM_ERP vteue ON vteue.ID_VERP = ve.ID_VERP
	JOIN SIMACMOBILE.TIPO_EMPLEADO_USEM_ERP teue ON teue.ID_TIEMUSERP = vteue.ID_TIEMUSERP
	JOIN vista_venta_historico vvhe ON substr(vvhe.VENDEDOR,1,7) = substr(ve.CODIGO,1,7)
	JOIN homologacion ON homologacion.CODIGO_CATEGORIA = vvhe.CATEGORIA_REFERENCIA AND homologacion.MARCA = vvhe.MARCA
	LEFT JOIN SIMACMOBILE.CONCEPTO_COMISION_USEM_ERP ccue ON ccue.DESCRIPCION = homologacion.LINEA_COMISION
	LEFT JOIN SIMACMOBILE.CONCEPTO_TABLA_COMISION_USEM_ERP ctcue ON ctcue.ID_COCOUSERP = ccue.ID_COCOUSERP
	JOIN SIMACMOBILE.TIPO_CONCEPTO_COMISION_USEM_ERP tccue ON tccue.ID_TICOCOERP = ccue.TIPO_CONCEPTO
	WHERE ve.ESTADO_REGISTRO = 'A'
	AND ve.CODIGO LIKE '%EN%'
    AND tccue.CODIGO = 'C'
),
mano_obra AS (
	SELECT
		vhe.ID_ZONA,
		vhe.CODIGO_ZONA,
		vhe.ID_SUCURSAL,
		vhe.CODIGO_SUCURSAL,
		vhe.NOMBRE_SUCURSAL,
		ve.ID_VERP,
		ve.CODIGO AS VENDEDOR,
		ve.PRIMER_NOMBRE,
		ve.APELLIDOS,
		ve.IDENTIFICACION,
		gvue.VIGENTE AS FECHA_VIGENCIA_VENDEDOR,
		vhe.ID_VENTA,
		vhe.FECHA_VENTA,
	    vhe.ANIO,
	    vhe.MES,
    	vhe.DIA,
		teue.CODIGO AS CARGO,
		COALESCE(cvcue.INDICADOR_COMISION, 0) AS COMISIONADOR,
		CASE
			WHEN gvue.ID_GAVEUSERP IS NULL THEN 0
			ELSE 1
		END AS NO_COMISIONADOR,
		COALESCE(gvue.VALOR_BONO, 0) AS VALOR_BONO,
		ccue.CODIGO AS CODIGO_CONCEPTO,
		ccue.DESCRIPCION AS LINEA_COMISION,
		'I' AS TIPO,
		CASE
			WHEN COALESCE(cvcue.INDICADOR_COMISION, 0) = 1 THEN
				CASE
					WHEN ctcue.ID_TACOUSERP = cvcue.ID_TACOUSERP THEN ccue.PONDERACION_BASE
					ELSE 0
				END
			ELSE 0
		END AS COMISION,
		vhe.CANTIDAD_ITEM AS TOTAL_CANTIDAD,
		vhe.CANTIDAD_ITEM * vhe.MONTO_UNITARIO_ITEM AS VALOR_VENTA,
		vhe.CANTIDAD_ITEM * vhe.MONTO_UNITARIO_ITEM * CASE
			WHEN COALESCE(cvcue.INDICADOR_COMISION, 0) = 1 THEN
				CASE
					WHEN ctcue.ID_TACOUSERP = cvcue.ID_TACOUSERP THEN ccue.PONDERACION_BASE
					ELSE 0
				END
			ELSE 0
		END * 0.01 AS VALOR_COMISIONADO
	FROM SIMACMOBILE.VENDEDOR_ERP ve
	LEFT JOIN SIMACMOBILE.GARANTIZADO_VENDEDOR_USEM_ERP gvue ON gvue.ID_VERP = ve.ID_VERP AND gvue.ESTADO_REGISTRO = 'A'
	LEFT JOIN SIMACMOBILE.CLASIFICACION_VENDEDOR_COMISION_USEM_ERP cvcue ON cvcue.ID_VERP = ve.ID_VERP AND cvcue.ESTADO_REGISTRO = 'A'
	JOIN SIMACMOBILE.VENDEDOR_TIPO_EMPLEADO_USEM_ERP vteue ON vteue.ID_VERP = ve.ID_VERP
	JOIN SIMACMOBILE.TIPO_EMPLEADO_USEM_ERP teue ON teue.ID_TIEMUSERP = vteue.ID_TIEMUSERP
	JOIN venta_historico vhe ON vhe.CODIGO_VENDEDOR = ve.CODIGO
	JOIN SIMACMOBILE.REFERENCIA_ERP re ON re.ID_REERP = vhe.ID_REERP
	LEFT JOIN SIMACMOBILE.CONCEPTO_COMISION_USEM_ERP ccue ON
		(ccue.DESCRIPCION LIKE 'MANO OBRA DEL 30%' AND LOWER(vhe.DESC_ITEM) NOT LIKE '%descarbonizacion%')
		OR (ccue.DESCRIPCION = 'MANO OBRA DEL 15%' AND LOWER(vhe.DESC_ITEM) LIKE '%descarbonizacion%')
	LEFT JOIN SIMACMOBILE.CONCEPTO_TABLA_COMISION_USEM_ERP ctcue ON ctcue.ID_COCOUSERP = ccue.ID_COCOUSERP
    JOIN SIMACMOBILE.TIPO_CONCEPTO_COMISION_USEM_ERP tccue ON tccue.ID_TICOCOERP = ccue.TIPO_CONCEPTO
	WHERE ve.ESTADO_REGISTRO = 'A'
	AND re.LINEA = 'MANO_DE_OBRA'
	AND ve.CODIGO LIKE '%EN%'
    AND tccue.CODIGO = 'C'
),
ventas_agrupadas AS (
	SELECT
		*
	FROM (
		SELECT * FROM ventas_individuales
        UNION ALL
        SELECT * FROM mano_obra
	) ventas
)
SELECT * FROM ventas_agrupadas;

← Volver al esquema SIMACMOBILE

🏠 Volver al menú principal