Diccionario de datos de los modelos de COÉXITO
| 🏠 Menú principal | ← Volver a vistas simples |
Base de datos origen: ORCLSMM
Tipo de objeto: VIEW
CREATE OR REPLACE FORCE EDITIONABLE VIEW "SIMACMOBILE"."VW_CONSULTA_ORDENES_CONSOLIDADAS" ("ID_ORDEN", "ORIGEN", "ID_ORDEN_INTERNO", "ORDER_OM", "FECHA_ORDEN", "ID_CLERP", "ID_ESPEERP", "CEDI", "DESCRIPCION_RESPUESTA", "COMMERCE_ID", "COMMERCE_NAME", "CODIGO_ESTADO", "DESCRIPCION_ESTADO", "NUMERO_SOLICITUD") AS
WITH ULTIMA_TRAZABILIDAD AS
(
-- OBTIENE LA ÚLTIMA TRAZABILIDAD GVTA USANDO WINDOW FUNCTION
SELECT 'GVTA' AS TIPO_ORIGEN,
ID_GVTAORD AS ORDEN_ID,
JSON_VALUE(RESPUESTA_JSON, '$.description') AS DESCRIPCION_RESPUESTA,
ROW_NUMBER() OVER(PARTITION BY ID_GVTAORD ORDER BY ID_GVTATRO DESC) AS RN
FROM SIMACMOBILE.GVTA_TRAZABILIDAD_ORDEN_PEDIDO
UNION ALL
-- OBTIENE LA ÚLTIMA TRAZABILIDAD WHCCIAL USANDO WINDOW FUNCTION
SELECT 'WHCCIAL' AS TIPO_ORIGEN,
ID_WHCCIALORD AS ORDEN_ID,
JSON_VALUE(RESPUESTA_JSON, '$.description') AS DESCRIPCION_RESPUESTA,
ROW_NUMBER() OVER(PARTITION BY ID_WHCCIALORD ORDER BY ID_WHCCIALTRORD DESC) AS RN
FROM SIMACMOBILE.WHCCIAL_TRAZABILIDAD_ORDEN_PEDIDO
UNION ALL
-- OBTIENE LA ÚLTIMA TRAZABILIDAD GP USANDO WINDOW FUNCTION
SELECT 'GPED' AS TIPO_ORIGEN,
op.ID_GPORDPE AS ORDEN_ID,
CASE
WHEN DBMS_LOB.INSTR(tzc.RESPONSE_JSON, '{') = 1 THEN
--JSON_VALUE(tzc.RESPONSE_JSON, '$.description')
REPLACE(REPLACE(COALESCE(
JSON_VALUE(tzc.RESPONSE_JSON, '$.message' RETURNING VARCHAR2(4000) NULL ON ERROR),
JSON_VALUE(tzc.RESPONSE_JSON, '$.description' RETURNING VARCHAR2(4000) NULL ON ERROR)
), '<![CDATA[', ''), ']]>', '')
WHEN DBMS_LOB.INSTR(tzc.RESPONSE_JSON, '{') > 1 THEN
--JSON_VALUE(SUBSTR(tzc.RESPONSE_JSON, INSTR(tzc.RESPONSE_JSON, '{')), '$.description')
REPLACE(REPLACE(COALESCE(
JSON_VALUE(SUBSTR(tzc.RESPONSE_JSON, INSTR(tzc.RESPONSE_JSON, '{')), '$.message' RETURNING VARCHAR2(4000) NULL ON ERROR),
JSON_VALUE(SUBSTR(tzc.RESPONSE_JSON, INSTR(tzc.RESPONSE_JSON, '{')), '$.description' RETURNING VARCHAR2(4000) NULL ON ERROR)
), '<![CDATA[', ''), ']]>', '')
ELSE
DBMS_LOB.SUBSTR(tzc.RESPONSE_JSON, 4000, 1)
END AS DESCRIPCION_RESPUESTA,
ROW_NUMBER() OVER(PARTITION BY op.ID_GPORDPE ORDER BY op.ID_GPORDPE DESC) AS RN
FROM SIMACMOBILE.gp_trazabilidad_orden_pedido tzc
JOIN SIMACMOBILE.gp_consolidado_pedido cop ON cop.ID_GPCLPE = tzc.ID_GPCLPE
JOIN SIMACMOBILE.gp_orden_pedido op ON op.ID_GPORDPE = cop.ID_GPORDPE
),
ORDENES_BASE AS
(
-- ÓRDENES GVTA
SELECT GOP.ID_GVTAORD AS ID_ORDEN,
'GVTA' AS ORIGEN,
GOP.ORDEN_ID_INTERNO AS ID_ORDEN_INTERNO,
GOP.ORDER_OM,
GOP.FECHA_ORDEN,
GOP.ID_CLERP,
GOP.ID_ESPEERP,
GOP.CODIGO_SUCURSAL AS CEDI,
GOP.ID_GVTAORD AS ORDEN_TRAZABILIDAD_ID,
NVL(GOP.ORDEN_ID, CONCAT('YOM-' , GOP.ID_GVTAORD)) AS NUMERO_SOLICITUD
FROM SIMACMOBILE.GVTA_ORDEN_PEDIDO GOP
UNION ALL
-- ÓRDENES WHCCIAL
SELECT WOP.ID_WHCCIALORD AS ID_ORDEN,
'WHCCIAL' AS ORIGEN,
WOP.IDENTIFICADOR_ORDEN AS ID_ORDEN_INTERNO,
WOP.ORDER_OM,
WOP.FECHA_PEDIDO AS FECHA_ORDEN,
WOP.ID_CLERP,
WOP.ID_ESPEERP,
WOP.CODIGO_SUCURSAL AS CEDI,
WOP.ID_WHCCIALORD AS ORDEN_TRAZABILIDAD_ID,
CONCAT('WSPC-' , WOP.ID_WHCCIALORD) AS NUMERO_SOLICITUD
FROM SIMACMOBILE.WHCCIAL_ORDEN_PEDIDO WOP
UNION ALL
-- ÓRDENES GPED
SELECT GOP.ID_GPORDPE AS ID_ORDEN,
'GPED' AS ORIGEN,
'GPED-'|| GOP.ID_GPORDPE AS ID_ORDEN_INTERNO,
GOP.NUMERO_OM ORDER_OM,
GOP.FECHA_ORDEN,
GOP.ID_CLERP,
GOP.ID_ESPEERP,
GOP.CODIGO_SUCURSAL_CLIENTE AS CEDI,
GOP.ID_GPORDPE AS ORDEN_TRAZABILIDAD_ID,
CONCAT('GPED-' , GOP.ID_GPORDPE) AS NUMERO_SOLICITUD
FROM SIMACMOBILE.GP_ORDEN_PEDIDO GOP
)
-- QUERY PRINCIPAL OPTIMIZADA
SELECT OB.ID_ORDEN,
OB.ORIGEN,
OB.ID_ORDEN_INTERNO,
OB.ORDER_OM,
OB.FECHA_ORDEN,
OB.ID_CLERP,
OB.ID_ESPEERP,
OB.CEDI,
UT.DESCRIPCION_RESPUESTA,
CE.SITE AS COMMERCE_ID,
CE.PARTY_SITE_NAME AS COMMERCE_NAME,
MEPE.CODIGO AS CODIGO_ESTADO,
MEPE.DESCRIPCION AS DESCRIPCION_ESTADO,
OB.NUMERO_SOLICITUD AS NUMERO_SOLICITUD
FROM ORDENES_BASE OB
LEFT JOIN ULTIMA_TRAZABILIDAD UT
ON UT.ORDEN_ID = OB.ORDEN_TRAZABILIDAD_ID
AND UT.TIPO_ORIGEN = OB.ORIGEN
AND UT.RN = 1
INNER JOIN SIMACMOBILE.MDF_ESTADO_PEDIDO_ERP MEPE
ON MEPE.ID_ESPEERP = OB.ID_ESPEERP
INNER JOIN SIMACMOBILE.CLIENTE_ERP CE
ON CE.ID_CLERP = OB.ID_CLERP;