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_RECAUDOS_LETRA_COMISION_ERP" ("ID", "CODIGO", "PRIMER_NOMBRE", "APELLIDOS", "SUCURSAL", "NUMERO_FACTURA", "FECHA_FACTURA", "FECHA_RECIBO", "VALOR_PAGADO", "DESCUENTO", "EDAD_COBRO", "MONTO_SINIVA", "MONTO_IMPUESTO", "MONTO_TOTAL", "PORCENTAJE_FACTURA_PAGADO", "TASA_IVA", "IVA_RECIBO_PAGO", "MONTO_BASE_COMISION", "FECHA_VENTA", "ESTADO_TRANSACCION", "MONTO_RECIBO", "NUMERO_RECIBO", "CLIENTE", "FECHA_APLICACION_RECIBO")
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 SELECT DISTINCT rple.ID_REPALEERP AS ID,
CASE WHEN INSTR(ve.CODIGO, '_') > 0 THEN REPLACE(ve.CODIGO,'_', '') ELSE ve.CODIGO END as CODIGO,
ve.PRIMER_NOMBRE,
ve.APELLIDOS,
se.CODIGO AS SUCURSAL,
rple.FACTURA_RELACIONADA AS NUMERO_FACTURA,
vherp.FECHA_VENTA AS FECHA_FACTURA,
rple.FECHA_RECIBO,
rple.MONTO AS VALOR_PAGADO,
0 AS DESCUENTO,
CASE WHEN (rple.FECHA_RECIBO - vherp.FECHA_VENTA) < 0 THEN 0 ELSE (rple.FECHA_RECIBO - vherp.FECHA_VENTA) end AS EDAD_COBRO,
vherp.MONTO_INGRESO AS MONTO_SINIVA,
vherp.MONTO_IMPUESTO,
vherp.MONTO_TOTAL,
(rple.MONTO * 100) / CASE WHEN vherp.MONTO_TOTAL = 0 THEN 1 ELSE vherp.MONTO_TOTAL END AS PORCENTAJE_FACTURA_PAGADO, --porcentaje de factura pagado
CEIL((vherp.MONTO_IMPUESTO * 100)/CASE WHEN vherp.MONTO_INGRESO = 0 THEN 1 ELSE vherp.MONTO_INGRESO END) AS TASA_IVA,
CEIL((rple.MONTO * ((vherp.MONTO_IMPUESTO * 100)/CASE WHEN vherp.MONTO_INGRESO = 0 THEN 1 ELSE vherp.MONTO_INGRESO END))/ 100) AS IVA_RECIBO_PAGO,
CEIL(rple.MONTO - ((rple.MONTO * ((vherp.MONTO_IMPUESTO * 100)/CASE WHEN vherp.MONTO_TOTAL = 0 THEN 1 ELSE vherp.MONTO_TOTAL END))/ 100)) AS MONTO_BASE_COMISION,
vherp.FECHA_VENTA,
rple.ESTADO_TRANSACCION,
rple.MONTO AS MONTO_RECIBO,
rple.NUMERO_RECIBO,
COALESCE(ce.PARTY_SITE_NAME, ce.RAZON_SOCIAL, ce.PRIMER_APELLIDO || ' ' || ce.SEGUNDO_APELLIDO || ' ' || ce.PRIMER_NOMBRE || ' ' || ce.SEGUNDO_NOMBRE) AS CLIENTE,
rple.FECHA_ACTIVIDAD AS FECHA_APLICACION_RECIBO
FROM (
--recibos de pago de letras
SELECT DISTINCT recibos.*,
recibos.CREDITO * -1 AS monto,
'RECIBO_LETRA' AS tipo_operacion,
'RCLETRA' || recibos.DOC_APLICADO AS numero_recibo,
recibos.FECHA_ACTIVIDAD AS fecha_recibo
FROM (
SELECT rple1.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple1
WHERE rple1.TIPO_DOCUMENTO = 'Pagos'
) recibos
LEFT JOIN (
SELECT rple2.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple2
WHERE rple2.TIPO_DOCUMENTO ='Letras a cobrar'
) letras
ON recibos.DOC_APLICADO = letras.FACTURA_ORACLE
WHERE letras.FACTURA_ORACLE IS NOT NULL
UNION
--notas de debito
SELECT DISTINCT notas.*,
notas.DEBITO * -1 AS monto,
notas.TIPO_DOCUMENTO AS tipo_operacion,
'ND' || notas.FACTURA_ORACLE AS numero_recibo,
COALESCE(recibos_letra.FECHA_ACTIVIDAD, notas.FECHA_ACTIVIDAD) AS fecha_recibo
FROM (
SELECT rple1.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple1
WHERE rple1.TIPO_DOCUMENTO IN ('Nota de débito')
) notas
LEFT JOIN (
SELECT DISTINCT recibos.*
FROM (
SELECT rple1.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple1
WHERE rple1.TIPO_DOCUMENTO = 'Pagos'
) recibos
LEFT JOIN (
SELECT rple2.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple2
WHERE rple2.TIPO_DOCUMENTO ='Letras a cobrar'
) letras
ON recibos.DOC_APLICADO = letras.FACTURA_ORACLE
WHERE letras.FACTURA_ORACLE IS NOT NULL
) recibos_letra ON notas.DOC_APLICADO = recibos_letra.CASH_RECEIPT_ID
WHERE notas.IDENTIFICADOR NOT IN (
SELECT DISTINCT recibos.IDENTIFICADOR
FROM (
SELECT rple1.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple1
WHERE rple1.TIPO_DOCUMENTO = 'Pagos'
) recibos
LEFT JOIN (
SELECT rple2.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple2
WHERE rple2.TIPO_DOCUMENTO ='Letras a cobrar'
) letras
ON recibos.DOC_APLICADO = letras.FACTURA_ORACLE
WHERE letras.FACTURA_ORACLE IS NOT NULL
)
UNION
--recibo de pago de notas
SELECT DISTINCT recibos.*,
recibos.CREDITO * -1 AS monto,
'RECIBO_NOTA' AS tipo_operacion,
'RCND' || recibos.DOC_APLICADO AS numero_recibo,
recibos.FECHA_ACTIVIDAD AS fecha_recibo
FROM (
SELECT rple1.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple1
WHERE rple1.TIPO_DOCUMENTO = 'Pagos'
) recibos
LEFT JOIN (
SELECT rple2.*
FROM SIMACMOBILE.RECIBO_PAGO_LETRA_ERP rple2
WHERE rple2.TIPO_DOCUMENTO ='Nota de débito'
) notas
ON recibos.DOC_APLICADO = notas.FACTURA_ORACLE
WHERE notas.FACTURA_ORACLE IS NOT NULL
) rple
LEFT JOIN (
SELECT CLIENTE_NIT,
ID_SUERP,
ID_VERP,
CASE WHEN INSTR(CODIGO_VENDEDOR, '_') > 0 THEN REPLACE(CODIGO_VENDEDOR,'_', '') ELSE CODIGO_VENDEDOR END AS CODIGO_VENDEDOR,
NUMERO_FACTURA,
FECHA_VENTA,
SUM(MONTO_INGRESO) AS MONTO_INGRESO, SUM(MONTO_IMPUESTO) AS MONTO_IMPUESTO,
SUM(MONTO_TOTAL) AS MONTO_TOTAL
FROM SIMACMOBILE.VENTA_HISTORICO_ERP
WHERE SUBSTR(desc_item,1,7) <> 'INTERES' AND SUBSTR(TIPO_TRANS,1,2) = 'FV' AND EXISTS (
SELECT vse.ID_SUERP
FROM SIMACMOBILE.VISTA_SUCURSALES_ERP vse
WHERE TIPO_SUCURSAL IN ('Cedi Principal', 'Cedi Secundario')
)
GROUP BY CLIENTE_NIT, ID_VERP, CODIGO_VENDEDOR, ID_SUERP, FECHA_VENTA, NUMERO_FACTURA
) vherp ON rple.FACTURA_RELACIONADA = vherp.NUMERO_FACTURA
LEFT JOIN (
SELECT vendedores.ID_VERP, vendedores.CODIGO, ve.PRIMER_NOMBRE, ve.APELLIDOS
FROM (
SELECT MAX(ID_VERP) AS ID_VERP, CODIGO
FROM (
SELECT ID_VERP, CASE WHEN INSTR(CODIGO, '_') > 0 THEN SUBSTR(CODIGO,1,INSTR(CODIGO, '_') -1 ) ELSE CODIGO END AS CODIGO ,
PRIMER_NOMBRE, APELLIDOS
FROM SIMACMOBILE.VENDEDOR_ERP
)
GROUP BY CODIGO
) vendedores
LEFT JOIN SIMACMOBILE.VENDEDOR_ERP ve ON vendedores.ID_VERP = ve.ID_VERP
) ve ON (vherp.CODIGO_VENDEDOR = ve.CODIGO)
LEFT JOIN SIMACMOBILE.CLIENTE_ERP ce ON (vherp.CLIENTE_NIT = ce.NIT AND rple.CUENTA_CLIENTE = ce.SITE)
LEFT JOIN SIMACMOBILE.SUCURSAL_ERP se ON (vherp.ID_SUERP = se.ID_SUERP)
WHERE vherp.ID_SUERP IN (
SELECT vse.ID_SUERP
FROM SIMACMOBILE.VISTA_SUCURSALES_ERP vse
WHERE TIPO_SUCURSAL IN ('Cedi Principal', 'Cedi Secundario')
) AND
vherp.NUMERO_FACTURA IS NOT NULL AND
rple.FACTURA_RELACIONADA || ce.ID_CLERP NOT IN ( SELECT NUMERO_FACTURA || ID_CLERP
FROM SIMACMOBILE.RECIBO_PAGO_ERP
GROUP BY NUMERO_FACTURA, ID_CLERP);