svn path=/Customer/trunk/; revision=28901

This commit is contained in:
Suzan Wiegerinck
2016-04-13 10:14:33 +00:00
parent 3396303435
commit c752e5245f

View File

@@ -1,660 +0,0 @@
SET DEFINE OFF
SET ECHO ON
spool uwva_imp_lease_fac.lst
ALTER TABLE uwva_imp_factuur MODIFY bestelnummer VARCHAR2 (31);
CREATE OR REPLACE PROCEDURE uwva_import_factuur_lease (
p_import_key IN NUMBER)
AS
-- Standaard volgorde van de kolommen in het CSV-formaat, waarbij 3 velden VERPLICHT (minimaal door Facilitor vereist)
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk2: 17
-- v_kenmerk3: 18
-- v_kenmerk4: 19
-- v_kenmerk5: 20
-- v_boekmaand: 21 (GELDIG, Indien gevuld dan moet er een geldige jaar-maand combinatie staan. Andere waarden leidt tot "Incompleet")
-- Eerst geprobeerd via nette array, geeft problemen met type buiten package, en in package lukt niet omdat
-- de import in Facilitor package-loos is (en niet 1-2-3 zo kan worden gemaakt vanwege alle bestaande klanten)
-- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
-- Dus dan maar via een string, en ook op slimme wijze, nl alsof het een ingelezen factuur-record is met p_fielddelimitor
v_seq_of_columns VARCHAR (100);
-- Afwijkingen op deze volgorde zijn in eigen cust_import_factuur te regelen.
-- Als leveranciersnr en factuurnr b.v. zijn omgedraaid in het CSV-formaat,
-- dan factuurimport ListOfInteger := (2,1,3,4,5,6,7,8,9,10,11,12);
-- v_seq_of_columns := '2;1;3;4;5;6;7;8;9;10;11;12';
-- Als leveranciersnr NIET in CSV staat, dan factuurimport ListOfInteger := (0,2,3,4,5,6,7,8,9,10,11,12);
-- v_seq_of_columns := '0;2;3;4;5;6;7;8;9;10;11;12';
-- M.a.w. waar een 0 staat, wordt de variabele niet ingelezen en blift LEEG.
BEGIN
v_seq_of_columns := '0;1;0;8;0;0;4;0;11;13;12;0;0;0;0;3;10;5;0;0;0';
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- Stap 1: haal de header van de factuur uit de import tabel
DELETE fac_imp_factuur
WHERE UPPER (ordernr) = 'KENTEKEN' AND fac_import_key = p_import_key;
-- Stap 2: zet de juiste kostenplaats in kenmerkveld 12 voor berijderskosten
UPDATE fac_imp_factuur f
SET f.kenmerk12 = '122203'
WHERE fac_import_key = p_import_key
AND f.kenmerk1 IN
(SELECT c.fac_usrdata_code
FROM fac_usrdata c, fac_usrtab t
WHERE C.FAC_USRTAB_KEY = T.FAC_USRTAB_KEY
AND C.FAC_USRDATA_VERWIJDER IS NULL
AND T.FAC_USRTAB_NAAM = '122203');
-- Stap 3: zet de juiste kostenplaats in kenmerkveld 12 voor leasekosten
UPDATE fac_imp_factuur f
SET f.kenmerk12 = '451105'
WHERE fac_import_key = p_import_key
AND f.kenmerk1 IN
(SELECT c.fac_usrdata_code
FROM fac_usrdata c, fac_usrtab t
WHERE C.FAC_USRTAB_KEY = T.FAC_USRTAB_KEY
AND C.FAC_USRDATA_VERWIJDER IS NULL
AND T.FAC_USRTAB_NAAM = '451105');
-- Stap 4:
-- * zet het kenteken in kenmerkveld 11
-- * de factuurdatum is gelijk aan de inleesdatum
UPDATE fac_imp_factuur f
SET f.kenmerk11 = f.ordernr,
f.factuurdatum = (SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy') FROM DUAL)
WHERE fac_import_key = p_import_key
AND f.kenmerk12 IN ('122203', '451105');
-- Stap 5: Haal voor de berijderskosten kostenplaats 122203 het juiste contractnummer erbij obv kenteken, personeelsnummer en contracttype (disc. key = 426)
-- Indien er geen berijdersovereenkomst gevonden kan worden blijft het veld ordernr leeg
UPDATE fac_imp_factuur f
SET f.ordernr =
COALESCE( (SELECT DISTINCT cnt_contract_nummer_intern
FROM cnt_contract c, prs_perslid p
WHERE f.ordernr = SUBSTR (C.CNT_CONTRACT_NUMMER_INTERN, 1, 6)
AND p.prs_perslid_key = c.cnt_prs_perslid_key
AND f.kenmerk2 = p.prs_perslid_nr
AND f.kenmerk12 = '122203'
AND C.INS_DISCIPLINE_KEY = 426), f.ordernr)
WHERE fac_import_key = p_import_key AND f.kenmerk12 = '122203';
-- Stap 6: Haal voor de leasekosten kostenplaats 451105 het juiste contractnummer erbij obv kenteken en contracttype (disc. key = 425)
-- Uitgangspunt is dat er voor iederen auto/kenteken slechts 1 leasecontract is
UPDATE fac_imp_factuur f
SET f.ordernr =
COALESCE( (SELECT DISTINCT cnt_contract_nummer_intern
FROM cnt_contract c
WHERE f.ordernr = SUBSTR (C.CNT_CONTRACT_NUMMER_INTERN, 1, 6)
AND f.kenmerk12 = '451105'
AND C.CNT_CONTRACT_VERWIJDER IS NULL
--and c.cnt_contract_status !=1
AND C.INS_DISCIPLINE_KEY = 425), f.ordernr)
WHERE fac_import_key = p_import_key AND f.kenmerk12 = '451105';
-- Stap 7: Voeg prefix C toe aan het ordernummer
UPDATE fac_imp_factuur f
SET f.ordernr = CONCAT ('C', f.ordernr)
WHERE fac_import_key = p_import_key
AND f.kenmerk12 IN ('122203', '451105')
AND f.ordernr IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE UWVA.uwva_update_factuur_lease (
p_import_key IN NUMBER)
AS
-- Een factuur(record) wordt aangemaakt voor iedere factuurnr/bestelnummer-
-- combinatie en dan wordt voor iedere regel een regel(record) aangemaakt.
CURSOR cfactuurregel
IS
SELECT imp.*, btw.*
FROM (SELECT factuurnr,
ordernr AS bestelnummer,
kenmerk3 AS regelnummer,
NULL AS besteldatum,
kostprijs AS totaalexcl,
btw_bedrag totaalbtw,
NULL nrbesteld,
NULL nrgeleverd,
afleverdatum,
omschrijving,
NULL AS eenheid,
kenmerk12 kostenplaats,
btw AS btwcode,
FAC_IMPORT_KEY,
FAC_IMP_FILE_INDEX
FROM fac_imp_factuur) imp
LEFT JOIN
fin_btwtabelwaarde btw
ON imp.btwcode = btw.fin_btwtabelwaarde_perc
AND btw.fin_btwtabel_key = 1 -- NL standaard
ORDER BY imp.factuurnr, imp.bestelnummer, imp.regelnummer;
v_errormsg VARCHAR2 (1000);
oracle_err_mes VARCHAR2 (200);
c_i NUMBER;
c_teller NUMBER;
c_newfactuurkey NUMBER;
c_factuurregel NUMBER;
c_fin_factuurregel_key NUMBER;
c_fac_type VARCHAR2 (1);
c_prefix1 VARCHAR2 (1);
c_bestelnummer_index NUMBER;
c_bestelnummer_s1 VARCHAR2 (20);
c_bestelnummer_s2 VARCHAR2 (20);
c_bestelnummer_t VARCHAR2 (40);
c_old_bestelnummer uwva_imp_factuur.bestelnummer%TYPE;
c_old_factuurnr uwva_imp_factuur.factuurnr%TYPE;
--c_write_bestelnummer VARCHAR2 (20);
c_bestelopdr_id VARCHAR2 (20);
c_fact_tot NUMBER;
c_fact_totbtw NUMBER;
c_find BOOLEAN;
--c_find_bestelnummer BOOLEAN;
c_mld_opdr_key NUMBER (10);
c_cnt_contract_key NUMBER (10);
c_bes_bestelopdr_key NUMBER (10);
c_prs_bedrijf_naam VARCHAR2 (100);
--c_opmerking VARCHAR2 (200);
c_fact_datum DATE;
c_rollback BOOLEAN;
FUNCTION getfactype (pbestelnr IN VARCHAR2)
RETURN VARCHAR2
IS
c_prefix1 VARCHAR2 (1);
lfactype VARCHAR2 (1);
BEGIN
IF LENGTH (pbestelnr) = 0
THEN
RETURN '';
END IF;
c_prefix1 := SUBSTR (pbestelnr, 1, 1);
IF SUBSTR (pbestelnr, 1, 2) = 'O-'
THEN
lfactype := 'B'; -- Bestelling
ELSIF ( ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
OR (ASCII(c_prefix1) >= 97 AND ASCII (c_prefix1) <= 122))
AND ASCII (c_prefix1) != 67
AND ASCII (c_prefix1) != 99)
THEN
lfactype := 'O'; -- Opdracht (Melding)
ELSIF (ASCII (c_prefix1) = 67 OR ASCII (c_prefix1) = 99)
THEN
lfactype := 'C'; -- Contract
ELSE
uwva_imp_writelog (p_import_key,
'I',
'Kan besteltype niet bepalen voor ' || pbestelnr,
pbestelnr);
END IF;
RETURN lfactype;
END;
BEGIN
c_old_bestelnummer := '';
c_old_factuurnr := '';
c_teller := 0;
c_fact_datum := SYSDATE;
c_rollback := FALSE;
-- Facturen
FOR rc IN cfactuurregel
LOOP
IF rc.bestelnummer = c_old_bestelnummer
AND rc.factuurnr = c_old_factuurnr
THEN
-- Toevoegen nieuwe factuurregel; c_newfactuurkey nog steeds actueel!
c_factuurregel := c_factuurregel + 1;
BEGIN
INSERT INTO fin_factuurregel (fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key)
VALUES (c_newfactuurkey,
rc.regelnummer,
rc.totaalexcl,
rc.totaalbtw,
SUBSTR (rc.omschrijving, 1, 60),
rc.kostenplaats,
DECODE (rc.totaalbtw,
0, 1, -- NL standaard 0/Nul
rc.fin_btwtabelwaarde_key))
RETURNING fin_factuurregel_key
INTO c_fin_factuurregel_key;
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
UPDATE fac_imp_factuur
SET fin_factuurregel_key = c_fin_factuurregel_key
WHERE fac_import_key = rc.fac_import_key
AND fac_imp_file_index = rc.fac_imp_file_index;
uwva_imp_writelog (
p_import_key,
'I',
'Factuurregel '
|| c_factuurregel
|| ' toegevoegd aan factuur '
|| c_newfactuurkey,
rc.bestelnummer || ' / ' || rc.factuurnr);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'W',
'Kan factuur(regel) niet toevoegen! ' || v_errormsg,
rc.bestelnummer || ' / ' || rc.factuurnr);
c_rollback := TRUE;
END;
c_teller := c_teller + 1;
ELSE
-- Toevoegen nieuwe factuur + factuurregel!
c_old_bestelnummer := rc.bestelnummer;
c_old_factuurnr := rc.factuurnr;
c_factuurregel := 1;
c_bestelnummer_index := INSTR (rc.bestelnummer, '/');
c_mld_opdr_key := NULL;
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
IF c_bestelnummer_index = 0 OR 1=1
THEN
c_bestelnummer_s1 := rc.bestelnummer;
c_bestelnummer_s2 := '';
ELSE
c_bestelnummer_s1 :=
SUBSTR (rc.bestelnummer, 1, c_bestelnummer_index - 1);
c_bestelnummer_s2 :=
SUBSTR (rc.bestelnummer, c_bestelnummer_index + 1);
END IF;
c_find := FALSE;
--c_find_bestelnummer := FALSE;
c_fac_type := '';
c_fac_type := getfactype (rc.bestelnummer);
IF c_fac_type = 'O'
THEN
IF c_bestelnummer_index != 0
AND ASCII (c_prefix1) >= 48
AND ASCII (c_prefix1) <= 57
-- Geen prefix maar het is wel een opdracht (afgedwongen door /).
THEN
-- c_bestelnummer_s1 bevat geen prefix
-- c_bestelnummer_s2 bevat het gedeelte na de /
c_find := TRUE;
ELSE
c_i := 1;
LOOP
IF (ASCII (SUBSTR (c_bestelnummer_s1, c_i, 1)) >= 48
AND ASCII (SUBSTR (c_bestelnummer_s1, c_i, 1)) <= 57)
THEN
c_find := TRUE;
ELSE
c_i := c_i + 1;
END IF;
EXIT WHEN (c_find OR c_i > LENGTH (c_bestelnummer_s1));
END LOOP;
IF c_find
THEN
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, c_i);
ELSE
uwva_imp_writelog (
p_import_key,
'W',
'Kan bestelnummer niet bepalen!',
rc.bestelnummer || ' / ' || rc.factuurnr);
c_rollback := TRUE;
END IF;
END IF;
ELSIF c_fac_type = 'C'
THEN
-- Haal prefix 'C' of 'c' eraf.
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, 2);
c_find := TRUE;
ELSIF c_fac_type = 'B'
THEN
-- Haal prefix O- eraf; c_bestelnummer_s2 is goed.
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, 3);
c_find := TRUE;
END IF;
-- c_bestelnummer_s1 bevat ordernummer
-- c_bestelnummer_s2 bevat volgnummer van de (bestel)opdracht; bij
-- contracten is deze waarde leeg
-- Vind nu de onderliggende 'O', 'C' of 'B'.
IF c_fac_type = 'O'
THEN
-- Bestaat de opdracht wel <20>n is deze geldig!?
BEGIN
SELECT mld_opdr_key
INTO c_mld_opdr_key
FROM mld_opdr
WHERE mld_melding_key =
fac.safe_to_number (c_bestelnummer_s1)
AND mld_opdr_bedrijfopdr_volgnr =
fac.safe_to_number (c_bestelnummer_s2)
AND mld_statusopdr_key NOT IN (1, 2, 3); -- Ongeldige opdrachten (nog)
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan opdrachtreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1 || '/' || c_bestelnummer_s2);
c_find := FALSE;
END;
ELSIF c_fac_type = 'C'
THEN
-- Bestaat het contract wel (zie ook UWVA#23124 + UWVA#24359 + UWVA#25579)!?
BEGIN
SELECT cnt_contract_key
INTO c_cnt_contract_key
FROM (SELECT cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.cnt_contract_nummer_intern =
c_bestelnummer_s1
AND c.ins_discipline_key != 360 -- Abonnementen
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND (NOT EXISTS -- Bij >1 versie relevantste irt. besteldatum!
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie !=
c.cnt_contract_versie)
OR rc.besteldatum BETWEEN TRUNC(c.cnt_contract_looptijd_van)
AND TRUNC(c.cnt_contract_looptijd_tot))
UNION ALL -- UWVA#25579: Voor abonnementen altijd laatste versie!
SELECT c.cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.cnt_contract_nummer_intern =
c_bestelnummer_s1
AND c.ins_discipline_key = 360 -- Abonnementen
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND NOT EXISTS -- Alleen laatste versies van contracten!
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie >
c.cnt_contract_versie));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan contractreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1);
c_find := FALSE;
END;
ELSIF c_fac_type = 'B'
THEN
-- Bestaat de bestelopdracht wel <20>n is deze geldig!?
BEGIN
IF c_bestelnummer_s2 IS NULL -- Kan dat (nog) wel???
THEN
c_bestelnummer_t := c_bestelnummer_s1;
ELSE
c_bestelnummer_t :=
c_bestelnummer_s1 || '/' || c_bestelnummer_s2;
END IF;
-- UWVA#22649: Om igv. voorkomens met dezelfde bestelopdr_id de
-- juiste te pakken, hier filteren op een status waarin een
-- factuur mag worden ontvangen (In Bestelling/4, Geleverd/6 of
-- Verwerkt/7).
-- UWVA#24723: Je vind <20><>n bestelopdracht of anders handmatig
-- maar oppakken! -> Later nog maar eens dieper analyseren of
-- het mogelijk is in 1x de enige juiste te vinden...
SELECT bes_bestelopdr_key
INTO c_bes_bestelopdr_key
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = c_bestelnummer_t
AND bes_bestelopdr_status IN (4, 6, 7); -- Geldige bestelopdrachten
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan bestelopdrachtreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1 || '/' || c_bestelnummer_s2);
c_find := FALSE;
END;
END IF;
--c_opmerking := '';
BEGIN
SELECT fin_s_fin_factuur_key.NEXTVAL
INTO c_newfactuurkey
FROM DUAL;
--SELECT SUM (fac.safe_to_number (kostprijs)) totaal,
-- SUM (fac.safe_to_number (COALESCE (btw_bedrag, '0')))
-- totaalbtw
SELECT COALESCE (SUM (kostprijs), 0) totaal,
COALESCE (SUM (btw_bedrag), 0) totaal_btw
INTO c_fact_tot, c_fact_totbtw
FROM fac_imp_factuur
WHERE ordernr = rc.bestelnummer AND factuurnr = rc.factuurnr;
INSERT INTO fin_factuur (fin_factuur_key,
fin_factuur_totaal,
fin_factuur_totaal_btw,
mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
prs_perslid_key_user,
fin_factuur_datum,
fin_factuur_opmerking,
fin_factuur_statuses_key,
fin_factuur_nr,
fin_factuur_boekmaand)
VALUES (c_newfactuurkey,
c_fact_tot,
c_fact_totbtw,
c_mld_opdr_key,
c_cnt_contract_key,
c_bes_bestelopdr_key,
NULL,
c_fact_datum,
'Ge<EFBFBD>mporteerde factuur', -- ' || c_opmerking,
2,
rc.factuurnr,
SUBSTR (rc.afleverdatum, 1, 4)
|| '-'
|| SUBSTR (rc.afleverdatum, 5, 2));
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
UPDATE fac_imp_factuur
SET fin_factuur_key = c_newfactuurkey
WHERE fac_import_key = rc.fac_import_key
AND fac_imp_file_index = rc.fac_imp_file_index;
fac.trackaction ('FINNEW',
c_newfactuurkey,
NULL,
NULL,
NULL);
INSERT INTO fin_factuurregel (fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key)
VALUES (c_newfactuurkey,
rc.regelnummer,
rc.totaalexcl,
rc.totaalbtw,
SUBSTR (rc.omschrijving, 1, 60),
rc.kostenplaats,
DECODE (rc.totaalbtw,
0, 1, -- NL standaard 0/Nul
rc.fin_btwtabelwaarde_key))
RETURNING fin_factuurregel_key
INTO c_fin_factuurregel_key;
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
UPDATE fac_imp_factuur
SET fin_factuurregel_key = c_fin_factuurregel_key
WHERE fac_import_key = rc.fac_import_key
AND fac_imp_file_index = rc.fac_imp_file_index;
--IF c_find_bestelnummer
--THEN
-- c_write_bestelnummer := c_bestelopdr_id;
--ELSE
-- c_write_bestelnummer := rc.bestelnummer;
--END IF;
uwva_imp_writelog (
p_import_key,
'I',
'Factuur '
|| c_newfactuurkey
|| ' toegevoegd met factuurregel '
|| c_factuurregel,
--c_write_bestelnummer || ' / ' || rc.factuurnr
rc.bestelnummer || ' / ' || rc.factuurnr);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'W',
'Kan factuur(regel) niet toevoegen! ' || v_errormsg,
rc.bestelnummer || '/' || rc.factuurnr);
c_rollback := TRUE;
END;
c_teller := c_teller + 1;
END IF;
END LOOP;
-- Zet facturen automatisch op Akkoord als deze aan match-criteria voldoen.
FOR rc IN ( SELECT f.fin_factuur_key factuur_key
FROM fin_factuur f
WHERE f.fin_factuur_datum = c_fact_datum
ORDER BY f.fin_factuur_key)
LOOP
FIN.matchandsetfactuur (rc.factuur_key, FALSE);
--COMMIT;
END LOOP;
-- UWVA#19018: Notificeer niet goedgekeurde facturen naar de budgethouders
-- (1 mail per persoon). Hierbij maakt het niet veel uit of ze net zijn
-- geimporteerd of al eerder (of handmatig ingevoerd). Medium wordt bepaald
-- door mode bij FININF.
fac.putjobnotifications ('uwva_v_noti_finreminder', NULL, 0);
--SELECT COUNT ( * )
-- INTO c_i
-- FROM imp_log
-- WHERE fac_import_key = p_import_key AND imp_log_status IN ('E', 'W');
IF c_rollback = TRUE
THEN
uwva_imp_writelog (p_import_key,
'E',
v_errormsg,
'Importproces facturen afgebroken!');
ROLLBACK;
ELSE
COMMIT;
END IF;
-- Stap 8: Voeg de soort factuurregel toe aan de factuurregel
INSERT INTO FIN_KENMERKFACTREGEL R (R.FIN_KENMERK_KEY, R.FIN_FACTUURREGEL_KEY, R.FIN_KENMERKFACTREGEL_WAARDE)
SELECT DISTINCT 1, I.FIN_FACTUURREGEL_KEY, S.FACTUURREG_SOORT_CODE
FROM fac_USRDATA u, UWVA_V_FACTUURREG_SOORT S, FAC_IMP_FACTUUR I
WHERE U.FAC_USRTAB_KEY IN (1225, 1227)
AND U.FAC_USRDATA_KEY = S.FACTUURREG_SOORT_CODE
AND I.KENMERK1 = TO_NUMBER (U.FAC_USRDATA_CODE)
AND U.FAC_USRDATA_VERWIJDER IS NULL
AND fac_import_key = p_import_key;
-- Stap 9: voeg het regelnummer uit de leasefactuur toe aan de factuur in Facilitor
INSERT INTO FIN_KENMERKFACTREGEL R (R.FIN_KENMERK_KEY, R.FIN_FACTUURREGEL_KEY, R.FIN_KENMERKFACTREGEL_WAARDE)
SELECT DISTINCT 2, I.FIN_FACTUURREGEL_KEY, I.KENMERK3
FROM FAC_IMP_FACTUUR I
WHERE fac_import_key = p_import_key;
END;
/
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
END;
/
BEGIN
adm.systrackscriptId (
'$Id$',
0);
END;
/
COMMIT;
spool off