Diccionario de Datos

Logo

Diccionario de datos de los modelos de COÉXITO

🏠 Menú principal ← Volver a vistas materializadas

SIMACMOBILE.VISTA_RECAUDOS_LETRA_COMISION_ERP

Base de datos origen: ORCLSMM

Tipo de objeto: MATERIALIZED VIEW

SQL


  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);

← Volver al esquema SIMACMOBILE

🏠 Volver al menú principal