svn path=/Customer/trunk/; revision=28900
This commit is contained in:
@@ -1,115 +0,0 @@
|
||||
SET ECHO ON
|
||||
SPOOL xuwva#34519.lst
|
||||
SET DEFINE OFF
|
||||
|
||||
CREATE OR REPLACE FORCE VIEW UWVA_V_RAP_CONTR_KPL
|
||||
(
|
||||
LEASECONTRACT,
|
||||
KP_LEASECONTRACT,
|
||||
KP_OMSCHRIJVING_LC,
|
||||
GEBRUIKERSOVEREENKOMST,
|
||||
KP_GEBRUIKERSOVEREENKOMST,
|
||||
KP_OMSCHRIJVING_GO,
|
||||
MEDEWERKER_ID,
|
||||
NAAM,
|
||||
KP_MEDEWERKER,
|
||||
KP_OMSCHRIJVING_MDW,
|
||||
CONTROLE_KPL
|
||||
)
|
||||
AS
|
||||
SELECT L.CNT_CONTRACT_NUMMER_INTERN,
|
||||
KL.PRS_KOSTENPLAATS_UPPER,
|
||||
KL.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||||
G.CNT_CONTRACT_NUMMER_INTERN,
|
||||
KG.PRS_KOSTENPLAATS_UPPER,
|
||||
KG.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||||
P.PRS_PERSLID_NR,
|
||||
N.PRS_PERSLID_NAAM_FRIENDLY,
|
||||
KP.PRS_KOSTENPLAATS_UPPER,
|
||||
KP.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||||
CASE
|
||||
WHEN ( KL.PRS_KOSTENPLAATS_UPPER <> KG.PRS_KOSTENPLAATS_UPPER
|
||||
OR KG.PRS_KOSTENPLAATS_UPPER <> KP.PRS_KOSTENPLAATS_UPPER
|
||||
OR KL.PRS_KOSTENPLAATS_UPPER <> KP.PRS_KOSTENPLAATS_UPPER)
|
||||
THEN
|
||||
'Onjuist'
|
||||
ELSE
|
||||
'Juist'
|
||||
END
|
||||
AS Controle_KPL
|
||||
FROM cnt_contract l,
|
||||
prs_kostenplaats kl,
|
||||
cnt_contract g,
|
||||
prs_kostenplaats kg,
|
||||
prs_perslid p,
|
||||
PRS_V_PERSLID_FULLNAMES_ALL n,
|
||||
prs_afdeling a,
|
||||
prs_kostenplaats kp
|
||||
WHERE L.INS_DISCIPLINE_KEY = 425
|
||||
AND G.INS_DISCIPLINE_KEY = 426
|
||||
AND L.PRS_KOSTENPLAATS_KEY = KL.PRS_KOSTENPLAATS_KEY
|
||||
AND G.PRS_KOSTENPLAATS_KEY = KG.PRS_KOSTENPLAATS_KEY
|
||||
AND L.CNT_CONTRACT_NUMMER_INTERN =
|
||||
LPAD (G.CNT_CONTRACT_NUMMER_INTERN, 6)
|
||||
AND G.CNT_PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
|
||||
AND P.PRS_PERSLID_KEY = N.PRS_PERSLID_KEY
|
||||
AND P.PRS_AFDELING_KEY = A.PRS_AFDELING_KEY
|
||||
AND A.PRS_KOSTENPLAATS_KEY = KP.PRS_KOSTENPLAATS_KEY
|
||||
AND L.CNT_CONTRACT_LOOPTIJD_TOT > SYSDATE
|
||||
AND G.CNT_CONTRACT_LOOPTIJD_VAN <= SYSDATE
|
||||
AND G.CNT_CONTRACT_LOOPTIJD_TOT > SYSDATE;
|
||||
|
||||
CREATE OR REPLACE FORCE VIEW UWVA_RAP_SALARIS_INH
|
||||
(
|
||||
JAAR,
|
||||
PERIODE,
|
||||
PNR,
|
||||
NAAM,
|
||||
OMSCHRIJVING,
|
||||
BEDRAG,
|
||||
REKENINGNR,
|
||||
KENTEKEN
|
||||
)
|
||||
AS
|
||||
SELECT (TO_CHAR (f.fin_factuur_datum, 'yyyy')) AS JAAR,
|
||||
(TO_CHAR (f.fin_factuur_datum, 'mm')) AS PERIODE,
|
||||
P.PRS_PERSLID_NR,
|
||||
N.PRS_PERSLID_NAAM_FULL,
|
||||
K.PRS_KOSTENSOORT_REFCODE,
|
||||
F.FIN_FACTUUR_TOTAAL,
|
||||
K.PRS_KOSTENSOORT_OMS,
|
||||
O.INS_DEEL_OMSCHRIJVING
|
||||
FROM fin_factuur f,
|
||||
cnt_contract c,
|
||||
prs_perslid p,
|
||||
PRS_V_PERSLID_FULLNAMES_ALL n,
|
||||
prs_kostensoort k,
|
||||
cnt_contract_object a,
|
||||
ins_deel o
|
||||
WHERE F.PRS_KOSTENSOORT_KEY = 382
|
||||
AND F.CNT_CONTRACT_KEY = C.CNT_CONTRACT_KEY
|
||||
AND C.CNT_PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
|
||||
AND P.PRS_PERSLID_KEY = N.PRS_PERSLID_KEY
|
||||
AND F.PRS_KOSTENSOORT_KEY = K.PRS_KOSTENSOORT_KEY
|
||||
AND C.CNT_CONTRACT_KEY = A.CNT_CONTRACT_KEY
|
||||
AND A.CNT_INS_DEEL_KEY = O.INS_DEEL_KEY;
|
||||
|
||||
CREATE OR REPLACE FORCE VIEW UWVA_V_FACTUURREG_SOORT
|
||||
(
|
||||
FACTUURREG_SOORT_CODE,
|
||||
FACTUURREG_SOORT_OMSCHR
|
||||
)
|
||||
AS
|
||||
SELECT U.FAC_USRDATA_KEY,
|
||||
CONCAT (U.FAC_USRDATA_CODE, (CONCAT (' ', U.FAC_USRDATA_OMSCHR)))
|
||||
AS OMSCHR
|
||||
FROM fac_USRDATA u
|
||||
WHERE U.FAC_USRTAB_KEY IN (1225, 1227)
|
||||
AND U.FAC_USRDATA_VERWIJDER IS NULL;
|
||||
|
||||
COMMIT;
|
||||
|
||||
BEGIN adm.systrackscriptId('$Id$'); END;
|
||||
/
|
||||
COMMIT;
|
||||
SPOOL OFF
|
||||
@@ -1,747 +0,0 @@
|
||||
-- Vervangt uwva#34519 en uwva_imp_lease_fac als wagenparkbeheer live gaat bij UWV
|
||||
|
||||
SET DEFINE OFF
|
||||
SET ECHO ON
|
||||
spool uwva_wagenp.lst
|
||||
|
||||
|
||||
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 = F.KENMERK11 || '/' || F.KENMERK2
|
||||
WHERE fac_import_key = p_import_key AND f.kenmerk12 = '122203';
|
||||
|
||||
-- Stap 6: 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_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 AS 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;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE FORCE VIEW UWVA_V_RAP_CONTR_KPL
|
||||
(
|
||||
LEASECONTRACT,
|
||||
KP_LEASECONTRACT,
|
||||
KP_OMSCHRIJVING_LC,
|
||||
GEBRUIKERSOVEREENKOMST,
|
||||
KP_GEBRUIKERSOVEREENKOMST,
|
||||
KP_OMSCHRIJVING_GO,
|
||||
MEDEWERKER_ID,
|
||||
NAAM,
|
||||
KP_MEDEWERKER,
|
||||
KP_OMSCHRIJVING_MDW,
|
||||
CONTROLE_KPL
|
||||
)
|
||||
AS
|
||||
SELECT L.CNT_CONTRACT_NUMMER_INTERN,
|
||||
KL.PRS_KOSTENPLAATS_UPPER,
|
||||
KL.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||||
G.CNT_CONTRACT_NUMMER_INTERN,
|
||||
KG.PRS_KOSTENPLAATS_UPPER,
|
||||
KG.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||||
P.PRS_PERSLID_NR,
|
||||
N.PRS_PERSLID_NAAM_FRIENDLY,
|
||||
KP.PRS_KOSTENPLAATS_UPPER,
|
||||
KP.PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||||
CASE
|
||||
WHEN ( KL.PRS_KOSTENPLAATS_UPPER <> KG.PRS_KOSTENPLAATS_UPPER
|
||||
OR KG.PRS_KOSTENPLAATS_UPPER <> KP.PRS_KOSTENPLAATS_UPPER
|
||||
OR KL.PRS_KOSTENPLAATS_UPPER <> KP.PRS_KOSTENPLAATS_UPPER)
|
||||
THEN
|
||||
'Onjuist'
|
||||
ELSE
|
||||
'Juist'
|
||||
END
|
||||
AS Controle_KPL
|
||||
FROM cnt_contract l,
|
||||
prs_kostenplaats kl,
|
||||
cnt_contract g,
|
||||
prs_kostenplaats kg,
|
||||
prs_perslid p,
|
||||
PRS_V_PERSLID_FULLNAMES_ALL n,
|
||||
prs_afdeling a,
|
||||
prs_kostenplaats kp
|
||||
WHERE L.INS_DISCIPLINE_KEY = 425
|
||||
AND G.INS_DISCIPLINE_KEY = 426
|
||||
AND L.PRS_KOSTENPLAATS_KEY = KL.PRS_KOSTENPLAATS_KEY
|
||||
AND G.PRS_KOSTENPLAATS_KEY = KG.PRS_KOSTENPLAATS_KEY
|
||||
AND L.CNT_CONTRACT_NUMMER_INTERN =
|
||||
LPAD (G.CNT_CONTRACT_NUMMER_INTERN, 6)
|
||||
AND G.CNT_PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
|
||||
AND P.PRS_PERSLID_KEY = N.PRS_PERSLID_KEY
|
||||
AND P.PRS_AFDELING_KEY = A.PRS_AFDELING_KEY
|
||||
AND A.PRS_KOSTENPLAATS_KEY = KP.PRS_KOSTENPLAATS_KEY
|
||||
AND L.CNT_CONTRACT_LOOPTIJD_TOT > SYSDATE
|
||||
AND G.CNT_CONTRACT_LOOPTIJD_VAN <= SYSDATE
|
||||
AND G.CNT_CONTRACT_LOOPTIJD_TOT > SYSDATE;
|
||||
|
||||
CREATE OR REPLACE VIEW UWVA_V_RAP_SALARIS_INH
|
||||
(
|
||||
JAAR,
|
||||
PERIODE,
|
||||
PNR,
|
||||
NAAM,
|
||||
OMSCHRIJVING,
|
||||
BEDRAGINCLBTW,
|
||||
REKENINGNR,
|
||||
KENTEKEN
|
||||
)
|
||||
AS
|
||||
SELECT (TO_CHAR (f.fin_factuur_datum, 'yyyy')) AS JAAR,
|
||||
(TO_CHAR (f.fin_factuur_datum, 'mm')) AS PERIODE,
|
||||
P.PRS_PERSLID_NR,
|
||||
N.PRS_PERSLID_NAAM_FULL,
|
||||
K.PRS_KOSTENSOORT_REFCODE,
|
||||
F.FIN_FACTUUR_TOTAAL + F.FIN_FACTUUR_TOTAAL_BTW AS BedragInclBTW,
|
||||
K.PRS_KOSTENSOORT_OMS,
|
||||
O.INS_DEEL_OMSCHRIJVING
|
||||
FROM fin_factuur f,
|
||||
cnt_contract c,
|
||||
prs_perslid p,
|
||||
PRS_V_PERSLID_FULLNAMES_ALL n,
|
||||
prs_kostensoort k,
|
||||
cnt_contract_object a,
|
||||
ins_deel o,
|
||||
ins_tab_discipline d
|
||||
WHERE F.CNT_CONTRACT_KEY = C.CNT_CONTRACT_KEY
|
||||
AND C.CNT_PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
|
||||
AND P.PRS_PERSLID_KEY = N.PRS_PERSLID_KEY
|
||||
AND D.PRS_KOSTENSOORT_KEY = K.PRS_KOSTENSOORT_KEY
|
||||
AND C.CNT_CONTRACT_KEY = A.CNT_CONTRACT_KEY
|
||||
AND A.CNT_INS_DEEL_KEY = O.INS_DEEL_KEY
|
||||
AND C.INS_DISCIPLINE_KEY = D.INS_DISCIPLINE_KEY
|
||||
AND D.PRS_KOSTENSOORT_KEY = 382;
|
||||
|
||||
|
||||
CREATE OR REPLACE FORCE VIEW UWVA_V_FACTUURREG_SOORT
|
||||
(
|
||||
FACTUURREG_SOORT_CODE,
|
||||
FACTUURREG_SOORT_OMSCHR
|
||||
)
|
||||
AS
|
||||
SELECT U.FAC_USRDATA_KEY,
|
||||
CONCAT (U.FAC_USRDATA_CODE, (CONCAT (' ', U.FAC_USRDATA_OMSCHR)))
|
||||
AS OMSCHR
|
||||
FROM fac_USRDATA u
|
||||
WHERE U.FAC_USRTAB_KEY IN (1225, 1227)
|
||||
AND U.FAC_USRDATA_VERWIJDER IS NULL;
|
||||
|
||||
COMMIT;
|
||||
|
||||
BEGIN
|
||||
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
|
||||
END;
|
||||
/
|
||||
|
||||
BEGIN adm.systrackscriptId('$Id$'); END;;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
spool off
|
||||
Reference in New Issue
Block a user