Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROCEDURE INS_TEMP4PRINT_NULL(
- iART IN ma_beab_zug.ART%TYPE
- ,iABGEBER_ID IN ma_beab_zug.ABGEBER_ID%TYPE
- ,iDATUM IN ma_beab_zug.DATUM%TYPE DEFAULT NULL
- ,iAUSZAHLDATUM IN ma_beab_zug.AUSZAHLDATUM%TYPE DEFAULT NULL
- ,iBEM IN TEMP4PRINT.VC01%TYPE
- ,iQUITT_ORT IN TEMP4PRINT.VC02%TYPE
- ,iBETRAG IN TEMP4PRINT.NU04%TYPE
- ,iCHECKBOX IN TEMP4PRINT.NU05%TYPE
- )
- IS
- PRAGMA AUTONOMOUS_TRANSACTION;
- TK_FUNC_NAME CONSTANT USER_OBJECTS.OBJECT_NAME%TYPE := 'INS_TEMP4PRINT_NULL';
- vTab CMB.T_RSI_TAB;
- vSel CMB.T_RSI_SEL;
- vSqlErrm CMB.T_DB_SQLERRM := NULL;
- vART ma_beab_zug.ART%TYPE := iArt;
- vABGEBER_ID MA_BEAB_ZUG.ABGEBER_ID%TYPE := iABGEBER_ID;
- vDATUM ma_beab_zug.DATUM%TYPE := TRUNC(iDATUM);
- vMONAT varchar2(6) :=to_char(vDATUM,'YYYYMM');
- vBEM varchar2(30) :=iBEM;
- vQUITT_ORT varchar2(30) :=iQUITT_ORT;
- vBETRAG varchar2(8) :=iBETRAG;
- vCHECKBOX varchar2(4) :=iCHECKBOX;
- vAUSZAHLDATUM MA_BEAB_ZUG.AUSZAHLDATUM%TYPE := TRUNC(iAUSZAHLDATUM);
- vAUSZAHLART MA_BEAB_ZUG.AUSZAHLART%TYPE;
- vTab1 CMB.T_RSI_TAB := 'MAJOB, MA';
- vSel1 CMB.T_RSI_SEL := 'ABGEBER_ID='||vABGEBER_ID;
- vTab2 CMB.T_RSI_TAB := 'MA_BEAB_ZUG';
- vSel2 CMB.T_RSI_SEL := ' ABGEBER_ID='||vABGEBER_ID||' ART='||vART||' DATUM='||vDATUM||' AUSZAHLDATUM='||vAUSZAHLDATUM;
- vNum NUMBER;
- BEGIN
- CMT.ClearAppMsg;
- <<MAIN_BLOCK>>
- BEGIN
- vTab := 'Init';
- vAUSZAHLART := CMT.GetTCVNum('MA_BEAB_ZUG_AUSZAHLART_UNBAR');
- vTab := vTab1;
- vSel := vSel1;
- FOR rec IN (SELECT DISTINCT j.MA_ID
- FROM MAJOB j, MA
- WHERE j.ABGEBER_ID = vABGEBER_ID AND
- to_char(j.anmeld_dat,'YYYYMM')<= vMONAT and
- ( 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
- MA.ID = j.MA_ID AND
- MA.STATUS=CMT.GetTCVNum('MA_STATUS_AKTIV'))
- LOOP
- vTab := vTab2;
- vSel := 'MA_ID='||rec.MA_ID||vSel2;
- -- hier insert:
- INSERT INTO TEMP4PRINT
- (ART4PRINT,NU01, NU02, NU03,DATE_1, NU04,DATE_2, NU05, VC01, VC02)
- VALUES (55,vABGEBER_ID, rec.MA_ID, vART,vDATUM, vBETRAG, vAUSZAHLDATUM, vCHECKBOX, vBEM, vQUITT_ORT); -- 55 ist fake,art4print cant be NULL
- IF SQL%ROWCOUNT=1 THEN
- NULL;
- ELSIF SQL%ROWCOUNT<1 THEN
- RAISE NO_DATA_FOUND;
- ELSE
- RAISE TOO_MANY_ROWS;
- END IF;
- vTab := vTab1;
- vSel := vSel1;
- END LOOP;
- vTab := 'COMMIT'; vSel := NULL;
- COMMIT;
- <<MARK_ENDE>>
- NULL;
- EXCEPTION -- MAIN_BLOCK
- WHEN NO_DATA_FOUND THEN
- CMT.SetAppMsg('Fehler: Tabelle '||vTab||' Eintrag für '||vSel||' fehlt','red');
- WHEN TOO_MANY_ROWS THEN
- CMT.SetAppMsg('Fehler: Tabelle '||vTab||' Eintrag für '||vSel||' mehrfach vorhanden','red');
- WHEN OTHERS THEN
- CMT.SetAppMsg(SQLERRM||' [Tab='||vTab||' Sel='||vSel||']','red');
- END MAIN_BLOCK;
- vTab := 'ROLLBACK'; vSel := NULL;
- ROLLBACK;
- END INS_TEMP4PRINT_NULL ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement