Advertisement
Guest User

Untitled

a guest
May 9th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.98 KB | None | 0 0
  1. CREATE OR REPLACE PACKAGE BODY BILLING.bajada_clio_dw
  2. IS
  3. /**
  4. * Paquete que genera automaticamente las bajadas de Clio para Datawarehouse
  5. *@author DC
  6. *@sgr DA078342
  7. **/
  8. dir_path VARCHAR2 (150)
  9. := '/proyecto_calipso/sidi/crones/dw_facturacion/out';
  10. p_desdefecha DATE;
  11. p_hastafecha DATE;
  12. archivo UTL_FILE.file_type;
  13. nombre_archivo VARCHAR2 (50);
  14.  
  15. /**
  16. *Procedimiento que genera el archivo de facturacisn cerrada.
  17. *@author DC
  18. *@sgr DA078342
  19. **/
  20. PROCEDURE facturacion_cerrada
  21. IS
  22. v_idcliente dcc.idcliente%TYPE;
  23. v_clientenombre dcc.clientenombre%TYPE;
  24. v_regimeniva dcc.regimeniva%TYPE;
  25. v_cuit dcc.cuit%TYPE;
  26. v_empresa dcc.empresa%TYPE;
  27. v_tipo dcc.tipo%TYPE;
  28. v_clase dcc.clase%TYPE;
  29. v_sucursal dcc.sucursal%TYPE;
  30. v_numero dcc.numero%TYPE;
  31. v_emision VARCHAR2 (7);
  32. v_vencimiento dcc.vencimiento%TYPE;
  33. v_neto dcc.neto%TYPE;
  34. v_idservprod item_dcc.idservprod%TYPE;
  35. v_idservprodbas item_dcc.idservprodbas%TYPE;
  36. v_idordenservicio item_dcc.idordenservicio%TYPE;
  37. v_login VARCHAR2 (100);
  38. v_codigoitem sub_item_dcc.codigoitem%TYPE;
  39. v_frecuencia VARCHAR2 (10);
  40. v_cantidad sub_item_dcc.cantidad%TYPE;
  41. v_precio sub_item_dcc.precio%TYPE;
  42. v_iditem sub_item_dcc.iditem%TYPE;
  43. v_idsubitem sub_item_dcc.idsubitem%TYPE;
  44. v_baja VARCHAR2 (10);
  45. CURSOR c1 (fecha_desde DATE, fecha_hasta DATE)
  46. IS
  47. SELECT /*+ ALL_ROWS */
  48. DISTINCT a.idcliente, a.clientenombre, a.regimeniva, a.cuit,
  49. a.empresa, a.tipo, a.clase, a.sucursal, a.numero,
  50. TO_CHAR (a.emision, 'yyyy/mm') AS emision,
  51. a.vencimiento, a.neto neto, b.idservprod,
  52. b.idservprodbas, b.idordenservicio,
  53. d.abo_n_abo,
  54. c.codigoitem, 'O' AS frecuencia,
  55. c.cantidad cantidad, c.precio precio, c.iditem,
  56. c.idsubitem, ' ' AS baja
  57. FROM dcc a,
  58. item_dcc b,
  59. sub_item_dcc c,
  60. stscabo@sidi.prod d
  61. WHERE a.iddocctascob = b.iddocctascob
  62. AND b.iditem = c.iditem
  63. AND b.idordenservicio = d.abo_n_ose(+)
  64. AND cuit IS NOT NULL
  65. AND cuit <> 0
  66. AND estado <> 'ANULADO'
  67. AND emision BETWEEN fecha_desde AND fecha_hasta
  68. AND c.codigoitem NOT IN ('CUOTAS', 'RECHAZOV')
  69. AND d.abo_f_baja > sysdate
  70. MINUS
  71. SELECT /*+ ALL_ROWS */
  72. DISTINCT a.idcliente, a.clientenombre, a.regimeniva, a.cuit,
  73. a.empresa, a.tipo, a.clase, a.sucursal, a.numero,
  74. TO_CHAR (a.emision, 'yyyy/mm') AS emision,
  75. a.vencimiento, a.neto neto, b.idservprod,
  76. b.idservprodbas, b.idordenservicio,
  77. d.abo_n_abo AS login,
  78. c.codigoitem, 'O' AS frecuencia, c.cantidad cantidad,
  79. c.precio precio, c.iditem, c.idsubitem, ' ' AS baja
  80. FROM dcc a,
  81. item_dcc b,
  82. sub_item_dcc c,
  83. stscabo@sidi.prod d,
  84. stpsifs@sidi.prod e
  85. WHERE a.iddocctascob = b.iddocctascob
  86. AND b.iditem = c.iditem
  87. AND b.idordenservicio = d.abo_n_ose(+)
  88. AND b.idservprodbas = e.ifs_c_spb
  89. AND c.codigoitem = e.ifs_c_tip_e
  90. AND cuit IS NOT NULL
  91. AND cuit <> 0
  92. AND estado <> 'ANULADO'
  93. AND emision BETWEEN fecha_desde AND fecha_hasta
  94. AND c.codigoitem NOT IN ('CUOTAS', 'RECHAZOV')
  95. AND d.abo_f_baja > sysdate
  96. UNION ALL
  97. SELECT /*+ ALL_ROWS */
  98. DISTINCT a.idcliente,
  99. a.clientenombre,
  100. a.regimeniva,
  101. a.cuit,
  102. a.empresa,
  103. a.tipo,
  104. a.clase,
  105. a.sucursal,
  106. a.numero,
  107. TO_CHAR (a.emision, 'yyyy/mm') AS emision,
  108. a.vencimiento,
  109. a.neto neto,
  110. b.idservprod,
  111. b.idservprodbas,
  112. b.idordenservicio,
  113. d.abo_n_abo AS login,
  114. c.codigoitem,
  115. e.ifs_c_fre_e AS frecuencia,
  116. c.cantidad cantidad,
  117. c.precio precio,
  118. c.iditem,
  119. c.idsubitem,
  120. TO_CHAR (e.ifs_f_baja, 'dd/mm/yyyy') AS baja
  121. FROM dcc a,
  122. item_dcc b,
  123. sub_item_dcc c,
  124. stscabo@sidi.prod d,
  125. stpsifs@sidi.prod e
  126. WHERE a.iddocctascob = b.iddocctascob
  127. AND b.iditem = c.iditem
  128. AND b.idordenservicio = d.abo_n_ose(+)
  129. AND b.idservprodbas = e.ifs_c_spb
  130. AND c.codigoitem = e.ifs_c_tip_e
  131. AND cuit IS NOT NULL
  132. AND cuit <> 0
  133. AND estado <> 'ANULADO'
  134. AND emision BETWEEN fecha_desde AND fecha_hasta
  135. AND c.codigoitem NOT IN ('CUOTAS', 'RECHAZOV')
  136. AND d.abo_f_baja > sysdate;
  137. BEGIN
  138. SELECT LAST_DAY (TRUNC (ADD_MONTHS (SYSDATE, -2))) + 1,--fecha de inicio
  139. LAST_DAY (TRUNC (ADD_MONTHS (SYSDATE, -1))) --fecha de fin
  140. INTO p_desdefecha,
  141. p_hastafecha
  142. FROM DUAL;
  143.  
  144. nombre_archivo :=
  145. 'facturacion_cerrada_' || TO_CHAR (SYSDATE, 'yyyymm')
  146. || '.txt';
  147. archivo := UTL_FILE.fopen (dir_path, nombre_archivo, 'w');
  148.  
  149. OPEN c1 (p_desdefecha, p_hastafecha);
  150.  
  151. FETCH c1
  152. INTO v_idcliente, v_clientenombre, v_regimeniva, v_cuit, v_empresa,
  153. v_tipo, v_clase, v_sucursal, v_numero, v_emision, v_vencimiento,
  154. v_neto, v_idservprod, v_idservprodbas, v_idordenservicio, v_login,
  155. v_codigoitem, v_frecuencia, v_cantidad, v_precio,
  156. v_iditem,
  157. v_idsubitem, v_baja;
  158.  
  159. LOOP
  160. EXIT WHEN c1%NOTFOUND;
  161.  
  162. BEGIN
  163. UTL_FILE.put_line (archivo,
  164. v_idcliente
  165. || CHR (09)
  166. || v_clientenombre
  167. || CHR (09)
  168. || v_regimeniva
  169. || CHR (09)
  170. || v_cuit
  171. || CHR (09)
  172. || v_empresa
  173. || CHR (09)
  174. || v_tipo
  175. || CHR (09)
  176. || v_clase
  177. || CHR (09)
  178. || v_sucursal
  179. || CHR (09)
  180. || v_numero
  181. || CHR (09)
  182. || v_emision
  183. || CHR (09)
  184. || v_vencimiento
  185. || CHR (09)
  186. || v_neto
  187. || CHR (09)
  188. || v_idservprod
  189. || CHR (09)
  190. || v_idservprodbas
  191. || CHR (09)
  192. || v_idordenservicio
  193. || CHR (09)
  194. || v_login
  195. || CHR (09)
  196. || v_codigoitem
  197. || CHR (09)
  198. || v_frecuencia
  199. || CHR (09)
  200. || v_cantidad
  201. || CHR (09)
  202. || v_precio
  203. || CHR (09)
  204. ||
  205. --v_iditem|| chr(09) ||
  206. --v_IDSUBITEM|| chr(09) ||
  207. v_baja
  208. );
  209. END;
  210.  
  211. FETCH c1
  212. INTO v_idcliente, v_clientenombre, v_regimeniva, v_cuit, v_empresa,
  213. v_tipo, v_clase, v_sucursal, v_numero, v_emision,
  214. v_vencimiento, v_neto, v_idservprod, v_idservprodbas,
  215. v_idordenservicio, v_login,
  216. v_codigoitem, v_frecuencia,
  217. v_cantidad, v_precio,
  218. v_iditem, v_idsubitem, v_baja;
  219. END LOOP;
  220.  
  221. CLOSE c1;
  222.  
  223. UTL_FILE.fclose (archivo);
  224. END;
  225.  
  226. /**
  227. * Procedimiento que genera el archivo de detalle de datos
  228. *@author DC
  229. *@sgr DA078342
  230. *
  231. * @param
  232. * @param
  233. * @param
  234. *
  235. **/
  236. PROCEDURE detalle_de_datos
  237. IS
  238. vc_ser stpsser.ser_c_ser@sidi.prod%TYPE;
  239. vd_ser stpsser.ser_d_ser@sidi.prod%TYPE;
  240. v_spb stpsspb.spb_c_spb@sidi.prod%TYPE;
  241. v_fenvio VARCHAR2 (6);
  242.  
  243. CURSOR c1
  244. IS
  245. SELECT /*+ ALL_ROWS */
  246. ser_c_ser, ser_d_ser, spb_c_spb,
  247. TO_CHAR (SYSDATE - 20, 'yyyymm')
  248. FROM stpsser@sidi.prod, stpsspb@sidi.prod
  249. WHERE ser_c_ser = spb_c_ser
  250. ORDER BY ser_c_ser, spb_c_spb;
  251. BEGIN
  252. nombre_archivo :=
  253. 'detalle_de_datos_' || TO_CHAR (SYSDATE, 'yyyymm')
  254. || '.txt';
  255. archivo := UTL_FILE.fopen (dir_path, nombre_archivo, 'w');
  256.  
  257. OPEN c1;
  258.  
  259. FETCH c1
  260. INTO vc_ser, vd_ser, v_spb, v_fenvio;
  261.  
  262. LOOP
  263. EXIT WHEN c1%NOTFOUND;
  264.  
  265. BEGIN
  266. UTL_FILE.put_line (archivo,
  267. vc_ser
  268. || CHR (09)
  269. || vd_ser
  270. || CHR (09)
  271. || v_spb
  272. || CHR (09)
  273. || v_fenvio
  274. );
  275. END;
  276.  
  277. FETCH c1
  278. INTO vc_ser, vd_ser, v_spb, v_fenvio;
  279. END LOOP;
  280.  
  281. CLOSE c1;
  282.  
  283. UTL_FILE.fclose (archivo);
  284. END;
  285.  
  286. END; --Package
  287. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement