Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE PACKAGE BODY BILLING.bajada_clio_dw
- IS
- /**
- * Paquete que genera automaticamente las bajadas de Clio para Datawarehouse
- *@author DC
- *@sgr DA078342
- **/
- dir_path VARCHAR2 (150)
- := '/proyecto_calipso/sidi/crones/dw_facturacion/out';
- p_desdefecha DATE;
- p_hastafecha DATE;
- archivo UTL_FILE.file_type;
- nombre_archivo VARCHAR2 (50);
- /**
- *Procedimiento que genera el archivo de facturacisn cerrada.
- *@author DC
- *@sgr DA078342
- **/
- PROCEDURE facturacion_cerrada
- IS
- v_idcliente dcc.idcliente%TYPE;
- v_clientenombre dcc.clientenombre%TYPE;
- v_regimeniva dcc.regimeniva%TYPE;
- v_cuit dcc.cuit%TYPE;
- v_empresa dcc.empresa%TYPE;
- v_tipo dcc.tipo%TYPE;
- v_clase dcc.clase%TYPE;
- v_sucursal dcc.sucursal%TYPE;
- v_numero dcc.numero%TYPE;
- v_emision VARCHAR2 (7);
- v_vencimiento dcc.vencimiento%TYPE;
- v_neto dcc.neto%TYPE;
- v_idservprod item_dcc.idservprod%TYPE;
- v_idservprodbas item_dcc.idservprodbas%TYPE;
- v_idordenservicio item_dcc.idordenservicio%TYPE;
- v_login VARCHAR2 (100);
- v_codigoitem sub_item_dcc.codigoitem%TYPE;
- v_frecuencia VARCHAR2 (10);
- v_cantidad sub_item_dcc.cantidad%TYPE;
- v_precio sub_item_dcc.precio%TYPE;
- v_iditem sub_item_dcc.iditem%TYPE;
- v_idsubitem sub_item_dcc.idsubitem%TYPE;
- v_baja VARCHAR2 (10);
- CURSOR c1 (fecha_desde DATE, fecha_hasta DATE)
- IS
- SELECT /*+ ALL_ROWS */
- DISTINCT a.idcliente, a.clientenombre, a.regimeniva, a.cuit,
- a.empresa, a.tipo, a.clase, a.sucursal, a.numero,
- TO_CHAR (a.emision, 'yyyy/mm') AS emision,
- a.vencimiento, a.neto neto, b.idservprod,
- b.idservprodbas, b.idordenservicio,
- d.abo_n_abo,
- c.codigoitem, 'O' AS frecuencia,
- c.cantidad cantidad, c.precio precio, c.iditem,
- c.idsubitem, ' ' AS baja
- FROM dcc a,
- item_dcc b,
- sub_item_dcc c,
- stscabo@sidi.prod d
- WHERE a.iddocctascob = b.iddocctascob
- AND b.iditem = c.iditem
- AND b.idordenservicio = d.abo_n_ose(+)
- AND cuit IS NOT NULL
- AND cuit <> 0
- AND estado <> 'ANULADO'
- AND emision BETWEEN fecha_desde AND fecha_hasta
- AND c.codigoitem NOT IN ('CUOTAS', 'RECHAZOV')
- AND d.abo_f_baja > sysdate
- MINUS
- SELECT /*+ ALL_ROWS */
- DISTINCT a.idcliente, a.clientenombre, a.regimeniva, a.cuit,
- a.empresa, a.tipo, a.clase, a.sucursal, a.numero,
- TO_CHAR (a.emision, 'yyyy/mm') AS emision,
- a.vencimiento, a.neto neto, b.idservprod,
- b.idservprodbas, b.idordenservicio,
- d.abo_n_abo AS login,
- c.codigoitem, 'O' AS frecuencia, c.cantidad cantidad,
- c.precio precio, c.iditem, c.idsubitem, ' ' AS baja
- FROM dcc a,
- item_dcc b,
- sub_item_dcc c,
- stscabo@sidi.prod d,
- stpsifs@sidi.prod e
- WHERE a.iddocctascob = b.iddocctascob
- AND b.iditem = c.iditem
- AND b.idordenservicio = d.abo_n_ose(+)
- AND b.idservprodbas = e.ifs_c_spb
- AND c.codigoitem = e.ifs_c_tip_e
- AND cuit IS NOT NULL
- AND cuit <> 0
- AND estado <> 'ANULADO'
- AND emision BETWEEN fecha_desde AND fecha_hasta
- AND c.codigoitem NOT IN ('CUOTAS', 'RECHAZOV')
- AND d.abo_f_baja > sysdate
- UNION ALL
- SELECT /*+ ALL_ROWS */
- DISTINCT a.idcliente,
- a.clientenombre,
- a.regimeniva,
- a.cuit,
- a.empresa,
- a.tipo,
- a.clase,
- a.sucursal,
- a.numero,
- TO_CHAR (a.emision, 'yyyy/mm') AS emision,
- a.vencimiento,
- a.neto neto,
- b.idservprod,
- b.idservprodbas,
- b.idordenservicio,
- d.abo_n_abo AS login,
- c.codigoitem,
- e.ifs_c_fre_e AS frecuencia,
- c.cantidad cantidad,
- c.precio precio,
- c.iditem,
- c.idsubitem,
- TO_CHAR (e.ifs_f_baja, 'dd/mm/yyyy') AS baja
- FROM dcc a,
- item_dcc b,
- sub_item_dcc c,
- stscabo@sidi.prod d,
- stpsifs@sidi.prod e
- WHERE a.iddocctascob = b.iddocctascob
- AND b.iditem = c.iditem
- AND b.idordenservicio = d.abo_n_ose(+)
- AND b.idservprodbas = e.ifs_c_spb
- AND c.codigoitem = e.ifs_c_tip_e
- AND cuit IS NOT NULL
- AND cuit <> 0
- AND estado <> 'ANULADO'
- AND emision BETWEEN fecha_desde AND fecha_hasta
- AND c.codigoitem NOT IN ('CUOTAS', 'RECHAZOV')
- AND d.abo_f_baja > sysdate;
- BEGIN
- SELECT LAST_DAY (TRUNC (ADD_MONTHS (SYSDATE, -2))) + 1,--fecha de inicio
- LAST_DAY (TRUNC (ADD_MONTHS (SYSDATE, -1))) --fecha de fin
- INTO p_desdefecha,
- p_hastafecha
- FROM DUAL;
- nombre_archivo :=
- 'facturacion_cerrada_' || TO_CHAR (SYSDATE, 'yyyymm')
- || '.txt';
- archivo := UTL_FILE.fopen (dir_path, nombre_archivo, 'w');
- OPEN c1 (p_desdefecha, p_hastafecha);
- FETCH c1
- INTO v_idcliente, v_clientenombre, v_regimeniva, v_cuit, v_empresa,
- v_tipo, v_clase, v_sucursal, v_numero, v_emision, v_vencimiento,
- v_neto, v_idservprod, v_idservprodbas, v_idordenservicio, v_login,
- v_codigoitem, v_frecuencia, v_cantidad, v_precio,
- v_iditem,
- v_idsubitem, v_baja;
- LOOP
- EXIT WHEN c1%NOTFOUND;
- BEGIN
- UTL_FILE.put_line (archivo,
- v_idcliente
- || CHR (09)
- || v_clientenombre
- || CHR (09)
- || v_regimeniva
- || CHR (09)
- || v_cuit
- || CHR (09)
- || v_empresa
- || CHR (09)
- || v_tipo
- || CHR (09)
- || v_clase
- || CHR (09)
- || v_sucursal
- || CHR (09)
- || v_numero
- || CHR (09)
- || v_emision
- || CHR (09)
- || v_vencimiento
- || CHR (09)
- || v_neto
- || CHR (09)
- || v_idservprod
- || CHR (09)
- || v_idservprodbas
- || CHR (09)
- || v_idordenservicio
- || CHR (09)
- || v_login
- || CHR (09)
- || v_codigoitem
- || CHR (09)
- || v_frecuencia
- || CHR (09)
- || v_cantidad
- || CHR (09)
- || v_precio
- || CHR (09)
- ||
- --v_iditem|| chr(09) ||
- --v_IDSUBITEM|| chr(09) ||
- v_baja
- );
- END;
- FETCH c1
- INTO v_idcliente, v_clientenombre, v_regimeniva, v_cuit, v_empresa,
- v_tipo, v_clase, v_sucursal, v_numero, v_emision,
- v_vencimiento, v_neto, v_idservprod, v_idservprodbas,
- v_idordenservicio, v_login,
- v_codigoitem, v_frecuencia,
- v_cantidad, v_precio,
- v_iditem, v_idsubitem, v_baja;
- END LOOP;
- CLOSE c1;
- UTL_FILE.fclose (archivo);
- END;
- /**
- * Procedimiento que genera el archivo de detalle de datos
- *@author DC
- *@sgr DA078342
- *
- * @param
- * @param
- * @param
- *
- **/
- PROCEDURE detalle_de_datos
- IS
- vc_ser stpsser.ser_c_ser@sidi.prod%TYPE;
- vd_ser stpsser.ser_d_ser@sidi.prod%TYPE;
- v_spb stpsspb.spb_c_spb@sidi.prod%TYPE;
- v_fenvio VARCHAR2 (6);
- CURSOR c1
- IS
- SELECT /*+ ALL_ROWS */
- ser_c_ser, ser_d_ser, spb_c_spb,
- TO_CHAR (SYSDATE - 20, 'yyyymm')
- FROM stpsser@sidi.prod, stpsspb@sidi.prod
- WHERE ser_c_ser = spb_c_ser
- ORDER BY ser_c_ser, spb_c_spb;
- BEGIN
- nombre_archivo :=
- 'detalle_de_datos_' || TO_CHAR (SYSDATE, 'yyyymm')
- || '.txt';
- archivo := UTL_FILE.fopen (dir_path, nombre_archivo, 'w');
- OPEN c1;
- FETCH c1
- INTO vc_ser, vd_ser, v_spb, v_fenvio;
- LOOP
- EXIT WHEN c1%NOTFOUND;
- BEGIN
- UTL_FILE.put_line (archivo,
- vc_ser
- || CHR (09)
- || vd_ser
- || CHR (09)
- || v_spb
- || CHR (09)
- || v_fenvio
- );
- END;
- FETCH c1
- INTO vc_ser, vd_ser, v_spb, v_fenvio;
- END LOOP;
- CLOSE c1;
- UTL_FILE.fclose (archivo);
- END;
- END; --Package
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement