Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2012
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. PROCEDURE INS_TEMP4PRINT_NULL(
  2. iART IN ma_beab_zug.ART%TYPE
  3. ,iABGEBER_ID IN ma_beab_zug.ABGEBER_ID%TYPE
  4. ,iDATUM IN ma_beab_zug.DATUM%TYPE DEFAULT NULL
  5. ,iAUSZAHLDATUM IN ma_beab_zug.AUSZAHLDATUM%TYPE DEFAULT NULL
  6. ,iBEM IN TEMP4PRINT.VC01%TYPE
  7. ,iQUITT_ORT IN TEMP4PRINT.VC02%TYPE
  8. ,iBETRAG IN TEMP4PRINT.NU04%TYPE
  9. ,iCHECKBOX IN TEMP4PRINT.NU05%TYPE
  10. )
  11. IS
  12. PRAGMA AUTONOMOUS_TRANSACTION;
  13. TK_FUNC_NAME CONSTANT USER_OBJECTS.OBJECT_NAME%TYPE := 'INS_TEMP4PRINT_NULL';
  14. vTab CMB.T_RSI_TAB;
  15. vSel CMB.T_RSI_SEL;
  16. vSqlErrm CMB.T_DB_SQLERRM := NULL;
  17.  
  18. vART ma_beab_zug.ART%TYPE := iArt;
  19. vABGEBER_ID MA_BEAB_ZUG.ABGEBER_ID%TYPE := iABGEBER_ID;
  20. vDATUM ma_beab_zug.DATUM%TYPE := TRUNC(iDATUM);
  21. vMONAT varchar2(6) :=to_char(vDATUM,'YYYYMM');
  22. vBEM varchar2(30) :=iBEM;
  23. vQUITT_ORT varchar2(30) :=iQUITT_ORT;
  24. vBETRAG varchar2(8) :=iBETRAG;
  25. vCHECKBOX varchar2(4) :=iCHECKBOX;
  26. vAUSZAHLDATUM MA_BEAB_ZUG.AUSZAHLDATUM%TYPE := TRUNC(iAUSZAHLDATUM);
  27. vAUSZAHLART MA_BEAB_ZUG.AUSZAHLART%TYPE;
  28. vTab1 CMB.T_RSI_TAB := 'MAJOB, MA';
  29. vSel1 CMB.T_RSI_SEL := 'ABGEBER_ID='||vABGEBER_ID;
  30. vTab2 CMB.T_RSI_TAB := 'MA_BEAB_ZUG';
  31. vSel2 CMB.T_RSI_SEL := ' ABGEBER_ID='||vABGEBER_ID||' ART='||vART||' DATUM='||vDATUM||' AUSZAHLDATUM='||vAUSZAHLDATUM;
  32. vNum NUMBER;
  33. BEGIN
  34. CMT.ClearAppMsg;
  35. <<MAIN_BLOCK>>
  36. BEGIN
  37. vTab := 'Init';
  38.  
  39. vAUSZAHLART := CMT.GetTCVNum('MA_BEAB_ZUG_AUSZAHLART_UNBAR');
  40. vTab := vTab1;
  41. vSel := vSel1;
  42. FOR rec IN (SELECT DISTINCT j.MA_ID
  43. FROM MAJOB j, MA
  44. WHERE j.ABGEBER_ID = vABGEBER_ID AND
  45.  
  46. to_char(j.anmeld_dat,'YYYYMM')<= vMONAT and
  47. ( j.ABMELD_DAT IS NULL OR vMONAT <= to_char(ADD_MONTHS(J.Abmeld_Dat,1),'YYYYMM'))and -- mai 2012 //add_month,einen monat dazu,wenn verträge ablaufen und trotzdem abschlag für nächsten monat quittungsdruck
  48. MA.ID = j.MA_ID AND
  49. MA.STATUS=CMT.GetTCVNum('MA_STATUS_AKTIV'))
  50. LOOP
  51. vTab := vTab2;
  52. vSel := 'MA_ID='||rec.MA_ID||vSel2;
  53.  
  54. -- hier insert:
  55.  
  56. INSERT INTO TEMP4PRINT
  57. (ART4PRINT,NU01, NU02, NU03,DATE_1, NU04,DATE_2, NU05, VC01, VC02)
  58. VALUES (55,vABGEBER_ID, rec.MA_ID, vART,vDATUM, vBETRAG, vAUSZAHLDATUM, vCHECKBOX, vBEM, vQUITT_ORT); -- 55 ist fake,art4print cant be NULL
  59. IF SQL%ROWCOUNT=1 THEN
  60. NULL;
  61. ELSIF SQL%ROWCOUNT<1 THEN
  62. RAISE NO_DATA_FOUND;
  63. ELSE
  64. RAISE TOO_MANY_ROWS;
  65. END IF;
  66.  
  67. vTab := vTab1;
  68. vSel := vSel1;
  69. END LOOP;
  70. vTab := 'COMMIT'; vSel := NULL;
  71. COMMIT;
  72. <<MARK_ENDE>>
  73. NULL;
  74. EXCEPTION -- MAIN_BLOCK
  75. WHEN NO_DATA_FOUND THEN
  76. CMT.SetAppMsg('Fehler: Tabelle '||vTab||' Eintrag für '||vSel||' fehlt','red');
  77. WHEN TOO_MANY_ROWS THEN
  78. CMT.SetAppMsg('Fehler: Tabelle '||vTab||' Eintrag für '||vSel||' mehrfach vorhanden','red');
  79. WHEN OTHERS THEN
  80. CMT.SetAppMsg(SQLERRM||' [Tab='||vTab||' Sel='||vSel||']','red');
  81. END MAIN_BLOCK;
  82. vTab := 'ROLLBACK'; vSel := NULL;
  83. ROLLBACK;
  84.  
  85. END INS_TEMP4PRINT_NULL ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement