Fact table del Montesco
Marcos GuerraDocumentos de Investigación15 de Septiembre de 2016
27.743 Palabras (111 Páginas)280 Visitas
create or replace PACKAGE BODY WHDM_K_VTA_FACT AS
PROCEDURE WHDM_P_FAC_VENTAS(Pd_fecha DATE,
Pv_datamart VARCHAR2,
Pv_error OUT VARCHAR2,
Pv_modo VARCHAR2 ) IS
----varibles del log
ld_tiempo_inicio DATE;
ld_fecha_inicio DATE;
ld_fecha DATE;
ld_fecha_carga DATE;
lv_proceso VARCHAR2(50);
lv_modo VARCHAR2(15);
Lv_error VARCHAR2(2000);
----VARIABLES DE CONSULTA
LN_SECUENCIAL NUMBER;
LV_COD_FACTURA VARCHAR2(10);
LV_COD_ORDEN VARCHAR2(10);
LN_key_VENDEDOR NUMBER;
LN_KEY_ZONAS_VEND NUMBER;
LN_KEY_DIVISION_VEND NUMBER;
LN_key_CLIENTE NUMBER;
LV_DIAS_PLAZO VARCHAR2(100);
LN_key_DIVISION NUMBER;
LN_key_UNIDAD_NEG NUMBER;
LN_key_ZONAS NUMBER;
LN_KEY_FECHA_F NUMBER;
LN_KEY_FECHA NUMBER;
LV_NOTA VARCHAR2(1024);
LV_FACT_PREIMPRESA VARCHAR2(17);
LV_CREADOPOR VARCHAR2(15);
LN_KEY_PRODUCTO NUMBER;
LN_KEY_BODEGA NUMBER;
LN_CANTIDAD_ORDENADA NUMBER;
LN_CANTIDAD_FACTURADA NUMBER;
LN_CANTIDAD_DEVUELTA NUMBER;
LN_PRECIO NUMBER;
LN_COSTO_UNI NUMBER;
LN_COSTO NUMBER;
LN_SUBTOTAL NUMBER;
LN_DESCUENTO NUMBER;
LN_TASAIMPUESTO NUMBER;
LN_IMPUESTO NUMBER;
LN_TASAFINANCIERO NUMBER;
LN_FINANCIERO NUMBER;
LN_TOTAL NUMBER;
LN_KEY_SUCU_FACT NUMBER;
LN_KEY_SUCU_ORDE NUMBER;
LN_EGRESADO NUMBER;
LN_DESCUENTOPROMO NUMBER;
LN_TASAPROMOCION NUMBER;
LV_ISPROMOCION VARCHAR2(1);
LN_TASADESCUENTO NUMBER;
LN_KEY_EST_APR_ORD NUMBER;
LN_KEY_EST_APR_DESC NUMBER;
LN_KEY_EST_APR_CUPO NUMBER;
LD_FECHA_APR_ORDEN DATE;
LD_FECHA_APR_DSCTO DATE;
LD_FECHA_APR_CUPO DATE;
LN_KEY_DOCUMENTO NUMBER;
LV_MOTIVO_ANULACION VARCHAR2(1024);
LV_ANULADOPOR VARCHAR2(15);
LN_KEY_ESTADO NUMBER;
LN_KEY_COMPANIA NUMBER;
CURSOR C_VENTAS (CD_FECHA_CARGA DATE ) IS
--== EMPIEZA QUERY
---- ordenes con factura
SELECT
fa.id COD_FACTURA,FA.OrdenID COD_ORDEN, TRIM(E.CODIGO) COD_VENDEDOR,EZ.CODIGO COD_ZONA_VEN,die.CODIGO COD_DIV_VEN,
CASE WHEN TRIM(FA.RUC)=TRIM('NN') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC)=TRIM('N/N') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC)=TRIM('fabritex s.a') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('ESA 44031524') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('1311181604') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('0909135') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('NO TIENE') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('no tiene') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('ANHUI RUIFEN') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('A46715413') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('0') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('9999999999999') THEN FA.CLIENTEID ELSE
CASE WHEN TRIM(FA.RUC) = TRIM('9999999999') THEN FA.CLIENTEID ELSE
CASE WHEN NVL(TRIM(FA.RUC),'0') = '0' THEN FA.CLIENTEID ELSE FA.RUC
END END END END
END END END END
END END END END END
END COD_CLIENTE,
trim(PA.VALOR) DIAS_PLAZO, di.Codigo COD_DIVISION,
CASE WHEN UPPER(cli.CODIGO) LIKE'F%' THEN '01' ELSE -- FERTILIZANTES
CASE WHEN UPPER(cli.CODIGO) LIKE'BAN%' THEN '02' ELSE --BANANO
CASE WHEN UPPER(cli.CODIGO) LIKE'KITF%' OR UPPER(cli.CODIGO)LIKE'CBF%' THEN '03' ELSE -- MAGAP - FERTILANTES
CASE WHEN UPPER(cli.CODIGO) LIKE 'KIT%' OR UPPER(cli.CODIGO) LIKE 'CB%' THEN '04' ELSE -- MAGAP - AGROQUIMICOS
'05' -- AGROQUIMICOS
END END END END COD_UNIDAD_NEG, sz.codigo COD_ZONAS
,fa.Fecha fecha,o.Fecha FECHA_ORDEN,fa.Nota, fa.Fact_Preimpresa, fa.CreadoPor,TRIM(P.CODIGO) COD_PRODUCTO,
TRIM(BO.CODIGO) COD_BODEGA,df.Cantidad cantidad_ordenada
,df.Cantidad cantidad_facturada,0 CANTIDAD_DEVUELTA
,df.Precio,df.Costo COSTO_UNI,(df.Costo*df.Cantidad) Costo,df.Subtotal,df.Descuento,df.TasaImpuesto,df.Impuesto,df.TasaFinanciero,df.Financiero
,df.Total,df.SucursalID COD_SUCU_FACT,DO.SUCURSALID COD_SUCU_ORDE, df.Egresado,df.DescuentoPromo,df.TasaPromocion,DF.Ispromocion, DF.TASADESCUENTO
, case when (sysdate - VE.fecha) >7 and VE.estado ='0' then '2' else VE.estado end COD_APR_ORD
,VE.APROBDSCTO COD_APR_DESC,VE.APROBCUPO COD_APR_CUPO,NULL FECHA_APR_ORDEN,NULL fecha_APR_DSCTO, NULL FECHA_APR_CUPO
,fa.Anulado COD_DOCUMENTO,UPPER(fa.AnuladoNota) motivo_anulacion ,fa.AnuladoPor, '01' COD_estado, '093'COD_COMPANIA
...