4330 lines
166 KiB
SQL
4330 lines
166 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
|
||
|
||
DEFINE thisfile = 'YASK.SQL'
|
||
DEFINE dbuser = 'YASK'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PACKAGE YASK
|
||
AS
|
||
|
||
FUNCTION geen_opslag (p_opdr_key IN NUMBER)
|
||
RETURN NUMBER;
|
||
|
||
FUNCTION bepaal_opslag (p_opdr_key IN NUMBER)
|
||
RETURN NUMBER;
|
||
|
||
FUNCTION bepaal_srtopslag (p_opdr_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION bepaal_fin_district (p_fin_key IN NUMBER)
|
||
RETURN NUMBER;
|
||
|
||
FUNCTION bepaal_fin_gebouw (p_fin_key IN NUMBER)
|
||
RETURN NUMBER;
|
||
|
||
PROCEDURE set_verkoopprijs (p_opdr_key IN NUMBER);
|
||
|
||
PROCEDURE fin_set_approver (p_factuur_key IN NUMBER);
|
||
|
||
PROCEDURE add_xml_row (p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2);
|
||
|
||
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2);
|
||
|
||
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER,
|
||
p_kenmerk_waarde IN VARCHAR2,
|
||
p_history IN NUMBER);
|
||
|
||
PROCEDURE self_register_hook (p_perslid_key IN NUMBER);
|
||
|
||
FUNCTION altrecht_get_mld_stdmelding (p_meldingtype VARCHAR,
|
||
p_categorie VARCHAR,
|
||
p_subcategorie VARCHAR)
|
||
RETURN NUMBER;
|
||
|
||
-- Routines voor de koppeling van Altrecht met TOPdesk voor reserveringen
|
||
PROCEDURE upsert_resroom (p_locId IN VARCHAR2, p_roomName VARCHAR2, p_roomNr VARCHAR2, p_roomId IN VARCHAR2);
|
||
|
||
FUNCTION get_resroom (p_roomId IN VARCHAR2)
|
||
RETURN NUMBER;
|
||
|
||
PROCEDURE upsert_artikelkenmerk (p_artId IN VARCHAR2, p_artOpm VARCHAR2);
|
||
|
||
-- Einde Altrecht
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE BODY YASK
|
||
AS
|
||
|
||
FUNCTION geen_opslag (p_opdr_key IN NUMBER)
|
||
RETURN NUMBER
|
||
AS
|
||
|
||
v_geen_opslag NUMBER;
|
||
|
||
BEGIN
|
||
|
||
SELECT FAC.safe_to_number(ko.mld_kenmerkopdr_waarde)
|
||
INTO v_geen_opslag
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_kenmerk_key = 21 -- Geen opslag
|
||
AND ko.mld_opdr_key = p_opdr_key;
|
||
|
||
RETURN v_geen_opslag;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
|
||
|
||
FUNCTION bepaal_opslag (p_opdr_key IN NUMBER)
|
||
RETURN NUMBER
|
||
AS
|
||
|
||
|
||
v_geen_opslag NUMBER;
|
||
v_opslag NUMBER;
|
||
v_opdr_mat NUMBER;
|
||
|
||
v_locatie_key ALG_LOCATIE.ALG_LOCATIE_KEY%TYPE;
|
||
v_srtdiscipline_key INS_SRTDISCIPLINE.INS_SRTDISCIPLINE_KEY%TYPE;
|
||
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
|
||
v_kostensoort_key PRS_KOSTENSOORT.PRS_KOSTENSOORT_KEY%TYPE;
|
||
v_bedrijf_key MLD_OPDR.MLD_UITVOERENDE_KEYS%TYPE;
|
||
v_melding_datum MLD_MELDING.MLD_MELDING_DATUM%TYPE;
|
||
|
||
BEGIN
|
||
|
||
v_geen_opslag := YASK.geen_opslag(p_opdr_key);
|
||
|
||
IF v_geen_opslag = 1 THEN
|
||
RETURN NULL;
|
||
END IF;
|
||
|
||
-- In het geval er materiaal regels aan de opdracht zitten rekenen we geen opslag.
|
||
-- De materiaal regels bevatten namelijk een prijs incl opslag.
|
||
-- Als de kostensoort bij de opdracht ingevuld is dan is dit de waarde die we gebruiken.
|
||
SELECT count(*)
|
||
INTO v_opdr_mat
|
||
FROM mld_opdr_materiaal om
|
||
WHERE om.mld_opdr_key = p_opdr_key;
|
||
|
||
IF v_opdr_mat > 0
|
||
THEN
|
||
RETURN NULL;
|
||
END IF;
|
||
|
||
SELECT m.mld_alg_locatie_key,
|
||
sd.ins_srtdiscipline_key,
|
||
d.ins_discipline_key,
|
||
COALESCE(o.prs_kostensoort_key, std.prs_kostensoort_key),
|
||
mld_melding_datum,
|
||
mld_uitvoerende_keys
|
||
INTO v_locatie_key, v_srtdiscipline_key, v_discipline_key, v_kostensoort_key, v_melding_datum, v_bedrijf_key
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_opdr_key = p_opdr_key;
|
||
|
||
-- Controleer of het leveranciersnummer is ingevuld in de opslag tabel. Dan
|
||
-- geldt deze als eerste.
|
||
SELECT MAX(opslag)
|
||
INTO v_opslag
|
||
FROM yask_imp_opslag
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND prs_bedrijf_key = v_bedrijf_key
|
||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_melding_datum >= ingangsdatum)
|
||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_melding_datum < einddatum+1)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_melding_datum BETWEEN ingangsdatum AND einddatum+1)
|
||
)
|
||
AND imp_opslag_verwijder IS NULL;
|
||
|
||
IF v_opslag IS NOT NULL
|
||
THEN
|
||
RETURN v_opslag;
|
||
END IF;
|
||
|
||
-- Controleer of de NEN code is ingevuld in de opslag tabel. Dan
|
||
-- geldt deze altijd.
|
||
SELECT MAX(opslag)
|
||
INTO v_opslag
|
||
FROM yask_imp_opslag
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND prs_bedrijf_key IS NULL
|
||
AND prs_kostensoort_key = v_kostensoort_key
|
||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_melding_datum >= ingangsdatum)
|
||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_melding_datum < einddatum+1)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_melding_datum BETWEEN ingangsdatum AND einddatum+1)
|
||
)
|
||
AND imp_opslag_verwijder IS NULL;
|
||
|
||
IF v_opslag IS NOT NULL
|
||
THEN
|
||
RETURN v_opslag;
|
||
END IF;
|
||
|
||
-- Controleer of de vakgroep icm vakgroeptype is ingevuld in de opslag tabel.
|
||
SELECT MAX(opslag)
|
||
INTO v_opslag
|
||
FROM yask_imp_opslag
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND prs_bedrijf_key IS NULL
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_melding_datum >= ingangsdatum)
|
||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_melding_datum < einddatum +1)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_melding_datum BETWEEN ingangsdatum AND einddatum+1)
|
||
)
|
||
AND imp_opslag_verwijder IS NULL;
|
||
|
||
IF v_opslag IS NOT NULL
|
||
THEN
|
||
RETURN v_opslag;
|
||
END IF;
|
||
|
||
-- Controleer of de vakgroeptype is ingevuld in de opslag tabel.
|
||
SELECT MAX(opslag)
|
||
INTO v_opslag
|
||
FROM yask_imp_opslag
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND prs_bedrijf_key IS NULL
|
||
AND ins_srtdiscipline_key = v_srtdiscipline_key
|
||
AND ins_discipline_key IS NULL
|
||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_melding_datum >= ingangsdatum)
|
||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_melding_datum < einddatum +1)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_melding_datum BETWEEN ingangsdatum AND einddatum+1)
|
||
)
|
||
AND imp_opslag_verwijder IS NULL;
|
||
|
||
IF v_opslag IS NOT NULL
|
||
THEN
|
||
RETURN v_opslag;
|
||
END IF;
|
||
|
||
-- Dan houden we nog <20><>n optie over en dat is een lege regel.
|
||
SELECT MAX(opslag)
|
||
INTO v_opslag
|
||
FROM yask_imp_opslag
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND prs_bedrijf_key IS NULL
|
||
AND ins_srtdiscipline_key IS NULL
|
||
AND ins_discipline_key IS NULL
|
||
AND prs_kostensoort_key IS NULL
|
||
AND ( (ingangsdatum IS NULL AND einddatum IS NULL)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NULL AND v_melding_datum >= ingangsdatum)
|
||
OR (ingangsdatum IS NULL AND einddatum IS NOT NULL AND v_melding_datum < einddatum +1)
|
||
OR (ingangsdatum IS NOT NULL AND einddatum IS NOT NULL AND v_melding_datum BETWEEN ingangsdatum AND einddatum+1)
|
||
)
|
||
AND imp_opslag_verwijder IS NULL;
|
||
|
||
IF v_opslag IS NOT NULL
|
||
THEN
|
||
RETURN v_opslag;
|
||
END IF;
|
||
|
||
RETURN NULL;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
|
||
FUNCTION bepaal_srtopslag (p_opdr_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
|
||
v_geen_opslag NUMBER;
|
||
v_srtopslag ALG_KENMERK.ALG_KENMERK_OMSCHRIJVING%TYPE;
|
||
|
||
v_locatie_key ALG_LOCATIE.ALG_LOCATIE_KEY%TYPE;
|
||
v_srtdiscipline_key INS_SRTDISCIPLINE.INS_SRTDISCIPLINE_KEY%TYPE;
|
||
v_discipline_key INS_TAB_DISCIPLINE.INS_DISCIPLINE_KEY%TYPE;
|
||
v_kostensoort_key PRS_KOSTENSOORT.PRS_KOSTENSOORT_KEY%TYPE;
|
||
|
||
BEGIN
|
||
|
||
v_geen_opslag := YASK.geen_opslag(p_opdr_key);
|
||
|
||
IF v_geen_opslag = 1 THEN
|
||
RETURN NULL;
|
||
END IF;
|
||
|
||
SELECT alg_kenmerk_omschrijving
|
||
INTO v_srtopslag
|
||
FROM alg_onrgoedkenmerk aogk,
|
||
alg_kenmerk ak,
|
||
mld_melding m,
|
||
mld_opdr o,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND aogk.alg_kenmerk_key = ak.alg_kenmerk_key
|
||
AND aogk.alg_kenmerk_key =
|
||
DECODE (sd.ins_srtdiscipline_omschrijving, 'Projecten', 1002,
|
||
DECODE (d.ins_discipline_omschrijving, 'Schoonmaak', 1003, 1000))
|
||
AND aogk.alg_onrgoed_key = m.mld_alg_locatie_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_opdr_key = p_opdr_key;
|
||
|
||
RETURN v_srtopslag;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
|
||
-- deze functie bepaald aan de hand van de factuur_key het district en daarmee de administratie
|
||
-- waaronder deze factuur geboekt gaat worden.
|
||
FUNCTION bepaal_fin_district (p_fin_key IN NUMBER)
|
||
RETURN NUMBER
|
||
AS
|
||
v_district_key NUMBER;
|
||
BEGIN
|
||
SELECT alg_district_key
|
||
INTO v_district_key
|
||
FROM fin_factuur f, mld_opdr o, mld_melding m, alg_locatie l
|
||
WHERE f.fin_factuur_key = p_fin_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key;
|
||
RETURN v_district_key;
|
||
END;
|
||
|
||
-- deze functie bepaald aan de hand van de factuur_key het gebouw.
|
||
FUNCTION bepaal_fin_gebouw (p_fin_key IN NUMBER)
|
||
RETURN NUMBER
|
||
AS
|
||
v_gebouw_key NUMBER;
|
||
BEGIN
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM fin_factuur f, mld_opdr o, mld_melding m, alg_v_onroerendgoed aog
|
||
WHERE f.fin_factuur_key = p_fin_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys;
|
||
RETURN v_gebouw_key;
|
||
END;
|
||
|
||
-- Vul het kenmerk verkoopprijs (key 201) bij de opdracht
|
||
PROCEDURE set_verkoopprijs (p_opdr_key IN NUMBER)
|
||
AS
|
||
|
||
v_opdr_kosten NUMBER;
|
||
v_verkoopprijs NUMBER;
|
||
v_opslag NUMBER;
|
||
|
||
BEGIN
|
||
|
||
SELECT mld_opdr_kosten
|
||
INTO v_opdr_kosten
|
||
FROM mld_opdr o
|
||
WHERE mld_opdr_key = p_opdr_key;
|
||
|
||
v_opslag := YASK.bepaal_opslag(p_opdr_key);
|
||
|
||
IF v_opslag = 0
|
||
THEN
|
||
v_verkoopprijs := NULL;
|
||
ELSE
|
||
v_verkoopprijs := v_opdr_kosten * ((100 + v_opslag) /100);
|
||
END IF;
|
||
MLD.upsertopdrachtkenmerk (201, p_opdr_key, v_verkoopprijs);
|
||
END;
|
||
|
||
PROCEDURE fin_set_approver (p_factuur_key IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
v_perslid_key_beh mld_opdr.prs_perslid_key%TYPE;
|
||
v_perslid_key_goedkeur fin_factuur.prs_perslid_key_goedkeur%TYPE;
|
||
v_factuur_statuses_key fin_factuur.fin_factuur_statuses_key%TYPE;
|
||
v_factuur_totaal fin_factuur.fin_factuur_totaal%TYPE;
|
||
v_perslid_naam_goedkeur VARCHAR2 (100);
|
||
v_opdr_key mld_opdr.mld_opdr_key%TYPE;
|
||
v_contract_key cnt_contract.cnt_contract_key%TYPE;
|
||
v_bestelopdr_key bes_bestelopdr.bes_bestelopdr_key%TYPE;
|
||
v_eerste_fiatteur prs_perslid.prs_perslid_key%TYPE;
|
||
v_tweede_fiatteur prs_perslid.prs_perslid_key%TYPE;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
BEGIN
|
||
-- Contracten worden nog niet meegenomen in deze functie
|
||
IF YASK.bepaal_fin_district(p_factuur_key) = 301
|
||
THEN
|
||
-- Levanto, mag verwijderd worden YASK#76545
|
||
v_eerste_fiatteur := 5441; -- Mark Vonken
|
||
v_tweede_fiatteur := 5442; -- Pepijn Reijnders
|
||
ELSE
|
||
-- Renewi
|
||
v_eerste_fiatteur := 10581; -- Jesper van Kollenburg
|
||
v_tweede_fiatteur := 10141; -- Walter van der Wilt
|
||
END IF;
|
||
v_count := 0;
|
||
|
||
v_errorhint := 'Bepaal type factuur';
|
||
-- Laten we eens eerst kijken of we het over een contract of een opdracht hebben
|
||
SELECT mld_opdr_key, cnt_contract_key, bes_bestelopdr_key, fin_factuur_statuses_key, fin_factuur_totaal
|
||
INTO v_opdr_key, v_contract_key, v_bestelopdr_key, v_factuur_statuses_key, v_factuur_totaal
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
-- We kennen op dit moment nog geen functionaliteit voor bestelopdrachten
|
||
IF v_opdr_key IS NOT NULL OR v_contract_key IS NOT NULL
|
||
THEN
|
||
|
||
IF v_factuur_statuses_key = 2 -- ingevoerd
|
||
THEN
|
||
-- kijk of de gebouwcoordinator FINGOE rechten heeft
|
||
-- Wie is de gebouwcoordinator?
|
||
v_errorhint := 'Kijk of de gebouwcoordinator is';
|
||
SELECT prs_perslid_key_verantw, prs_perslid_naam_friendly
|
||
INTO v_perslid_key_beh, v_perslid_naam_goedkeur
|
||
FROM alg_gebouw g, prs_v_perslid_fullnames pf
|
||
WHERE g.alg_gebouw_key = YASK.bepaal_fin_gebouw(p_factuur_key)
|
||
AND prs_perslid_key_verantw = pf.prs_perslid_key;
|
||
|
||
v_errorhint := 'Kijk of de gebouwcoordinator FINGOE rechten heeft';
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM fac_v_webgebruiker wg, fac_functie f
|
||
WHERE wg.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_FINGOE'
|
||
AND wg.prs_perslid_key = v_perslid_key_beh;
|
||
|
||
-- Behandelaar heeft rechten en goedkeurder was nog niet gezet.
|
||
IF v_count > 0 AND v_perslid_key_goedkeur IS NULL
|
||
THEN
|
||
-- Als status van de factuur nog ingevoerd is dan zetten we de status naar Ter goedkeuring (5)
|
||
v_errorhint := 'Zet de status naar Ter Goedkeuring';
|
||
fac.trackaction (
|
||
'FINFOK',
|
||
p_factuur_key,
|
||
3,
|
||
NULL,
|
||
'Expliciete goedkeuring door aangewezen goedkeurder: '
|
||
|| v_perslid_naam_goedkeur);
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 5
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
UPDATE fin_factuur
|
||
SET prs_perslid_key_goedkeur = v_perslid_key_beh
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
END IF;
|
||
|
||
ELSIF v_factuur_statuses_key = 5 -- ter goedkeuring
|
||
THEN
|
||
NULL;
|
||
ELSIF v_factuur_statuses_key = 6 -- akkoord
|
||
THEN
|
||
v_perslid_key_goedkeur := NULL;
|
||
|
||
IF v_factuur_totaal <= 15000
|
||
THEN
|
||
-- geen goedkeuring nodig
|
||
NULL;
|
||
ELSE
|
||
-- Heeft de eerste fiatteur de factuur al goedgekeurd?
|
||
v_errorhint := 'Heeft de eerste fiatteur de factuur al goedgekeurd?';
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINGOE'
|
||
AND t.prs_perslid_key = v_eerste_fiatteur
|
||
AND t.fac_tracking_refkey = p_factuur_key;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
-- bedrag is groter dan 15000 en de eerste fiatteur heeft nog niet goedgekeurd
|
||
v_perslid_key_goedkeur := v_eerste_fiatteur;
|
||
ELSIF v_factuur_totaal > 50000
|
||
THEN
|
||
-- De eerste fiatteur heeft goedgekeurd maar het bedrag is hoger dan 50000, dus de tweede fiatteur moet ook goedkeuren
|
||
-- Heeft de tweede fiatteur de factuur al goedgekeurd?
|
||
v_errorhint := 'Bedrag is hoger dan 50000';
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINGOE'
|
||
AND t.prs_perslid_key = v_tweede_fiatteur
|
||
AND t.fac_tracking_refkey = p_factuur_key;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
-- De tweede fiatteur heeft nog niet goedgekeurd
|
||
v_perslid_key_goedkeur := v_tweede_fiatteur;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_errorhint := 'Set status en goedkeurder';
|
||
IF v_perslid_key_goedkeur IS NOT NULL
|
||
THEN
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 5
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
UPDATE fin_factuur
|
||
SET prs_perslid_key_goedkeur = v_perslid_key_goedkeur
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
-- We sturen een notificatie naar de persoon die de factuur moet goedkeuren.
|
||
BEGIN
|
||
fac.putnotificationsrtprio(NULL, v_perslid_key_goedkeur, 'FIN2GO', p_factuur_key,
|
||
'Uw goedkeuring is vereist voor factuur '|| p_factuur_key,
|
||
NULL, NULL, NULL, NULL, 2, NULL);
|
||
END;
|
||
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('YASK.fin_set_approver', 'E', v_errormsg || ' (' || p_factuur_key || ')' , v_errorhint);
|
||
END;
|
||
|
||
PROCEDURE add_xml_row (
|
||
p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
v_index NUMBER;
|
||
BEGIN
|
||
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
||
INTO v_index
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = p_bestand;
|
||
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (p_bestand,
|
||
v_index,
|
||
p_regel);
|
||
END;
|
||
|
||
PROCEDURE add_xml_element (
|
||
p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask.add_xml_row(p_bestand,
|
||
'<' || p_tag || '>'
|
||
|| xml.char_to_html(p_value)
|
||
|| '</' || p_tag || '>');
|
||
END;
|
||
|
||
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER,
|
||
p_kenmerk_waarde IN VARCHAR2,
|
||
p_history IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
v_niveau VARCHAR2 (1);
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'PRS'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT prs_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE prs_kenmerklink
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE prs_kenmerklink
|
||
SET prs_kenmerklink_waarde = p_kenmerk_waarde
|
||
WHERE prs_link_key = p_link_key
|
||
AND prs_kenmerk_key = p_kenmerk_key
|
||
AND prs_kenmerklink_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO prs_kenmerklink (prs_kenmerk_key,
|
||
prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerklink_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'ALG'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT alg_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM alg_kenmerk
|
||
WHERE alg_kenmerk_key = p_kenmerk_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE alg_onrgoedkenmerk
|
||
SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde
|
||
WHERE alg_onrgoed_key = p_link_key
|
||
AND alg_kenmerk_key = p_kenmerk_key
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
|
||
alg_onrgoed_key,
|
||
alg_onrgoed_niveau,
|
||
alg_onrgoedkenmerk_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
v_niveau,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'BEZ'
|
||
THEN
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM bez_kenmerkwaarde
|
||
WHERE bez_bezoekers_key = p_link_key
|
||
AND bez_kenmerk_key = p_kenmerk_key
|
||
AND bez_kenmerkwaarde_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE bez_kenmerkwaarde
|
||
WHERE bez_bezoekers_key = p_link_key
|
||
AND bez_kenmerk_key = p_kenmerk_key
|
||
AND bez_kenmerkwaarde_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE bez_kenmerkwaarde
|
||
SET bez_kenmerkwaarde_waarde = p_kenmerk_waarde
|
||
WHERE bez_bezoekers_key = p_link_key
|
||
AND bez_kenmerk_key = p_kenmerk_key
|
||
AND bez_kenmerkwaarde_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO bez_kenmerkwaarde (bez_kenmerk_key,
|
||
bez_bezoekers_key,
|
||
bez_kenmerkwaarde_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
WHEN 'MLD'
|
||
THEN
|
||
-- melding- of opdrachtkenmerk?
|
||
SELECT mld_kenmerk_niveau
|
||
INTO v_niveau
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_key = p_kenmerk_key;
|
||
|
||
CASE v_niveau
|
||
WHEN 'O'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkopdr
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = p_kenmerk_waarde
|
||
WHERE mld_opdr_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
WHEN 'S'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE mld_kenmerkmelding
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE mld_kenmerkmelding
|
||
SET mld_kenmerkmelding_waarde = p_kenmerk_waarde
|
||
WHERE mld_melding_key = p_link_key
|
||
AND mld_kenmerk_key = p_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO mld_kenmerkmelding (mld_kenmerk_key,
|
||
mld_melding_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
END CASE;
|
||
|
||
WHEN 'FIN'
|
||
THEN
|
||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||
-- opgeslagen (da's dus redundant..?)
|
||
SELECT fin_kenmerk_type
|
||
INTO v_niveau
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_key = p_kenmerk_key;
|
||
|
||
|
||
IF v_niveau = 'F'
|
||
THEN
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE fin_kenmerkfactuur
|
||
SET fin_kenmerkfactuur_waarde = p_kenmerk_waarde
|
||
WHERE fin_factuur_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactuur (fin_kenmerk_key,
|
||
fin_factuur_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
-- Kenmerk bij factuurregel
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM fin_kenmerkfactregel
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE fin_kenmerkfactregel
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE fin_kenmerkfactregel
|
||
SET fin_kenmerkfactregel_waarde = p_kenmerk_waarde
|
||
WHERE fin_factuurregel_key = p_link_key
|
||
AND fin_kenmerk_key = p_kenmerk_key
|
||
AND fin_kenmerkfactregel_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
|
||
fin_factuurregel_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
WHEN 'RES'
|
||
THEN
|
||
-- res_rsv_ruimte kenmerk
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM res_kenmerkwaarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF p_kenmerk_waarde IS NULL
|
||
THEN
|
||
DELETE res_kenmerkwaarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
ELSE
|
||
UPDATE res_kenmerkwaarde
|
||
SET res_kenmerkreservering_waarde = p_kenmerk_waarde
|
||
WHERE res_rsv_ruimte_key = p_link_key
|
||
AND res_kenmerk_key = p_kenmerk_key
|
||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO res_kenmerkwaarde (res_kenmerk_key,
|
||
res_rsv_ruimte_key,
|
||
res_kenmerkreservering_waarde)
|
||
VALUES (p_kenmerk_key,
|
||
p_link_key,
|
||
p_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
END CASE;
|
||
END;
|
||
|
||
PROCEDURE self_register_hook (p_perslid_key IN NUMBER)
|
||
AS
|
||
v_ruimte_key NUMBER;
|
||
v_afdeling_key NUMBER;
|
||
v_groep_key NUMBER;
|
||
v_perslid_email PRS_PERSLID.PRS_PERSLID_EMAIL%TYPE;
|
||
|
||
BEGIN
|
||
|
||
SELECT MAX (kl.prs_link_key)
|
||
INTO v_afdeling_key
|
||
FROM prs_perslid p, prs_kenmerklink kl
|
||
WHERE kl.prs_kenmerk_key = 1041 -- Domein
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND LOWER(kl.prs_kenmerklink_waarde) =
|
||
SUBSTR (LOWER(p.prs_perslid_email),
|
||
INSTR (LOWER(p.prs_perslid_email), '@') + 1,
|
||
100)
|
||
AND p.prs_perslid_key = p_perslid_key;
|
||
|
||
-- Als we de afdeling niet kennen dan blijft de persoon onder onbekend.
|
||
IF v_afdeling_key IS NOT NULL
|
||
THEN
|
||
UPDATE prs_perslid
|
||
SET prs_afdeling_key = v_afdeling_key
|
||
WHERE prs_perslid_key = p_perslid_key;
|
||
END IF;
|
||
|
||
-- zoek de juiste werkplek voor deze persoon. Bij de afdeling staat in een kenmerk ook de ruimteaanduiding.
|
||
SELECT MAX (rg.alg_ruimte_key)
|
||
INTO v_ruimte_key
|
||
FROM prs_perslid p, prs_kenmerklink kld, prs_kenmerklink klr, alg_v_ruimte_gegevens rg
|
||
WHERE kld.prs_kenmerk_key = 1041 -- Domein
|
||
AND kld.prs_kenmerklink_verwijder IS NULL
|
||
AND LOWER(kld.prs_kenmerklink_waarde) =
|
||
SUBSTR (LOWER(p.prs_perslid_email),
|
||
INSTR (LOWER(p.prs_perslid_email), '@') + 1,
|
||
100)
|
||
AND klr.prs_kenmerk_key = 1060 -- Locatiecode-Ruimtenummer
|
||
AND klr.prs_kenmerklink_verwijder IS NULL
|
||
AND LOWER(klr.prs_kenmerklink_waarde) =
|
||
LOWER(rg.alg_locatie_code) || '-' || LOWER(rg.alg_ruimte_nr)
|
||
AND p.prs_perslid_key = p_perslid_key;
|
||
|
||
prs.movetoruimte (p_perslid_key, v_ruimte_key, 'A');
|
||
|
||
-- De medewerkers van Renewi gaan we onder een andere autorisatiegroep plaatsen
|
||
SELECT LOWER(prs_perslid_email)
|
||
INTO v_perslid_email
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = p_perslid_key;
|
||
|
||
SELECT MIN(fac_groep_key)
|
||
INTO v_groep_key
|
||
FROM fac_groep g
|
||
WHERE LOWER(fac_groep_externid) =
|
||
SUBSTR (v_perslid_email,
|
||
INSTR (v_perslid_email, '@'),
|
||
100)
|
||
AND NOT EXISTS (SELECT 1
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = p_perslid_key
|
||
AND gg.fac_groep_key = g.fac_groep_key);
|
||
|
||
IF v_groep_key IS NOT NULL
|
||
THEN
|
||
DELETE fac_gebruikersgroep WHERE prs_perslid_key = p_perslid_key;
|
||
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
VALUES (v_groep_key, p_perslid_key);
|
||
END IF;
|
||
|
||
END;
|
||
|
||
FUNCTION altrecht_get_mld_stdmelding (p_meldingtype VARCHAR,
|
||
p_categorie VARCHAR,
|
||
p_subcategorie VARCHAR)
|
||
RETURN NUMBER
|
||
AS
|
||
v_usrtab_key NUMBER;
|
||
v_stdmelding_key NUMBER;
|
||
BEGIN
|
||
v_usrtab_key := -1;
|
||
v_stdmelding_key := -1;
|
||
|
||
CASE UPPER (p_meldingtype)
|
||
WHEN 'KLACHT'
|
||
THEN
|
||
v_usrtab_key := 81;
|
||
WHEN 'STORING'
|
||
THEN
|
||
v_usrtab_key := 101;
|
||
WHEN 'AANVRAAG'
|
||
THEN
|
||
v_usrtab_key := 102;
|
||
ELSE
|
||
v_usrtab_key := -1;
|
||
END CASE;
|
||
|
||
IF v_usrtab_key <> -1
|
||
THEN
|
||
BEGIN
|
||
SELECT fac_usrdata_prijs
|
||
INTO v_stdmelding_key
|
||
FROM fac_usrdata ud
|
||
WHERE fac_usrtab_key = v_usrtab_key
|
||
AND SUBSTR(UPPER(fac_usrdata_omschr2),1,40) = UPPER (SUBSTR(p_subcategorie, 1,40))
|
||
AND UPPER (fac_usrdata_omschr) = UPPER (p_categorie);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_stdmelding_key := -1;
|
||
END;
|
||
END IF;
|
||
|
||
RETURN v_stdmelding_key;
|
||
END;
|
||
|
||
-- Routines voor de koppeling van Altrecht met TOPdesk voor reserveringen
|
||
PROCEDURE upsert_resroom (p_locId IN VARCHAR2, p_roomName VARCHAR2, p_roomNr VARCHAR2, p_roomId IN VARCHAR2)
|
||
AS
|
||
v_res_ruimte_key NUMBER;
|
||
v_ruimte_key NUMBER;
|
||
v_verdieping_key NUMBER;
|
||
v_gebouw_key NUMBER;
|
||
v_ruimte_opstel_key NUMBER;
|
||
v_gebouw_prefix VARCHAR2(1);
|
||
BEGIN
|
||
|
||
-- Zoek het gebouw waaronder we een vergaderzaal gaan toevoegen.
|
||
BEGIN
|
||
SELECT g.alg_gebouw_key, v.alg_verdieping_key, SUBSTR(alg_gebouw_naam, 1,1)
|
||
INTO v_gebouw_key, v_verdieping_key, v_gebouw_prefix
|
||
FROM alg_gebouw g, alg_verdieping v
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_code = '0'
|
||
AND alg_gebouw_externnr = p_locId;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN;
|
||
-- geen gebouw gevonden dat meedoet in de sync
|
||
END;
|
||
|
||
-- En nu kijken we of de reserveerbare zaal al bestaat.
|
||
BEGIN
|
||
SELECT res_ruimte_opstel_key, rr.res_ruimte_key
|
||
INTO v_ruimte_opstel_key, v_res_ruimte_key
|
||
FROM res_ruimte rr, res_ruimte_opstelling rro
|
||
WHERE rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND rro.res_opstelling_key = 11 -- standaard
|
||
AND res_ruimte_extern_id = p_roomId;
|
||
|
||
-- We kennen de reserveerbare zaal al. Dan gaan we de omschrijving updaten
|
||
-- want misschien is deze gewijzigd.
|
||
UPDATE res_ruimte
|
||
SET res_ruimte_nr = SUBSTR(v_gebouw_prefix || '-' || p_roomName,1,40),
|
||
res_ruimte_begintijd = 1,
|
||
res_ruimte_eindtijd = 23
|
||
WHERE res_ruimte_key = v_res_ruimte_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT g.alg_gebouw_key, v.alg_verdieping_key
|
||
INTO v_gebouw_key, v_verdieping_key
|
||
FROM alg_gebouw g, alg_verdieping v
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_code = '0'
|
||
AND alg_gebouw_externnr = p_locId;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
NULL;
|
||
return;
|
||
-- geen gebouw gevonden dat meedoet in de sync
|
||
END;
|
||
dbms_output.put_line('before alg_ruimte');
|
||
BEGIN
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_verdieping_key = v_verdieping_key
|
||
AND r.alg_ruimte_nr = SUBSTR(p_roomNr,1,20);
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
dbms_output.put_line('before insert alg_ruimte' || v_verdieping_key || '-' || p_roomNr || '-' || p_roomName);
|
||
INSERT INTO alg_ruimte (alg_verdieping_key, alg_ruimte_nr, alg_ruimte_omschrijving, alg_srtruimte_key)
|
||
VALUES(v_verdieping_key, SUBSTR(p_roomNr,1,20), SUBSTR(p_roomName,1,30), 12) -- onbekend
|
||
RETURNING alg_ruimte_key INTO v_ruimte_key;
|
||
END;
|
||
dbms_output.put_line('before res_ruimte');
|
||
-- AltrechtRuimten = 981
|
||
INSERT INTO res_ruimte (res_discipline_key,
|
||
res_ruimte_nr,
|
||
res_ruimte_omschrijving,
|
||
res_ruimte_extern_id,
|
||
res_ruimte_begintijd,
|
||
res_ruimte_eindtijd)
|
||
VALUES (981,
|
||
SUBSTR(v_gebouw_prefix || '-' || p_roomName,1,40),
|
||
null,
|
||
p_roomId,
|
||
1,
|
||
23)
|
||
RETURNING res_ruimte_key INTO v_res_ruimte_key;
|
||
dbms_output.put_line('before res_alg_ruimte' || v_res_ruimte_key || '-' || v_ruimte_key);
|
||
INSERT INTO res_alg_ruimte (res_ruimte_key, alg_ruimte_key)
|
||
VALUES (v_res_ruimte_key, v_ruimte_key);
|
||
dbms_output.put_line('before res_ruimte_opstelling');
|
||
INSERT INTO res_ruimte_opstelling (res_ruimte_key, res_opstelling_key, res_ruimte_opstel_default, res_ruimte_opstel_bezoekers)
|
||
VALUES (v_res_ruimte_key, 11, 1, 100)
|
||
RETURNING res_ruimte_opstel_key INTO v_ruimte_opstel_key;
|
||
END;
|
||
END;
|
||
|
||
|
||
FUNCTION get_resroom (p_roomId IN VARCHAR2)
|
||
RETURN NUMBER
|
||
AS
|
||
v_ruimte_opstel_key NUMBER;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT rr.res_ruimte_key
|
||
INTO v_ruimte_opstel_key
|
||
FROM res_ruimte rr, res_ruimte_opstelling rro
|
||
WHERE rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND rro.res_opstelling_key = 11 -- standaard
|
||
AND res_ruimte_extern_id = p_roomId;
|
||
RETURN v_ruimte_opstel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
RETURN NULL;
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE upsert_artikelkenmerk (p_artId IN VARCHAR2, p_artOpm VARCHAR2)
|
||
AS
|
||
v_artikel_key RES_ARTIKEL.RES_ARTIKEL_KEY%TYPE;
|
||
v_rsv_artikel_key RES_RSV_ARTIKEL.RES_RSV_ARTIKEL_KEY%TYPE;
|
||
v_srtkenmerk_key RES_SRTKENMERK.RES_SRTKENMERK_KEY%TYPE;
|
||
v_kenmerk_key RES_KENMERK.RES_KENMERK_KEY%TYPE;
|
||
v_kenmerkartikel_key RES_KENMERKARTIKEL.RES_KENMERKARTIKEL_KEY%TYPE;
|
||
BEGIN
|
||
|
||
-- Zoek het artikel op adhv de externe id
|
||
SELECT res_artikel_key, res_rsv_artikel_key
|
||
INTO v_artikel_key, v_rsv_artikel_key
|
||
FROM res_rsv_artikel
|
||
WHERE res_rsv_artikel_externnr = p_artId;
|
||
|
||
SELECT res_srtkenmerk_key
|
||
INTO v_srtkenmerk_key
|
||
FROM res_srtkenmerk
|
||
WHERE res_srtkenmerk_code = 'ARTIKELOPM';
|
||
-- Zoek het kenmerk op dat bij dit artikel hoort.
|
||
BEGIN
|
||
SELECT res_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM res_kenmerk k
|
||
WHERE k.res_srtkenmerk_key = v_srtkenmerk_key
|
||
AND k.res_artikel_key = v_artikel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO res_kenmerk (res_srtkenmerk_key, res_artikel_key, res_kenmerk_niveau, res_kenmerk_volgnummer)
|
||
VALUES (v_srtkenmerk_key, v_artikel_key, 'C', 100)
|
||
RETURNING res_kenmerk_key INTO v_kenmerk_key;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT res_kenmerkartikel_key
|
||
INTO v_kenmerkartikel_key
|
||
FROM res_kenmerkartikel
|
||
WHERE res_rsv_artikel_key = v_rsv_artikel_key
|
||
AND res_kenmerk_key = v_kenmerk_key;
|
||
|
||
UPDATE res_kenmerkartikel
|
||
SET res_kenmerkartikel_waarde = p_artOpm
|
||
WHERE res_kenmerkartikel_key = v_kenmerkartikel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO res_kenmerkartikel(res_rsv_artikel_key, res_kenmerk_key, res_kenmerkartikel_waarde)
|
||
VALUES (v_rsv_artikel_key, v_kenmerk_key, p_artOpm);
|
||
END;
|
||
EXCEPTION WHEN OTHERS THEN
|
||
fac.writelog ('YASK.upsert_artikelkenmerk', 'E', 'Kan opmerking niet toevoegen aan artikel (' || p_artId || ')' || p_artOpm , '');
|
||
END;
|
||
|
||
-- Einde Altrecht routines
|
||
END;
|
||
/
|
||
|
||
-- Notificatiejob om bezoekers van powerpacker een welkomsmail te sturen.
|
||
CREATE OR REPLACE VIEW yask_v_noti_pp_noti_bezoekers
|
||
AS
|
||
SELECT NULL sender,
|
||
NULL receiver,
|
||
'Welcome to PowerPacker' text,
|
||
'CUST02' code,
|
||
b.bez_bezoekers_key key,
|
||
NULL xkey,
|
||
bez_bezoekers_email xemail,
|
||
NULL xmobile,
|
||
LISTAGG (bijl.bijlage, '|')
|
||
WITHIN GROUP (ORDER BY bijl.bijlage) AS attachments
|
||
FROM bez_bezoekers b,
|
||
bez_afspraak a,
|
||
alg_locatie l,
|
||
(SELECT af.bez_afspraak_key, fac_bijlagen_key bijlage
|
||
FROM fac_v_bijlagen bij, bez_afspraak af
|
||
WHERE fac_bijlagen_module = 'ALG'
|
||
AND af.alg_locatie_key = bij.fac_bijlagen_refkey
|
||
AND ( (af.bez_actie_key = 1 AND bij.fac_bijlagen_kenmerk_key = 1141)
|
||
OR (af.bez_actie_key = 2 AND bij.fac_bijlagen_kenmerk_key = 1142)
|
||
OR (af.bez_actie_key = 3 AND bij.fac_bijlagen_kenmerk_key = 1140)
|
||
)) bijl,
|
||
(SELECT fac_notificatie_job_nextrun nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'YASK_V_NOTI_PP_NOTI_BEZOEKERS') n
|
||
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = 102 -- PowerPacker
|
||
AND a.bez_afspraak_key = bijl.bez_afspraak_key(+)
|
||
AND ( ( TRUNC(FAC.datumtijdplusuitvoertijd (SYSDATE, 2, 'D')) = TRUNC(bez_afspraak_datum)
|
||
AND TO_CHAR(SYSDATE, 'D') NOT IN (1,7) -- 1 zondag, 7 zaterdag
|
||
AND TRUNC(SYSDATE) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen)
|
||
AND TO_CHAR (nextrun, 'HH24:MI') = '16:00' -- we gaan om 16:00 uur de normale notificatie versturen
|
||
)
|
||
OR ( TRUNC(FAC.datumtijdplusuitvoertijd (SYSDATE, 2, 'D')) > TRUNC(bez_afspraak_datum)
|
||
AND b.bez_bezoekers_aanmaak > nextrun - 1/24
|
||
AND b.bez_bezoekers_aanmaak < nextrun -- De bezoekers die binnen 2 dagen aangemaakt worden krijgen direct een mail
|
||
)
|
||
)
|
||
GROUP BY alg_onrgoed_keys, a.bez_afspraak_key, b.bez_bezoekers_key, bez_bezoekers_email;
|
||
|
||
|
||
-- Rapport voor het doorbelasten van de kosten. Hier wordt ook een opslagperscentage in meegenomen.
|
||
-- Als het een project betreft is de vakgroep omschrijving Projecten
|
||
-- Als het om schoonmaak gaat heet de vakgroep Schoonmaak
|
||
-- En anders is het materiaal of subcontrating. Maar deze hebben hetzelfde tarief.
|
||
-- De tarieven staan bij de locatie vermeld in flexvelden.
|
||
CREATE OR REPLACE VIEW yask_v_kosten_doorbelasting
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer,
|
||
m.mld_melding_key,
|
||
l.alg_locatie_omschrijving meldinglocatie,
|
||
di.alg_district_omschrijving district,
|
||
pf.prs_perslid_naam_full melder,
|
||
sd.ins_srtdiscipline_omschrijving soortmelding,
|
||
d.ins_discipline_omschrijving productgroep,
|
||
std.mld_stdmelding_omschrijving subproductgroep,
|
||
ksm.prs_kostensoort_oms melding_nen_omschrijving,
|
||
ksm.prs_kostensoort_refcode melding_nen_code,
|
||
CASE
|
||
WHEN m.mld_melding_status = 5 AND m.mld_melding_afgerond = 1
|
||
THEN
|
||
'Afgerond'
|
||
ELSE
|
||
ms.mld_statuses_omschrijving
|
||
END
|
||
meldingstatus,
|
||
fs.fac_usrdata_omschr facturatiestatus,
|
||
m.mld_melding_datum meldingdatum,
|
||
MLD.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
m.mld_melding_omschrijving vomschrijving,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnummer,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
so.mld_statusopdr_omschrijving opdrachtstatus,
|
||
o.mld_opdr_omschrijving opdrachtomschrijving,
|
||
COALESCE(kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms) opdracht_nen_omschrijving,
|
||
b.prs_bedrijf_naam opdrachtuitvoerende,
|
||
o.mld_opdr_kosten opdrachtkosten,
|
||
YASK.bepaal_srtopslag(o.mld_opdr_key) soortopslag,
|
||
YASK.bepaal_opslag(o.mld_opdr_key) opslag,
|
||
o.mld_opdr_kosten * ((100 + COALESCE(YASK.bepaal_opslag(o.mld_opdr_key),0)) /100) kostenplusopslag,
|
||
YASK.geen_opslag(o.mld_opdr_key) geenopslag,
|
||
TO_CHAR(ADD_MONTHS(SYSDATE,
|
||
COALESCE((SELECT FAC.safe_to_number(alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aogk WHERE alg_kenmerk_key = 1060
|
||
AND alg_onrgoed_key = l.alg_district_key),0)),'yyyymm') boekmaand,
|
||
aog.alg_gebouw_naam meldinggebouw,
|
||
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 182) klant_inkoopordernr,
|
||
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 181) klant_kostenplaats,
|
||
(SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 183) klant_werkorder,
|
||
o.mld_opdr_key,
|
||
l.alg_district_key,
|
||
kso.prs_kostensoort_oms afw_opdracht_nen_omschrijving,
|
||
kso.prs_kostensoort_refcode afw_opdracht_nen_code
|
||
FROM prs_v_perslid_fullnames_all pf,
|
||
prs_kostensoort ksm,
|
||
mld_statuses ms,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr so,
|
||
prs_bedrijf b,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
prs_kostensoort kso,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
(SELECT mld_melding_key, fac_usrdata_omschr
|
||
FROM fac_usrdata ud, mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 1 -- Facturatiestatus
|
||
AND FAC.safe_to_number (mld_kenmerkmelding_waarde) =
|
||
ud.fac_usrdata_key) fs
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND std.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_melding_key = fs.mld_melding_key(+)
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
-- Levanto worden niet meegenomen in de proforma facturen, mag verwijderd worden YASK#76545
|
||
AND l.alg_district_key NOT IN (301);
|
||
|
||
CREATE OR REPLACE VIEW yask_v_kosten_doorb_frozen
|
||
AS
|
||
SELECT fin_verkoopfactuur_omschr meldingnummer,
|
||
fin_verkoopfactuur_n4 mld_melding_key,
|
||
l.alg_locatie_omschrijving meldinglocatie,
|
||
di.alg_district_omschrijving district,
|
||
pf.prs_perslid_naam_full melder,
|
||
fin_verkoopfactuur_c3 soortmelding,
|
||
fin_verkoopfactuur_c4 productgroep,
|
||
fin_verkoopfactuur_c5 subproductgroep,
|
||
fin_verkoopfactuur_c1 melding_nen_omschrijving,
|
||
fin_verkoopfactuur_c2 melding_nen_code,
|
||
ms.mld_statuses_omschrijving meldingstatus,
|
||
'Gefactureerd' facturatiestatus,
|
||
m.mld_melding_datum meldingdatum,
|
||
MLD.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
m.mld_melding_omschrijving vomschrijving,
|
||
fin_verkoopfactuur_id opdrachtnummer,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
so.mld_statusopdr_omschrijving opdrachtstatus,
|
||
o.mld_opdr_omschrijving opdrachtomschrijving,
|
||
COALESCE(vf.prs_kostensoort_oms, fin_verkoopfactuur_c1) opdracht_nen_omschrijving,
|
||
b.prs_bedrijf_naam opdrachtuitvoerende,
|
||
fin_verkoopfactuur_bedrag opdrachtkosten,
|
||
fin_verkoopfactuur_c6 soortopslag,
|
||
fin_verkoopfactuur_n2 opslag,
|
||
fin_verkoopfactuur_n3 kostenplusopslag,
|
||
fin_verkoopfactuur_n1 geenopslag,
|
||
fin_verkoopfactuur_maand boekmaand,
|
||
fin_verkoopfactuur_c7 klant_inkoopordernr,
|
||
fin_verkoopfactuur_c8 klant_kostenplaats,
|
||
prs_kostensoortgrp_oms klant_werkorder,
|
||
mld_opdr_key,
|
||
kso.prs_kostensoort_oms afw_opdracht_nen_omschrijving,
|
||
kso.prs_kostensoort_refcode afw_opdracht_nen_code
|
||
FROM fin_verkoopfactuur vf,
|
||
prs_v_perslid_fullnames_all pf,
|
||
mld_statuses ms,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr so,
|
||
prs_bedrijf b,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
mld_melding m,
|
||
prs_kostensoort kso
|
||
WHERE m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_melding_key = vf.fin_verkoopfactuur_n4
|
||
AND o.mld_opdr_key = vf.fin_verkoopfactuur_refkey
|
||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
|
||
-- Levanto (, mag verwijderd worden YASK#76545) en Renewi worden niet meegenomen in de proforma facturen
|
||
AND vf.fin_verkoopfactuur_n5 NOT IN (301, 501);
|
||
|
||
CREATE OR REPLACE VIEW yask_v_kosten_export_power_bi
|
||
AS
|
||
SELECT d.meldingnummer,
|
||
d.mld_melding_key,
|
||
d.meldinglocatie,
|
||
d.district,
|
||
u.melding_gebouw,
|
||
u.melding_gebouwcode,
|
||
d.melder,
|
||
d.soortmelding,
|
||
d.productgroep,
|
||
d.subproductgroep,
|
||
d.melding_nen_omschrijving,
|
||
d.melding_nen_code,
|
||
d.meldingstatus,
|
||
d.facturatiestatus,
|
||
d.meldingdatum,
|
||
d.afgemeld,
|
||
d.onderwerp,
|
||
d.vomschrijving,
|
||
d.opdrachtnummer,
|
||
d.opdrachttype,
|
||
d.opdrachtstatus,
|
||
d.opdrachtomschrijving,
|
||
d.opdracht_nen_omschrijving,
|
||
d.opdrachtuitvoerende,
|
||
d.opdrachtkosten,
|
||
d.soortopslag,
|
||
d.opslag,
|
||
d.kostenplusopslag,
|
||
d.geenopslag,
|
||
d.boekmaand,
|
||
d.klant_inkoopordernr,
|
||
d.klant_kostenplaats,
|
||
d.klant_werkorder,
|
||
d.mld_opdr_key,
|
||
u.sla_accpturen,
|
||
u.plan_uitvoertijd_sla,
|
||
u.accept_sla_dagen,
|
||
u.accept_sla_uren,
|
||
u.afspraak_sla_dagen,
|
||
u.accept_sla_optijd,
|
||
u.uitvoering_sla_optijd,
|
||
u.afspraak_sla_optijd,
|
||
u.melding_afgemeld datum_afgemeld,
|
||
u.melding_accepted datum_acceptatie,
|
||
u.melding_datum datum_aanmaak,
|
||
u.fclt_3d_locatie_key,
|
||
d.afw_opdracht_nen_omschrijving,
|
||
d.afw_opdracht_nen_code
|
||
FROM yask_v_kosten_doorbelasting d, mld_v_udr_melding u
|
||
WHERE meldingstatus <> 'Historie'
|
||
AND d.mld_melding_key = u.melding_key
|
||
UNION ALL
|
||
SELECT f.meldingnummer,
|
||
f.mld_melding_key,
|
||
f.meldinglocatie,
|
||
f.district,
|
||
u.melding_gebouw,
|
||
u.melding_gebouwcode,
|
||
f.melder,
|
||
f.soortmelding,
|
||
f.productgroep,
|
||
f.subproductgroep,
|
||
f.melding_nen_omschrijving,
|
||
f.melding_nen_code,
|
||
f.meldingstatus,
|
||
f.facturatiestatus,
|
||
f.meldingdatum,
|
||
f.afgemeld,
|
||
f.onderwerp,
|
||
f.vomschrijving,
|
||
f.opdrachtnummer,
|
||
f.opdrachttype,
|
||
f.opdrachtstatus,
|
||
f.opdrachtomschrijving,
|
||
f.opdracht_nen_omschrijving,
|
||
f.opdrachtuitvoerende,
|
||
f.opdrachtkosten,
|
||
f.soortopslag,
|
||
f.opslag,
|
||
f.kostenplusopslag,
|
||
f.geenopslag,
|
||
f.boekmaand,
|
||
f.klant_inkoopordernr,
|
||
f.klant_kostenplaats,
|
||
f.klant_werkorder,
|
||
f.mld_opdr_key,
|
||
u.sla_accpturen,
|
||
u.plan_uitvoertijd_sla,
|
||
u.accept_sla_dagen,
|
||
u.accept_sla_uren,
|
||
u.afspraak_sla_dagen,
|
||
u.accept_sla_optijd,
|
||
u.uitvoering_sla_optijd,
|
||
u.afspraak_sla_optijd,
|
||
u.melding_afgemeld datum_afgemeld,
|
||
u.melding_accepted datum_acceptatie,
|
||
u.melding_datum datum_aanmaak,
|
||
u.fclt_3d_locatie_key,
|
||
f.afw_opdracht_nen_omschrijving,
|
||
f.afw_opdracht_nen_code
|
||
FROM yask_v_kosten_doorb_frozen f, mld_v_udr_melding u
|
||
WHERE f.mld_melding_key = u.melding_key;
|
||
|
||
-- View met de resultaten van uitgevoerde en geplande inspecties
|
||
-- gecombineerd met nog uit te voeren inspecties.
|
||
CREATE OR REPLACE VIEW yask_v_deelsrtcontrole_mi
|
||
AS
|
||
SELECT ins_deel_key
|
||
deel_key,
|
||
dg.ins_discipline_omschrijving
|
||
discipline,
|
||
ins_srtdeel_omschrijving
|
||
soort,
|
||
ins_srtgroep_omschrijving
|
||
groep,
|
||
ins_srtdeel_upper
|
||
soortcode,
|
||
ins_deel_omschrijving
|
||
omschrijving,
|
||
ins_deel_opmerking
|
||
opmerking,
|
||
l.alg_locatie_omschrijving
|
||
locatie_omschrijving,
|
||
alg_gebouw_omschrijving
|
||
gebouw,
|
||
alg_ruimte_nr
|
||
ruimtenr,
|
||
ins_deel_aantal
|
||
aantal,
|
||
ins_srtcontrole_omschrijving
|
||
srtcontrole_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
NULL
|
||
ins_deelsrtcontrole_datum,
|
||
NULL
|
||
controlemode_omschrijving,
|
||
NULL
|
||
ins_deelsrtcontrole_opmerking,
|
||
NULL
|
||
perslid,
|
||
INS.nextcyclusdate (ins_deel_key, ins_srtcontrole_key, 1)
|
||
ins_deelsrtcontrole_datum_org,
|
||
NULL
|
||
ins_deelsrtcontrole_plandatum,
|
||
'Niet gepland'
|
||
deelsrtcontrole_status
|
||
FROM ins_v_deel_gegevens dg,
|
||
ins_srtcontrole sc,
|
||
ctr_discipline d,
|
||
alg_locatie l
|
||
WHERE dg.alg_locatie_key = l.alg_locatie_key
|
||
AND sc.ctr_discipline_key = d.ins_discipline_key
|
||
AND ( ( ins_srtcontrole_niveau = 'S'
|
||
AND ins_srtinstallatie_key = dg.ins_srtdeel_key)
|
||
OR ( ins_srtcontrole_niveau = 'G'
|
||
AND ins_srtinstallatie_key = dg.ins_srtgroep_key)
|
||
OR ( ins_srtcontrole_niveau = 'D'
|
||
AND ins_srtinstallatie_key = dg.ins_discipline_key))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM ins_v_udr_deelinspect di
|
||
WHERE deelsrtcontrole_status = 'Gepland'
|
||
AND di.deel_key = dg.ins_deel_key
|
||
AND di.ins_srtcontrole_key = sc.ins_srtcontrole_key)
|
||
UNION ALL
|
||
SELECT deel_key,
|
||
discipline,
|
||
soort,
|
||
groep,
|
||
soortcode,
|
||
omschrijving,
|
||
opmerking,
|
||
locatie_omschrijving,
|
||
gebouw,
|
||
ruimtenr,
|
||
aantal,
|
||
srtcontrole_omschrijving,
|
||
ctr_discipline_omschrijving,
|
||
ins_deelsrtcontrole_datum,
|
||
controlemode_omschrijving,
|
||
ins_deelsrtcontrole_opmerking,
|
||
perslid,
|
||
ins_deelsrtcontrole_datum_org,
|
||
ins_deelsrtcontrole_plandatum,
|
||
deelsrtcontrole_status
|
||
FROM ins_v_udr_deelinspect;
|
||
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma (
|
||
result,
|
||
result_order,
|
||
alg_district_key
|
||
)
|
||
AS
|
||
SELECT 'meldingnummer;' ||
|
||
'meldinglocatie;' ||
|
||
'melder;' ||
|
||
'soortmelding;' ||
|
||
'productgroep;' ||
|
||
'subproductgroep;' ||
|
||
'melding_nen_omschrijving;' ||
|
||
'melding_nen_code;' ||
|
||
'meldingstatus;' ||
|
||
'facturatiestatus;' ||
|
||
'meldingdatum;' ||
|
||
'afgemeld;' ||
|
||
'onderwerp;' ||
|
||
'vomschrijving;' ||
|
||
'opdrachtnummer;' ||
|
||
'opdrachttype;' ||
|
||
'opdrachtstatus;' ||
|
||
'opdrachtomschrijving;' ||
|
||
'opdracht_nen_omschrijving;' ||
|
||
'opdrachtuitvoerende;' ||
|
||
'opdrachtkosten;' ||
|
||
'soortopslag;' ||
|
||
'opslag;' ||
|
||
'kostenplusopslag;' ||
|
||
'geenopslag;' ||
|
||
'boekmaand;' ||
|
||
'meldinggebouw;' ||
|
||
'klant_inkoopordernr;' ||
|
||
'klant_kostenplaats;' ||
|
||
'klant_werkorder;', -1, alg_district_key
|
||
FROM alg_district
|
||
UNION ALL
|
||
SELECT meldingnummer || ';' ||
|
||
meldinglocatie || ';' ||
|
||
melder || ';' ||
|
||
soortmelding || ';' ||
|
||
productgroep || ';' ||
|
||
subproductgroep || ';' ||
|
||
melding_nen_omschrijving || ';' ||
|
||
melding_nen_code || ';' ||
|
||
meldingstatus || ';' ||
|
||
facturatiestatus || ';' ||
|
||
TO_CHAR(meldingdatum, 'DD-MM-YYYY') || ';' ||
|
||
TO_CHAR(afgemeld, 'DD-MM-YYYY') || ';' ||
|
||
'"' || REPLACE(onderwerp, '"') || '"' || ';' ||
|
||
'"' || TO_CHAR(SUBSTR(REPLACE(vomschrijving, '"'),1,300)) || '"' || ';' ||
|
||
opdrachtnummer || ';' ||
|
||
opdrachttype || ';' ||
|
||
opdrachtstatus || ';' ||
|
||
'"' || SUBSTR(REPLACE(opdrachtomschrijving, '"'),1,300) || '"' || ';' ||
|
||
opdracht_nen_omschrijving || ';' ||
|
||
opdrachtuitvoerende || ';' ||
|
||
REPLACE(opdrachtkosten, '.', ',') || ';' ||
|
||
soortopslag || ';' ||
|
||
opslag || ';' ||
|
||
REPLACE(kostenplusopslag, '.', ',') || ';' ||
|
||
geenopslag || ';' ||
|
||
boekmaand || ';' ||
|
||
meldinggebouw || ';' ||
|
||
klant_inkoopordernr || ';' ||
|
||
klant_kostenplaats || ';' ||
|
||
klant_werkorder,
|
||
mld_melding_key,
|
||
alg_district_key
|
||
FROM yask_v_kosten_doorbelasting
|
||
WHERE facturatiestatus = 'Gereed voor facturatie';
|
||
|
||
-- Procedure om pro-forma factuur klaar te zetten.
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_district_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT mld_melding_key
|
||
FROM yask_v_kosten_doorbelasting
|
||
WHERE meldingstatus = 'Afgerond'
|
||
--AND COALESCE(facturatiestatus, 'Onbekend') <> 'Gefactureerd'
|
||
AND meldingstatus <> 'Historie'
|
||
AND alg_district_key = p_district_key
|
||
GROUP BY mld_melding_key;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_boekmaand VARCHAR2 (10);
|
||
|
||
BEGIN
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
SELECT TO_CHAR (
|
||
ADD_MONTHS (
|
||
SYSDATE,
|
||
COALESCE (
|
||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE alg_kenmerk_key = 1060 -- boekmaand offset
|
||
AND alg_onrgoed_key = d.alg_district_key),
|
||
0)),
|
||
'yyyymm')
|
||
INTO v_boekmaand
|
||
FROM alg_district d
|
||
WHERE alg_district_key = p_district_key;
|
||
|
||
ALG.upsertkenmerk (1200, p_district_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly datum pro forma
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- zet de melding op status 'Gereed voor facturatie'
|
||
MLD.upsertmeldingkenmerk (1, rec.mld_melding_key, 1); -- Facturatiestatus naar Gereed voor facturatie
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'Fout bij aanmaken pro forma factuur' || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', rec.mld_melding_key || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verwerk (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_district_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT mld_melding_key
|
||
FROM yask_v_kosten_doorbelasting
|
||
WHERE meldingstatus = 'Afgerond'
|
||
AND facturatiestatus = 'Gereed voor facturatie'
|
||
AND alg_district_key = p_district_key
|
||
GROUP BY mld_melding_key;
|
||
|
||
CURSOR c_opdr (c_melding_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM yask_v_kosten_doorbelasting
|
||
WHERE mld_melding_key = c_melding_key;
|
||
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_boekmaand VARCHAR2 (10);
|
||
|
||
BEGIN
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
-- YASK#68837 We halen de boekmaand niet meer uit het kenmerk bij het district maar we gaan deze
|
||
-- opnieuw berekenen.
|
||
SELECT TO_CHAR (
|
||
ADD_MONTHS (
|
||
SYSDATE,
|
||
COALESCE (
|
||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||
FROM alg_onrgoedkenmerk aogk
|
||
WHERE alg_kenmerk_key = 1060 -- boekmaand offset
|
||
AND alg_onrgoed_key = d.alg_district_key),
|
||
0)),
|
||
'yyyymm')
|
||
INTO v_boekmaand
|
||
FROM alg_district d
|
||
WHERE alg_district_key = p_district_key;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
|
||
-- zet de melding op facturatie status 'Gefactureerd'
|
||
MLD.upsertmeldingkenmerk (1, rec.mld_melding_key, 2);
|
||
|
||
-- We gaan eerst alle onderliggende opdrachten op verwerkt zetten.
|
||
FOR rec1 IN c_opdr(rec.mld_melding_key)
|
||
LOOP
|
||
BEGIN
|
||
-- bevries de factuurgegevens in de verkooptabel.
|
||
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuur_aanmaak,
|
||
fin_verkoopfactuur_id,
|
||
fin_verkoopfactuur_datum,
|
||
fin_verkoopfactuur_omschr,
|
||
fin_verkoopfactuur_xmlnode,
|
||
fin_verkoopfactuur_refkey,
|
||
prs_kostensoort_oms,
|
||
fin_verkoopfactuur_bedrag,
|
||
fin_verkoopfactuur_maand,
|
||
fin_verkoopfactuur_n1,
|
||
fin_verkoopfactuur_n2,
|
||
fin_verkoopfactuur_n3,
|
||
fin_verkoopfactuur_n4,
|
||
fin_verkoopfactuur_n5,
|
||
fin_verkoopfactuur_c1,
|
||
fin_verkoopfactuur_c2,
|
||
fin_verkoopfactuur_c3,
|
||
fin_verkoopfactuur_c4,
|
||
fin_verkoopfactuur_c5,
|
||
fin_verkoopfactuur_c6,
|
||
fin_verkoopfactuur_c7,
|
||
fin_verkoopfactuur_c8,
|
||
prs_kostensoortgrp_oms)
|
||
VALUES (SYSDATE,
|
||
rec1.opdrachtnummer,
|
||
SYSDATE,
|
||
rec1.meldingnummer,
|
||
'opdracht',
|
||
rec1.mld_opdr_key,
|
||
rec1.opdracht_nen_omschrijving,
|
||
rec1.opdrachtkosten,
|
||
v_boekmaand,
|
||
rec1.geenopslag,
|
||
rec1.opslag,
|
||
rec1.kostenplusopslag,
|
||
rec1.mld_melding_key,
|
||
rec1.alg_district_key,
|
||
rec1.melding_nen_omschrijving,
|
||
rec1.melding_nen_code,
|
||
rec1.soortmelding,
|
||
rec1.productgroep,
|
||
rec1.subproductgroep,
|
||
rec1.soortopslag,
|
||
rec1.klant_inkoopordernr,
|
||
rec1.klant_kostenplaats,
|
||
rec1.klant_werkorder
|
||
);
|
||
|
||
MLD.setopdrachtstatus (rec1.mld_opdr_key, 7, NULL); -- Verwerkt
|
||
END;
|
||
END LOOP;
|
||
|
||
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL, NULL); -- Historie
|
||
END;
|
||
END LOOP;
|
||
ALG.upsertkenmerk (1201, p_district_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly export datum pro forma
|
||
ALG.upsertkenmerk (1080, p_district_key ,v_boekmaand); -- Readonly boekmaand laatste export veld.
|
||
END;
|
||
/
|
||
|
||
-- Grolsch
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_101
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 101;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_101 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 101);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_101 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 101);
|
||
END;
|
||
/
|
||
|
||
-- Power-Packer
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_102
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 102;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_102 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 102);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_102 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 102);
|
||
END;
|
||
/
|
||
|
||
-- Raben
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_103
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 103;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_103 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 103);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_103 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 103);
|
||
END;
|
||
/
|
||
|
||
-- Carglass
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_104
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 104;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_104 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 104);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_104 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 104);
|
||
END;
|
||
/
|
||
|
||
-- RFC
|
||
-- 385 RFC Balkbruk
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_385
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 385;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_385 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 385);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_385 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 385);
|
||
END;
|
||
/
|
||
|
||
-- 384 RFC Borculo
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_384
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 384;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_384 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 384);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_384 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 384);
|
||
END;
|
||
/
|
||
|
||
-- 383 RFC DC North
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_383
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 383;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_383 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 383);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_383 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 383);
|
||
END;
|
||
/
|
||
|
||
-- 382 RFC Meppel
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_382
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 382;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_382 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 382);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_382 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 382);
|
||
END;
|
||
/
|
||
|
||
-- 381 RFC Amersfoort
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_381
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 381;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_381 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 381);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_381 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 381);
|
||
END;
|
||
/
|
||
|
||
-- 105 RFC Wageningen
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_105
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 105;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_105 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 105);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_105 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 105);
|
||
END;
|
||
/
|
||
|
||
|
||
-- Unisys
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_106
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 106;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_106 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 106);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_106 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 106);
|
||
END;
|
||
/
|
||
|
||
-- TIP
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_107
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 107;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_107 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 107);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_107 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 107);
|
||
END;
|
||
/
|
||
|
||
-- Altrecht
|
||
CREATE OR REPLACE VIEW yask_v_export_pro_forma_341
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_pro_forma
|
||
WHERE alg_district_key = 341;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_341 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma(p_applname, p_applrun, 341);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_pro_forma_verw_341 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
yask_select_pro_forma_verwerk (p_applname, p_applrun, 341);
|
||
END;
|
||
/
|
||
|
||
-- De werkwijze van de import is als volgt:
|
||
-- De importabel bevat alle records die nog geldig zijn
|
||
-- Een nieuwe import voegt regels toe als de combinatie van velden niet gevonden kan worden.
|
||
-- De enige uitzondering is een regel waarvan nu de einddatum gezet is en die in de tabel
|
||
-- nog zonder einddatum staat.
|
||
-- Regels verwijderen uit de import tabel kan door ze niet meer op te nemen in de sheet. De
|
||
-- tabel wordt altijd eerst geleegd door alles op verwijderd te zetten. Hiermee kun je altijd nog een
|
||
-- oude versie terugvinden.
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_import_opslag (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
v_count NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_skipfield VARCHAR2 (100);
|
||
-- De importvelden
|
||
v_imp_opslag_key NUMBER (10);
|
||
v_begin_txt VARCHAR2 (100);
|
||
v_eind_txt VARCHAR2 (100);
|
||
v_locatie_code VARCHAR2 (100);
|
||
v_srtdiscipline_omschrijving VARCHAR2 (100);
|
||
v_discipline_omschrijving VARCHAR2 (100);
|
||
v_kostensoort_refcode VARCHAR2 (100);
|
||
v_opslag_txt VARCHAR2 (100);
|
||
v_leverancier_nr VARCHAR2 (100);
|
||
v_locatie_key NUMBER (10);
|
||
v_srtdiscipline_key NUMBER (10);
|
||
v_discipline_key NUMBER (10);
|
||
v_kostensoort_key NUMBER (10);
|
||
v_bedrijf_key NUMBER (10);
|
||
v_opslag NUMBER (8, 4);
|
||
v_begin DATE;
|
||
v_eind DATE;
|
||
v_null_date DATE;
|
||
header_found BOOLEAN;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
|
||
-- Init
|
||
header_found := FALSE;
|
||
v_fielddelimitor := ';';
|
||
|
||
FOR rec1 IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_aanduiding := v_newline;
|
||
|
||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||
THEN
|
||
-- EF BB BF aangetroffen
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Byte Order Mark aangetroffen',
|
||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||
v_newline := SUBSTR (v_newline, 4);
|
||
END IF;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_srtdiscipline_omschrijving);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_discipline_omschrijving);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_kostensoort_refcode);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_leverancier_nr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_opslag_txt);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_begin_txt);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_eind_txt);
|
||
|
||
-- Skip until a valid header is found
|
||
-- De headers in de Excel export zijn ander dan in de csv export daarom controleren we op beiden.
|
||
IF (UPPER (v_locatie_code) = 'LOCATIE' OR UPPER (v_locatie_code) = 'ALG_LOCATIE_CODE')
|
||
AND (UPPER (v_srtdiscipline_omschrijving) = 'VAKGROEPTYPE' OR UPPER (v_srtdiscipline_omschrijving) = 'INS_SRTDISCIPLINE_OMSCHRIJVING')
|
||
AND (UPPER (v_discipline_omschrijving) = 'VAKGROEP' OR UPPER (v_discipline_omschrijving) = 'INS_DISCIPLINE_OMSCHRIJVING')
|
||
AND (UPPER (v_kostensoort_refcode) = 'NEN CODE' OR UPPER (v_kostensoort_refcode) = 'PRS_KOSTENSOORT_REFCODE')
|
||
AND (UPPER (v_leverancier_nr) = 'LEVERANCIERNUMMER' OR UPPER (v_leverancier_nr) = 'PRS_LEVERANCIER_NR')
|
||
AND UPPER (v_opslag_txt) = 'OPSLAG'
|
||
AND UPPER (v_begin_txt) = 'INGANGSDATUM'
|
||
AND (UPPER (v_eind_txt) = 'VERVALDATUM' OR UPPER (v_eind_txt) = 'EINDDATUM')
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
header_found := TRUE;
|
||
UPDATE yask_imp_opslag
|
||
SET imp_opslag_verwijder = SYSDATE
|
||
WHERE imp_opslag_verwijder IS NULL;
|
||
ELSIF (header_found)
|
||
THEN
|
||
-- voeg nieuwe records toe
|
||
-- en wijzig bestaande records
|
||
v_aanduiding :=
|
||
v_locatie_code
|
||
|| ' | '
|
||
|| v_srtdiscipline_omschrijving
|
||
|| ' | '
|
||
|| v_discipline_omschrijving
|
||
|| ' | '
|
||
|| v_kostensoort_refcode
|
||
|| ' | '
|
||
|| v_leverancier_nr
|
||
|| ' | '
|
||
|| v_opslag_txt
|
||
|| ' | '
|
||
|| v_begin_txt
|
||
|| ' | '
|
||
|| v_eind_txt;
|
||
|
||
v_errorhint := 'Controleer locatie';
|
||
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_verwijder IS NULL
|
||
AND UPPER (alg_locatie_code) =
|
||
UPPER (TRIM (v_locatie_code));
|
||
|
||
BEGIN
|
||
v_errorhint := 'Controleer vakgroeptype';
|
||
|
||
SELECT ins_srtdiscipline_key
|
||
INTO v_srtdiscipline_key
|
||
FROM ins_srtdiscipline
|
||
WHERE ins_srtdiscipline_verwijder IS NULL
|
||
AND UPPER (ins_srtdiscipline_omschrijving) =
|
||
UPPER (TRIM (v_srtdiscipline_omschrijving));
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_srtdiscipline_key := NULL;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint := 'Controleer vakgroep';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_srtdiscipline_key = v_srtdiscipline_key
|
||
AND UPPER (ins_discipline_omschrijving) =
|
||
UPPER (TRIM (v_discipline_omschrijving));
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_discipline_key := NULL;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint := 'Controleer nen code';
|
||
|
||
SELECT prs_kostensoort_key
|
||
INTO v_kostensoort_key
|
||
FROM prs_kostensoort
|
||
WHERE UPPER (prs_kostensoort_refcode) =
|
||
UPPER (TRIM (v_kostensoort_refcode));
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_kostensoort_key := NULL;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errorhint := 'Controleer leverancier';
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER (prs_leverancier_nr) =
|
||
UPPER (TRIM (v_leverancier_nr));
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_bedrijf_key := NULL;
|
||
END;
|
||
|
||
v_errorhint := 'Controleer opslag';
|
||
v_opslag_txt := REPLACE (v_opslag_txt, ',', '.');
|
||
v_opslag := TO_NUMBER (v_opslag_txt);
|
||
|
||
v_errorhint := 'Controleer ingangsdatum';
|
||
v_begin := TO_DATE (v_begin_txt, 'dd-mm-yyyy');
|
||
|
||
v_errorhint := 'Controleer vervaldatum';
|
||
v_eind := TO_DATE (v_eind_txt, 'dd-mm-yyyy');
|
||
|
||
INSERT INTO yask_imp_opslag (
|
||
imp_opslag_key,
|
||
alg_locatie_key,
|
||
ins_srtdiscipline_key,
|
||
ins_discipline_key,
|
||
prs_kostensoort_key,
|
||
prs_bedrijf_key,
|
||
opslag,
|
||
ingangsdatum,
|
||
einddatum,
|
||
imp_opslag_aanmaak)
|
||
VALUES (v_imp_opslag_key + 1,
|
||
v_locatie_key,
|
||
v_srtdiscipline_key,
|
||
v_discipline_key,
|
||
v_kostensoort_key,
|
||
v_bedrijf_key,
|
||
v_opslag,
|
||
v_begin,
|
||
v_eind,
|
||
SYSDATE);
|
||
ELSE
|
||
IF rec1.fac_imp_file_index = 1 THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Geen geldige header aangetroffen',
|
||
v_locatie_code
|
||
|| ' | '
|
||
|| v_srtdiscipline_omschrijving
|
||
|| ' | '
|
||
|| v_discipline_omschrijving
|
||
|| ' | '
|
||
|| v_kostensoort_refcode
|
||
|| ' | '
|
||
|| v_opslag_txt
|
||
|| ' | '
|
||
|| v_begin_txt
|
||
|| ' | '
|
||
|| v_eind_txt);
|
||
END IF;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT header_found
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig opslag importbestand.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
v_errorhint || ' - ' || v_aanduiding);
|
||
|
||
END;
|
||
/
|
||
|
||
-- De update functie doet eigenlijk niets maar anders komt er een foutmelding bij de update.
|
||
CREATE OR REPLACE PROCEDURE yask_update_opslag (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW yask_v_imp_opslag
|
||
AS
|
||
SELECT o.imp_opslag_key,
|
||
l.alg_locatie_code,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
prs_kostensoort_refcode,
|
||
prs_leverancier_nr,
|
||
o.opslag,
|
||
o.ingangsdatum,
|
||
o.einddatum,
|
||
o.imp_opslag_aanmaak,
|
||
o.imp_opslag_verwijder
|
||
FROM yask_imp_opslag o,
|
||
alg_locatie l,
|
||
ins_srtdiscipline sd,
|
||
mld_discipline d,
|
||
prs_kostensoort k,
|
||
prs_bedrijf b
|
||
WHERE o.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND o.ins_discipline_key = d.ins_discipline_key(+)
|
||
AND o.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND o.prs_bedrijf_key = b.prs_bedrijf_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW yask_v_factuur_gegevens
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
DECODE (
|
||
c.cnt_contract_key,
|
||
NULL, DECODE (
|
||
bo.bes_bestelopdr_key,
|
||
NULL, (SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key =
|
||
o.mld_melding_key
|
||
AND m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key =
|
||
sd.ins_srtdiscipline_key),
|
||
bo.bes_bestelopdr_id),
|
||
'C'
|
||
|| TO_CHAR (cnt_contract_nummer_intern)
|
||
|| DECODE (cnt_contract_versie,
|
||
NULL, NULL,
|
||
'.' || cnt_contract_versie))
|
||
opdracht_id,
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_nr,
|
||
COALESCE (b_c.prs_bedrijf_key,
|
||
COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))
|
||
prs_bedrijf_key,
|
||
DECODE (
|
||
(SELECT prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_kenmerk_key = 1020
|
||
AND kl.prs_link_key =
|
||
COALESCE (
|
||
b_c.prs_bedrijf_key,
|
||
COALESCE (b_o.prs_bedrijf_key,
|
||
b_b.prs_bedrijf_key))),
|
||
'1', 63,
|
||
62)
|
||
dagboek,
|
||
fr.fin_factuurregel_totaal,
|
||
ROUND (
|
||
fr.fin_factuurregel_totaal
|
||
* DECODE (btw.fin_btwtabelwaarde_verlegd,
|
||
1, 0,
|
||
btw.fin_btwtabelwaarde_perc / 100),
|
||
2)
|
||
fin_factuurregel_btw,
|
||
btw.fin_btwtabelwaarde_code,
|
||
btw.fin_btwtabelwaarde_key,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_key,
|
||
f.fin_factuur_debiteur_nr,
|
||
f.fin_factuur_opmerking,
|
||
f.fin_factuur_boekmaand,
|
||
prs_kostensoort_oms,
|
||
k.prs_kostensoort_refcode,
|
||
k.prs_kostensoort_opmerking,
|
||
k.prs_kostensoort_key,
|
||
(SELECT MAX(prs_kostenplaats_nr)
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_key = COALESCE(o.prs_kostenplaats_key, c.prs_kostenplaats_key)) prs_kostenplaats_nr,
|
||
o.mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
bo.bes_bestelopdr_key,
|
||
( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn
|
||
-- met status ingevoerd, afgewezen of incompleet
|
||
SELECT DECODE (COUNT (*), 0, f.fin_factuur_statuses_key, 2)
|
||
FROM fin_factuur f_t,
|
||
cnt_contract c_t,
|
||
bes_bestelopdr b_t,
|
||
mld_opdr o_t
|
||
WHERE f_t.fin_factuur_verwijder IS NULL
|
||
AND f_t.mld_opdr_key = o_t.mld_opdr_key(+)
|
||
AND f_t.cnt_contract_key = c_t.cnt_contract_key(+)
|
||
AND f_t.bes_bestelopdr_key = b_t.bes_bestelopdr_key(+)
|
||
AND COALESCE (
|
||
o_t.mld_uitvoerende_keys,
|
||
COALESCE (
|
||
b_t.prs_bedrijf_key,
|
||
COALESCE (
|
||
c_t.cnt_prs_bedrijf_key,
|
||
(SELECT a.prs_bedrijf_key
|
||
FROM prs_v_afdeling a, prs_perslid p
|
||
WHERE o_t.mld_uitvoerende_keys =
|
||
p.prs_perslid_key
|
||
AND p.prs_afdeling_key =
|
||
a.prs_afdeling_key)))) =
|
||
COALESCE (
|
||
o.mld_uitvoerende_keys,
|
||
COALESCE (
|
||
bo.prs_bedrijf_key,
|
||
COALESCE (
|
||
c.cnt_prs_bedrijf_key,
|
||
(SELECT a.prs_bedrijf_key
|
||
FROM prs_v_afdeling a, prs_perslid p
|
||
WHERE o.mld_uitvoerende_keys =
|
||
p.prs_perslid_key
|
||
AND p.prs_afdeling_key =
|
||
a.prs_afdeling_key))))
|
||
AND f.fin_factuur_nr = f_t.fin_factuur_nr
|
||
AND f_t.fin_factuur_statuses_key IN (1, 2, 3, 5) -- Afgewezen, Ingevoerd, Incompleet, Ter goedkeuring
|
||
AND f.fin_factuur_statuses_key = 6)
|
||
fin_factuur_statuses_key,
|
||
lk.prs_kostenplaats_nr
|
||
lev_kpn,
|
||
l.alg_district_key
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
mld_typeopdr ot,
|
||
cnt_contract c,
|
||
bes_bestelopdr bo,
|
||
(SELECT mld_uitvoerende_key,
|
||
DECODE (u.TYPE,
|
||
'B', mld_uitvoerende_key,
|
||
a.prs_bedrijf_key)
|
||
prs_bedrijf_key
|
||
FROM mld_v_uitvoerende u, prs_v_afdeling a, prs_perslid p
|
||
WHERE u.mld_uitvoerende_key = prs_perslid_key(+)
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key(+)) b_o,
|
||
prs_bedrijf b_c,
|
||
prs_bedrijf b_b,
|
||
prs_kostensoort k,
|
||
prs_kostensoortgrp kg,
|
||
prs_kostenplaats lk
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = b_o.mld_uitvoerende_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||
AND c.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+)
|
||
AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
|
||
AND f.fin_factuur_verwijder IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_exact_xml (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT';
|
||
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_exact_62_Ren (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_exact_xml;
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_exact_63_Ren (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_exact_xml;
|
||
|
||
CREATE OR REPLACE VIEW yask_v_bron_export_exact_xml
|
||
(
|
||
fin_factuur_key,
|
||
opdracht_id,
|
||
factuur_nr, -- crediteur factuurnummer
|
||
datum, -- factuurdatum
|
||
crdnr, -- crediteurnummer
|
||
bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
oms_regel, -- omschrijving in de detailregels
|
||
reknr, -- grootboekrekeningnr
|
||
kstplcode, -- kostenplaats kenmerk bij gebouw
|
||
kstdrcode, -- kostendrager afh van grootboek
|
||
btw_code,
|
||
dagboek,
|
||
oms_kop, -- omschrijving in de kopregel
|
||
fin_factuur_debiteur_nr, -- crediteur debiteurnummer
|
||
alg_district_key
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_nr,
|
||
TO_CHAR (fin_factuur_datum, 'yyyy-mm-dd')
|
||
datum,
|
||
prs_leverancier_nr crdnr,
|
||
REPLACE (TO_CHAR (bedrag), ',', '.')
|
||
bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
SUBSTR (UPPER (b.prs_bedrijf_naam), 1, 3)
|
||
|| ','
|
||
|| SUBSTR(fin_factuur_boekmaand, 6,2)
|
||
|| ','
|
||
|| opdracht_id
|
||
oms_regel,
|
||
'74900' reknr,
|
||
COALESCE(REPLACE(prs_kostenplaats_nr, 'Levanto '), '441.200') kstplcode,
|
||
'10' kstdrcode,
|
||
fin_btwtabelwaarde_code
|
||
btw_code,
|
||
fg.dagboek,
|
||
SUBSTR(UPPER(b.prs_bedrijf_naam),1,3) || ',' ||
|
||
SUBSTR(fin_factuur_boekmaand,6,2) oms_kop,
|
||
fin_factuur_debiteur_nr,
|
||
alg_district_key
|
||
FROM ( SELECT g.fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
SUM (fin_factuurregel_totaal)
|
||
bedrag,
|
||
SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
|
||
bedrag_incl,
|
||
fin_btwtabelwaarde_code,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_refcode,
|
||
prs_kostensoort_opmerking,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_nr,
|
||
fin_factuur_boekmaand,
|
||
g.dagboek,
|
||
e.alg_district_key
|
||
FROM yask_v_factuur_gegevens g,
|
||
yask_exp_factuur e
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND g.fin_factuur_key = e.fin_factuur_key
|
||
AND g.dagboek = e.dagboek
|
||
GROUP BY g.fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
fin_btwtabelwaarde_code,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_refcode,
|
||
prs_kostensoort_opmerking,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_nr,
|
||
fin_factuur_boekmaand,
|
||
g.dagboek,
|
||
e.alg_district_key) fg,
|
||
prs_bedrijf b
|
||
WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_leverancier_nr IS NOT NULL;
|
||
|
||
-- Procedure om alle facturen te exporteren naar exact.
|
||
CREATE OR REPLACE PROCEDURE yask_select_exact_xml (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_dagboek IN VARCHAR2,
|
||
p_district_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c(c_dagboek VARCHAR2)
|
||
IS
|
||
SELECT crdnr, factuur_nr, MAX(datum) datum, MAX(oms_kop) oms_kop
|
||
FROM yask_v_bron_export_exact_xml
|
||
WHERE c_dagboek = dagboek
|
||
AND alg_district_key = p_district_key
|
||
GROUP BY crdnr, factuur_nr;
|
||
|
||
CURSOR c_sub (c_crdnr VARCHAR2, c_factuur_nr VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM yask_v_bron_export_exact_xml
|
||
WHERE COALESCE(crdnr, 'CrdNr') = COALESCE(c_crdnr, 'CrdNr')
|
||
AND factuur_nr = c_factuur_nr;
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER(10,2);
|
||
v_amount_sum_incl NUMBER(10,2);
|
||
v_count NUMBER;
|
||
v_sub_count NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
v_boekstuknummer NUMBER;
|
||
v_crdnr PRS_BEDRIJF.PRS_LEVERANCIER_NR%TYPE;
|
||
v_factuur_nr FIN_FACTUUR.FIN_FACTUUR_NR%TYPE;
|
||
v_boekmaand DATE;
|
||
v_bijlagen_key NUMBER;
|
||
v_bijlagen_filename FAC_BIJLAGEN.FAC_BIJLAGEN_FILENAME%TYPE;
|
||
v_guid VARCHAR2(50);
|
||
|
||
BEGIN
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_count := 0;
|
||
v_bestand := 'EXACT';
|
||
v_crdnr := 'Q';
|
||
v_factuur_nr := 'Q';
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- Bepaling boekmaand
|
||
IF TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) < 11
|
||
THEN
|
||
v_boekmaand := TRUNC(ADD_MONTHS(SYSDATE,-1));
|
||
ELSE
|
||
v_boekmaand := TRUNC(SYSDATE);
|
||
END IF;
|
||
|
||
-- Verwijder het kenmerk boekstuknummer van de facturen die niet op verwerkt staan
|
||
DELETE fin_kenmerkfactuur kf
|
||
WHERE fin_kenmerk_key = 1
|
||
AND SUBSTR(fin_kenmerkfactuur_waarde, 3,2) = p_dagboek
|
||
AND fin_factuur_key IN (SELECT fin_factuur_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_statuses_key <> 7)
|
||
AND YASK.bepaal_fin_district(kf.fin_factuur_key) = p_district_key;
|
||
|
||
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
|
||
-- deze keys gebruikt kunnen worden.
|
||
DELETE yask_exp_factuur
|
||
WHERE dagboek = p_dagboek
|
||
AND alg_district_key = p_district_key;
|
||
|
||
INSERT INTO yask_exp_factuur (fin_factuur_key, dagboek, alg_district_key)
|
||
( SELECT DISTINCT fg.fin_factuur_key, fg.dagboek, alg_district_key
|
||
FROM yask_v_factuur_gegevens fg,
|
||
prs_bedrijf b
|
||
WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_leverancier_nr IS NOT NULL
|
||
AND fg.fin_factuur_statuses_key = 6
|
||
AND fg.fin_factuur_datum > SYSDATE - (5 * 365) -- Check op geldige factuurdatum:
|
||
AND fg.fin_factuur_datum < SYSDATE + 365 -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst.
|
||
AND fg.alg_district_key = p_district_key -- Renewi / Levanto
|
||
AND dagboek = p_dagboek
|
||
);
|
||
|
||
-- Bepaal het boekstuknummer (key 3) met het hoogste nummer van dit jaar
|
||
-- ## AAIT#36589
|
||
|
||
SELECT MAX(fin_kenmerkfactuur_waarde)
|
||
INTO v_boekstuknummer
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE fin_kenmerk_key = 1
|
||
AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY')
|
||
AND SUBSTR(fin_kenmerkfactuur_waarde,3,2) = p_dagboek
|
||
AND YASK.bepaal_fin_district(kf.fin_factuur_key) = p_district_key;
|
||
|
||
IF v_boekstuknummer IS NULL
|
||
THEN
|
||
v_boekstuknummer := FAC.safe_to_number(TO_CHAR(SYSDATE, 'YY') || p_dagboek || '0000');
|
||
END IF;
|
||
|
||
-- header
|
||
yask.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
yask.add_xml_row (v_bestand, '<eExact>');
|
||
yask.add_xml_row (v_bestand, '<GLEntries>');
|
||
|
||
FOR rec IN c(p_dagboek)
|
||
LOOP
|
||
BEGIN
|
||
-- Als we een nieuwe leverancier/factuurnummer tegenkomen gaan we het boekstuknummer ophogen.
|
||
IF rec.crdnr <> v_crdnr OR rec.factuur_nr <> v_factuur_nr
|
||
THEN
|
||
v_boekstuknummer := v_boekstuknummer + 1;
|
||
v_crdnr := rec.crdnr;
|
||
v_factuur_nr := rec.factuur_nr;
|
||
END IF;
|
||
|
||
yask.add_xml_row (v_bestand, '<GLEntry status="E" entry="' || xml.char_to_html(v_boekstuknummer) || '">');
|
||
yask.add_xml_element (v_bestand, 'Description', rec.oms_kop);
|
||
yask.add_xml_element (v_bestand, 'Date', rec.datum);
|
||
yask.add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
yask.add_xml_row (v_bestand, '<Journal type="I" code="' || p_dagboek || '"/>');
|
||
v_sub_count := 1;
|
||
FOR rec1 IN c_sub (v_crdnr, v_factuur_nr)
|
||
LOOP
|
||
BEGIN
|
||
-- Eerst maar even een kenmerk voor het boestuknummer aanmaken
|
||
yask.set_kenmerk('FIN', 1, rec1.fin_factuur_key, v_boekstuknummer, 0);
|
||
|
||
-- De boekmaand wordt mee gegeven in de koppeling naar Exact. Maar voor de onderlegger
|
||
-- moet de boekmaand ook goed in Facilitor staan.
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_boekmaand = TO_CHAR(v_boekmaand, 'YYYYMM')
|
||
WHERE fin_factuur_key = rec1.fin_factuur_key;
|
||
|
||
yask.add_xml_row (v_bestand, '<FinEntryLine number="' || v_sub_count || '" subtype="T" type="N">');
|
||
yask.add_xml_element (v_bestand, 'Date', rec1.datum);
|
||
-- Het is niet gelukt om de boekmaand mee te sturen
|
||
-- yask.add_xml_element (v_bestand, 'FinYear', TO_CHAR(v_boekmaand, 'YYYY') );
|
||
-- yask.add_xml_element (v_bestand, 'FinPeriod', TO_CHAR(v_boekmaand, 'MM') );
|
||
yask.add_xml_row (v_bestand, '<GLAccount code="' || xml.char_to_html(rec1.reknr) || '"/>');
|
||
yask.add_xml_element (v_bestand, 'Description', rec1.oms_regel);
|
||
yask.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html(rec1.kstplcode) || '"/>');
|
||
yask.add_xml_row (v_bestand, '<Costunit code="' || xml.char_to_html(rec1.kstdrcode) || '"/>');
|
||
yask.add_xml_row (v_bestand, '<Creditor number="' || xml.char_to_html(rec1.crdnr) || '"/>');
|
||
yask.add_xml_row (v_bestand, '<Item code=""/>');
|
||
yask.add_xml_row (v_bestand, '<Amount>');
|
||
yask.add_xml_element (v_bestand, 'Debit', rec1.bedrag_txt);
|
||
yask.add_xml_row (v_bestand, '<VAT code="' || xml.char_to_html(rec1.btw_code) || '"/>');
|
||
yask.add_xml_row (v_bestand, '</Amount>');
|
||
yask.add_xml_row (v_bestand, '<Payment>');
|
||
yask.add_xml_element (v_bestand, 'Reference', rec.factuur_nr || ' ' || rec1.fin_factuur_debiteur_nr );
|
||
yask.add_xml_element (v_bestand, 'InvoiceNumber', rec1.fin_factuur_key); -- of moet dit v_boekstuknummer worden????
|
||
yask.add_xml_row (v_bestand, '</Payment>');
|
||
yask.add_xml_row (v_bestand, '<FinReferences>');
|
||
yask.add_xml_element (v_bestand, 'YourRef', rec.factuur_nr || ' ' || rec1.fin_factuur_debiteur_nr);
|
||
yask.add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
yask.add_xml_row (v_bestand, '</FinReferences>');
|
||
|
||
-- Voeg de bijlage toe
|
||
SELECT MAX(fac_bijlagen_key)
|
||
INTO v_bijlagen_key
|
||
FROM fac_v_bijlagen
|
||
WHERE fac_bijlagen_module = 'FIN'
|
||
AND fac_bijlagen_refkey = rec1.fin_factuur_key
|
||
AND fac_bijlagen_kenmerk_key = 41;
|
||
|
||
IF v_bijlagen_key IS NOT NULL
|
||
THEN
|
||
SELECT fac_bijlagen_filename
|
||
INTO v_bijlagen_filename
|
||
FROM fac_v_bijlagen
|
||
WHERE fac_bijlagen_key = v_bijlagen_key;
|
||
|
||
v_guid := sys_guid();
|
||
yask.add_xml_row (v_bestand, '<DocumentAttachment ID="{' || substr(v_guid,1,8) || '-' || substr(v_guid,8,4) || '-' || substr(v_guid,12,4) || '-' || substr(v_guid,16,4) || '-' || substr(v_guid,20,12) || '}" publish="0">');
|
||
yask.add_xml_row (v_bestand, '<DocumentType number="7"/>');
|
||
yask.add_xml_element (v_bestand, 'Subject', xml.char_to_html(v_boekstuknummer));
|
||
yask.add_xml_element (v_bestand, 'OurRef', xml.char_to_html(v_boekstuknummer));
|
||
yask.add_xml_element (v_bestand, 'YourRef', rec.factuur_nr);
|
||
yask.add_xml_row (v_bestand, '<Account code="' || xml.char_to_html(rec1.crdnr) || '"/>');
|
||
yask.add_xml_element (v_bestand, 'FCLTattachment', v_bijlagen_key);
|
||
yask.add_xml_row (v_bestand, '</DocumentAttachment>');
|
||
END IF;
|
||
|
||
yask.add_xml_row (v_bestand, '</FinEntryLine>');
|
||
v_sub_count := v_sub_count + 1;
|
||
v_amount_sum := v_amount_sum + rec1.bedrag;
|
||
v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl;
|
||
END;
|
||
END LOOP;
|
||
IF v_sub_count = 1
|
||
THEN
|
||
fac.writelog (p_applname, 'E', 'Fout tijdens Exact export. Factuurnummer: ' || v_factuur_nr || ' Crdnr: ' || v_crdnr,'');
|
||
END IF;
|
||
yask.add_xml_row (v_bestand, '</GLEntry>');
|
||
v_order_count := v_order_count + 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
yask.add_xml_row (v_bestand, '</GLEntries>');
|
||
yask.add_xml_row (v_bestand, '</eExact>');
|
||
fac.writelog (p_applname, 'S', 'Exact export uitgevoerd. Aantal regels: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum || ' Totaal bedrag (incl): ' || v_amount_sum_incl, '');
|
||
|
||
END;
|
||
/
|
||
|
||
-- Renewi district_key = 501
|
||
CREATE OR REPLACE PROCEDURE yask_select_exact_62_Ren (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
yask_select_exact_xml (p_applname, p_applrun, '62', 501);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_exact_63_Ren (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
yask_select_exact_xml (p_applname, p_applrun, '63', 501);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_verwerk_exact (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT 'Lijst met bevroren facturen:' fac_rapport_regel, 0 fac_rapport_volgnr
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'VW_EXACT';
|
||
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_verwerk_exact_62_Ren (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_verwerk_exact;
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_verwerk_exact_63_Ren (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_verwerk_exact;
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_verwerk_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_dagboek IN VARCHAR2,
|
||
p_district_key IN NUMBER
|
||
)
|
||
AS
|
||
CURSOR c_fact
|
||
IS
|
||
SELECT DISTINCT f.fin_factuur_key
|
||
FROM yask_exp_factuur f,
|
||
yask_v_factuur_gegevens fg
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.fin_factuur_statuses_key = 6
|
||
AND f.dagboek = p_dagboek
|
||
AND f.alg_district_key = p_district_key;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanvrager NUMBER;
|
||
v_bestelling_key NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
v_logdate DATE;
|
||
v_volgnr NUMBER;
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
v_aanvrager := 3; -- Facilitor
|
||
v_logdate := SYSDATE;
|
||
|
||
v_bestand := 'VW_EXACT';
|
||
v_volgnr := 1;
|
||
-- Eerst opruiming
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
FOR rec1 IN c_fact
|
||
LOOP
|
||
BEGIN
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7
|
||
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (v_bestand,
|
||
v_volgnr,
|
||
rec1.fin_factuur_key);
|
||
|
||
v_volgnr := v_volgnr + 1;
|
||
END;
|
||
END LOOP;
|
||
-- verwijder de enties uit de tijdelijke tabel.
|
||
DELETE yask_exp_factuur
|
||
WHERE dagboek = p_dagboek
|
||
AND alg_district_key = p_district_key;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_verwerk_exact_62_Ren (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
yask_select_verwerk_exact (p_applname, p_applrun, '62', 501);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_verwerk_exact_63_Ren (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
yask_select_verwerk_exact (p_applname, p_applrun, '63', 501);
|
||
END;
|
||
/
|
||
|
||
|
||
-- Views en procedures voor de Exact export naar Veza voor Mindlabs
|
||
CREATE OR REPLACE VIEW yask_v_factuur_gegevens_veza
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
DECODE (
|
||
c.cnt_contract_key,
|
||
NULL, DECODE (
|
||
bo.bes_bestelopdr_key,
|
||
NULL, (SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key),
|
||
bo.bes_bestelopdr_id),
|
||
'C'
|
||
|| TO_CHAR (cnt_contract_nummer_intern)
|
||
|| DECODE (cnt_contract_versie, NULL, NULL, '.' || cnt_contract_versie))
|
||
opdracht_id,
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_nr,
|
||
COALESCE (b_c.prs_bedrijf_key, COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))
|
||
prs_bedrijf_key,
|
||
fr.fin_factuurregel_omschrijving,
|
||
k.prs_kostensoort_refcode,
|
||
k.prs_kostensoort_oms,
|
||
fr.fin_factuurregel_totaal,
|
||
ROUND (
|
||
fr.fin_factuurregel_totaal
|
||
* DECODE (btw.fin_btwtabelwaarde_verlegd, 1, 0, btw.fin_btwtabelwaarde_perc / 100),
|
||
2)
|
||
fin_factuurregel_btw,
|
||
btw.fin_btwtabelwaarde_code,
|
||
btw.fin_btwtabelwaarde_key,
|
||
fr.fin_factuurregel_nr,
|
||
f.fin_factuur_debiteur_nr,
|
||
f.fin_factuur_opmerking,
|
||
f.fin_factuur_boekmaand,
|
||
COALESCE (o.mld_opdr_datumbegin, COALESCE (c.cnt_contract_looptijd_tot, bo.bes_bestelopdr_datum))
|
||
opdr_datum,
|
||
COALESCE (
|
||
o.prs_kostenplaats_key,
|
||
COALESCE (
|
||
c.prs_kostenplaats_key,
|
||
(SELECT DISTINCT b.prs_kostenplaats_key
|
||
FROM bes_bestelling b, bes_bestelopdr_item boi, bes_bestelling_item bi
|
||
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key)))
|
||
prs_kostenplaats_key,
|
||
FLX.getflex ('ALG',
|
||
1260,
|
||
COALESCE (ml.alg_district_key, cl.alg_district_key),
|
||
'D')
|
||
dagboek,
|
||
o.mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
bo.bes_bestelopdr_key,
|
||
( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn
|
||
-- met status ingevoerd of incompleet
|
||
SELECT DECODE (COUNT (*), 0, f.fin_factuur_statuses_key, 2)
|
||
FROM fin_factuur f_t,
|
||
cnt_contract c_t,
|
||
bes_bestelopdr b_t,
|
||
mld_opdr o_t
|
||
WHERE f_t.fin_factuur_verwijder IS NULL
|
||
AND f_t.mld_opdr_key = o_t.mld_opdr_key(+)
|
||
AND f_t.cnt_contract_key = c_t.cnt_contract_key(+)
|
||
AND f_t.bes_bestelopdr_key = b_t.bes_bestelopdr_key(+)
|
||
AND COALESCE (o_t.mld_uitvoerende_keys, COALESCE (b_t.prs_bedrijf_key, c_t.cnt_prs_bedrijf_key)) =
|
||
COALESCE (o.mld_uitvoerende_keys, COALESCE (bo.prs_bedrijf_key, c.cnt_prs_bedrijf_key))
|
||
AND f.fin_factuur_nr = f_t.fin_factuur_nr
|
||
AND f_t.fin_factuur_statuses_key IN (2, 3)
|
||
AND f.fin_factuur_statuses_key = 6)
|
||
fin_factuur_statuses_key,
|
||
lk.prs_kostenplaats_nr
|
||
lev_kpn,
|
||
(SELECT prs_kostenplaats_nr FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = COALESCE(o.prs_kostenplaats_key, b.prs_kostenplaats_key, c.prs_kostenplaats_key))
|
||
kpcode,
|
||
FLX.getflex ('ALG',
|
||
1300,
|
||
COALESCE (ml.alg_district_key, cl.alg_district_key),
|
||
'D')
|
||
kdcode,
|
||
COALESCE (ml.alg_district_key, cl.alg_district_key)
|
||
alg_district_key
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_typeopdr ot,
|
||
cnt_contract c,
|
||
bes_bestelopdr bo,
|
||
bes_bestelling b,
|
||
prs_bedrijf b_o,
|
||
prs_bedrijf b_c,
|
||
prs_bedrijf b_b,
|
||
prs_kostensoort k,
|
||
prs_kostensoortgrp kg,
|
||
prs_kostenplaats lk,
|
||
alg_v_allonrgoed_gegevens og,
|
||
alg_locatie ml,
|
||
alg_locatie cl,
|
||
(SELECT DISTINCT f1.fin_factuur_key, cnt_alg_plaats_key alg_gebouw_key, alg_locatie_key
|
||
FROM fin_factuur f1, cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE f1.cnt_contract_key = cp.cnt_contract_key
|
||
AND cnt_alg_plaats_code = 'G'
|
||
AND cnt_alg_plaats_key = g.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT DISTINCT f1.fin_factuur_key, g.alg_gebouw_key, alg_locatie_key
|
||
FROM fin_factuur f1, cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE f1.cnt_contract_key = cp.cnt_contract_key
|
||
AND cnt_alg_plaats_code = 'L'
|
||
AND cnt_alg_plaats_key = g.alg_locatie_key) cg,
|
||
(SELECT boi.bes_bestelopdr_key, bi.bes_bestelling_key
|
||
FROM bes_bestelopdr_item boi, bes_bestelling_item bi
|
||
WHERE boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
GROUP BY boi.bes_bestelopdr_key, bi.bes_bestelling_key) bo2b
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
|
||
AND bo.bes_bestelopdr_key = bo2b.bes_bestelopdr_key(+)
|
||
AND bo2b.bes_bestelling_key = b.bes_bestelling_key(+)
|
||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||
AND k.prs_kostensoort_key = COALESCE (fr.prs_kostensoort_key, f.prs_kostensoort_key)
|
||
AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+)
|
||
AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
|
||
AND f.fin_factuur_key = cg.fin_factuur_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND og.alg_locatie_key = ml.alg_locatie_key(+)
|
||
AND cg.alg_locatie_key = cl.alg_locatie_key(+)
|
||
AND f.fin_factuur_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW yask_v_bron_export_exact_veza
|
||
AS
|
||
SELECT fin_factuur_key,
|
||
SUBSTR(b.prs_bedrijf_naam, 1,30) oms_kop,
|
||
REPLACE (SUBSTR (fin_factuurregel_omschrijving, 1, 60), ',', '')
|
||
oms_detail,
|
||
opdracht_id,
|
||
fin_factuur_nr factuur_nr,
|
||
TO_CHAR (fin_factuur_datum, 'yyyy-mm-dd') datum,
|
||
b.prs_leverancier_nr crdnr,
|
||
REPLACE (TO_CHAR (bedrag), ',', '.') bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
fin_factuur_nr betaalref,
|
||
prs_kostensoort_oms itemcode,
|
||
prs_kostensoort_refcode reknr,
|
||
kpcode kstplcode,
|
||
kdcode kstdrcode,
|
||
fin_btwtabelwaarde_code btw_code,
|
||
lev_kpn,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE fin_kenmerk_key = 61
|
||
AND kf.fin_factuur_key = fg.fin_factuur_key) boekstuknr,
|
||
dagboek,
|
||
alg_district_key
|
||
FROM ( SELECT g.fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
prs_kostensoort_refcode,
|
||
prs_kostensoort_oms,
|
||
fin_factuurregel_omschrijving,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
SUM (fin_factuurregel_totaal + fin_factuurregel_btw) bedrag_incl,
|
||
fin_btwtabelwaarde_code,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_key,
|
||
lev_kpn,
|
||
kpcode,
|
||
kdcode,
|
||
g.dagboek,
|
||
g.alg_district_key
|
||
FROM yask_v_factuur_gegevens_veza g,
|
||
yask_exp_factuur e
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND g.fin_factuur_key = e.fin_factuur_key
|
||
AND g.dagboek = e.dagboek
|
||
GROUP BY g.fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
prs_kostensoort_refcode,
|
||
prs_kostensoort_oms,
|
||
fin_btwtabelwaarde_code,
|
||
fin_factuurregel_omschrijving,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_key,
|
||
lev_kpn,
|
||
kpcode,
|
||
kdcode,
|
||
g.dagboek,
|
||
g.alg_district_key) fg,
|
||
prs_bedrijf b
|
||
WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key;
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_exact_veza_t (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT REPLACE(REPLACE( regelnummer
|
||
|| ','
|
||
|| dagb_type
|
||
|| ','
|
||
|| dagbknr
|
||
|| ','
|
||
|| periode
|
||
|| ','
|
||
|| bkjcode
|
||
|| ','
|
||
|| boekstuknr
|
||
|| ','
|
||
|| oms25
|
||
|| ','
|
||
|| datum
|
||
|| ','
|
||
|| empty9
|
||
|| ','
|
||
|| debnr
|
||
|| ','
|
||
|| crdnr
|
||
|| ','
|
||
|| empty12
|
||
|| ','
|
||
|| bedrag
|
||
|| ','
|
||
|| drbk_in_val
|
||
|| ','
|
||
|| valcode
|
||
|| ','
|
||
|| koers
|
||
|| ','
|
||
|| kredbep
|
||
|| ','
|
||
|| bdrkredbep
|
||
|| ','
|
||
|| vervdatfak
|
||
|| ','
|
||
|| vervdatkrd
|
||
|| ','
|
||
|| empty21
|
||
|| ','
|
||
|| empty22
|
||
|| ','
|
||
|| weeknummer
|
||
|| ','
|
||
|| betaalref
|
||
|| ','
|
||
|| betwijze
|
||
|| ','
|
||
|| grek_bdr
|
||
|| ','
|
||
|| empty27
|
||
|| ','
|
||
|| empty28
|
||
|| ','
|
||
|| empty29
|
||
|| ','
|
||
|| empty30
|
||
|| ','
|
||
|| empty31
|
||
|| ','
|
||
|| transsubtype
|
||
|| ','
|
||
|| empty33
|
||
|| ','
|
||
|| empty34
|
||
|| ','
|
||
|| empty35
|
||
|| ','
|
||
|| empty36
|
||
|| ','
|
||
|| empty37
|
||
|| ','
|
||
|| empty38
|
||
|| ','
|
||
|| projectnr
|
||
|| ','
|
||
|| empty40,CHR (13), ''), CHR (10), '<ret>'),
|
||
boekstuknr * 100 + regelnummer
|
||
FROM (
|
||
SELECT 0 regelnummer,
|
||
'I' dagb_type,
|
||
dagboek dagbknr,
|
||
'' periode,
|
||
'' bkjcode,
|
||
boekstuknr,
|
||
oms_kop oms25,
|
||
TO_CHAR (TO_DATE(datum, 'yyyy-mm-dd'), 'ddmmyyyy') datum,
|
||
'' empty9,
|
||
'' debnr,
|
||
crdnr,
|
||
'' empty12,
|
||
REPLACE (TO_CHAR (bedrag), ',', '.') bedrag,
|
||
'' drbk_in_val,
|
||
'' valcode,
|
||
'' koers,
|
||
'' kredbep,
|
||
'' bdrkredbep,
|
||
'' vervdatfak,
|
||
'' vervdatkrd,
|
||
'' empty21,
|
||
'' empty22,
|
||
'' weeknummer,
|
||
betaalref,
|
||
'' betwijze,
|
||
'' grek_bdr,
|
||
'' empty27,
|
||
'' empty28,
|
||
'' empty29,
|
||
'' empty30,
|
||
'' empty31,
|
||
'' transsubtype,
|
||
'' empty33,
|
||
'' empty34,
|
||
'' empty35,
|
||
'' empty36,
|
||
'' empty37,
|
||
'' empty38,
|
||
'' projectnr,
|
||
'!' empty40
|
||
FROM (SELECT datum,
|
||
factuur_nr,
|
||
betaalref,
|
||
crdnr,
|
||
oms_kop,
|
||
boekstuknr,
|
||
dagboek,
|
||
SUM (bedrag_incl)
|
||
bedrag
|
||
FROM yask_v_bron_export_exact_veza
|
||
GROUP BY datum,
|
||
factuur_nr,
|
||
betaalref,
|
||
crdnr,
|
||
oms_kop,
|
||
boekstuknr,
|
||
dagboek) fg
|
||
UNION ALL
|
||
SELECT 1 regelnummer,
|
||
'I' dagb_type,
|
||
dagboek dagbknr,
|
||
'' periode,
|
||
'' bkjcode,
|
||
boekstuknr,
|
||
oms_detail,
|
||
TO_CHAR (TO_DATE(datum, 'yyyy-mm-dd'), 'ddmmyyyy') datum,
|
||
reknr,
|
||
'' debnr,
|
||
crdnr,
|
||
'' empty12,
|
||
REPLACE (TO_CHAR (bedrag_incl), ',', '.') bedrag,
|
||
opdracht_id drbk_in_val,
|
||
'' val_code,
|
||
'' koers,
|
||
'' kredbep,
|
||
'' bdrkredbep,
|
||
'' vervdatfak,
|
||
'' vervdatkrd,
|
||
btw_code,
|
||
REPLACE (TO_CHAR (bedrag_incl - bedrag), ',', '.') btw_bdr,
|
||
'' weeknummer,
|
||
'' empty24,
|
||
'' empty25,
|
||
'' empty26,
|
||
kstplcode,
|
||
kstdrcode,
|
||
'' empty29,
|
||
'' empty30,
|
||
'' empty31,
|
||
'' transsubtype,
|
||
'' empty33,
|
||
'' empty34,
|
||
'' emtpy35,
|
||
'' empty36,
|
||
'' empty37,
|
||
'' empty38,
|
||
'' projectnr,
|
||
'!' empty40
|
||
FROM yask_v_bron_export_exact_veza fg
|
||
ORDER BY boekstuknr, regelnummer);
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_exact_veza (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT_VEZA';
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_select_exact_veza (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
|
||
CURSOR c (c_district_key NUMBER)
|
||
IS
|
||
SELECT crdnr, factuur_nr, MAX(datum) datum
|
||
FROM yask_v_bron_export_exact_veza
|
||
WHERE alg_district_key = c_district_key
|
||
GROUP BY crdnr, factuur_nr;
|
||
|
||
CURSOR c_sub (c_crdnr VARCHAR2, c_factuur_nr VARCHAR2, c_district_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM yask_v_bron_export_exact_veza
|
||
WHERE COALESCE(crdnr, 'CrdNr') = COALESCE(c_crdnr, 'CrdNr')
|
||
AND alg_district_key = c_district_key
|
||
AND factuur_nr = c_factuur_nr;
|
||
|
||
CURSOR cv IS
|
||
SELECT result, result_order
|
||
FROM yask_v_export_exact_veza_t
|
||
ORDER BY result_order;
|
||
|
||
v_first NUMBER;
|
||
v_count NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
v_boekstuknummer NUMBER;
|
||
v_crdnr PRS_BEDRIJF.PRS_LEVERANCIER_NR%TYPE;
|
||
v_factuur_nr FIN_FACTUUR.FIN_FACTUUR_NR%TYPE;
|
||
v_dagboek NUMBER;
|
||
v_ml_district_key NUMBER := 621;
|
||
|
||
v_log VARCHAR2(1000);
|
||
v_log_prev VARCHAR2 (1000);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
BEGIN
|
||
v_count := 0;
|
||
v_bestand := SUBSTR(p_applname, 1, 12);
|
||
v_crdnr := 'Q';
|
||
v_factuur_nr := 'Q';
|
||
v_dagboek := FLX.getflex('ALG', 1260, v_ml_district_key, 'D');
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
DELETE fin_kenmerkfactuur kf
|
||
WHERE fin_kenmerk_key = 61
|
||
AND fin_factuur_key IN (SELECT fin_factuur_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_statuses_key <> 7);
|
||
|
||
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
|
||
-- deze keys gebruikt kunnen worden.
|
||
DELETE yask_exp_factuur
|
||
WHERE alg_district_key = v_ml_district_key; -- mindlabs
|
||
|
||
INSERT INTO yask_exp_factuur (fin_factuur_key, dagboek, alg_district_key)
|
||
( SELECT DISTINCT fin_factuur_key, dagboek, v_ml_district_key -- mindlabs
|
||
FROM yask_v_factuur_gegevens_veza
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND alg_district_key = v_ml_district_key -- mindlabs
|
||
AND fin_factuur_datum > SYSDATE - (5 * 365) -- Check op geldige factuurdatum:
|
||
AND fin_factuur_datum < SYSDATE + 365 -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst.
|
||
);
|
||
|
||
-- Bepaal het boekstuknummer (key 1) met het hoogste nummer van dit jaar
|
||
|
||
SELECT MAX(fin_kenmerkfactuur_waarde)
|
||
INTO v_boekstuknummer
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerk_key = 61
|
||
AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY');
|
||
|
||
IF v_boekstuknummer IS NULL
|
||
THEN
|
||
v_boekstuknummer := FAC.safe_to_number(TO_CHAR(SYSDATE, 'YY') || v_dagboek || '0000');
|
||
END IF;
|
||
|
||
-- nu gaan we de boekstuknummer invullen
|
||
FOR rec IN c(v_ml_district_key)
|
||
LOOP
|
||
BEGIN
|
||
-- Als we een nieuwe leverancier/factuurnummer tegenkomen gaan we het boekstuknummer ophogen.
|
||
IF rec.crdnr <> v_crdnr OR rec.factuur_nr <> v_factuur_nr
|
||
THEN
|
||
v_boekstuknummer := v_boekstuknummer + 1;
|
||
v_crdnr := rec.crdnr;
|
||
v_factuur_nr := rec.factuur_nr;
|
||
END IF;
|
||
|
||
FOR rec1 IN c_sub (v_crdnr, v_factuur_nr, v_ml_district_key)
|
||
LOOP
|
||
BEGIN
|
||
-- Boekstuknummer aanmaken
|
||
yask.set_kenmerk('FIN', 61, rec1.fin_factuur_key, v_boekstuknummer, 0);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- De view bevat voor alle subregels volgnummer 1. Deze gaan we nu omzetten naar echte volgnummers.
|
||
FOR rec IN cv
|
||
LOOP
|
||
BEGIN
|
||
v_first := substr(rec.result, 1,1);
|
||
IF v_first = 0 THEN
|
||
v_count := 0;
|
||
ELSE
|
||
v_count := v_count + 1;
|
||
END IF;
|
||
|
||
v_log_prev := v_log;
|
||
v_log := rec.result_order || ' | ' || rec.result_order;
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_regel,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_node)
|
||
VALUES (
|
||
v_count || substr (rec.result, 2),
|
||
SUBSTR(rec.result_order, 1,2) || SUBSTR(rec.result_order, 5,4) || to_char(1000+v_count), -- forceer sortering bij count > 9, alleen jaar en volgnummer van het boekstuknummer zijn interessant.
|
||
v_bestand);
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', SUBSTR (v_errormsg, 1, 1000), '');
|
||
fac.writelog (p_applname, 'I', 'Log: ' || SUBSTR (v_log, 1, 990), '');
|
||
fac.writelog (p_applname, 'I', 'Log_prev: ' || SUBSTR (v_log_prev, 1, 990), '');
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_regel,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_node)
|
||
VALUES (
|
||
'Fout: Export is afgebroken',
|
||
9999999999,
|
||
v_bestand);
|
||
-- Als er iets fout gegaan is willen we voorkomen dat de verwerk actie uitgevoerd wordt.
|
||
DELETE yask_exp_factuur
|
||
WHERE alg_district_key = v_ml_district_key; -- mindlabs
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_vw_exact_veza (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT 'Lijst met bevroren facturen:' fac_rapport_regel, 0 fac_rapport_volgnr
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'VW_EXACTVEZA';
|
||
|
||
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
||
CREATE OR REPLACE PROCEDURE yask_select_vw_exact_veza (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c_fact (c_district_key NUMBER)
|
||
IS
|
||
SELECT f.fin_factuur_key
|
||
FROM yask_exp_factuur f
|
||
, yask_v_factuur_gegevens_veza fg
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND f.dagboek = fg.dagboek
|
||
AND f.alg_district_key = c_district_key -- mindlabs
|
||
AND fg.fin_factuur_statuses_key = 6;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanvrager NUMBER;
|
||
v_bestelling_key NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
v_logdate DATE;
|
||
v_volgnr NUMBER;
|
||
v_ml_district_key NUMBER := 621;
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
|
||
-- Facilitor user
|
||
v_aanvrager := 3;
|
||
|
||
v_logdate := SYSDATE;
|
||
|
||
v_bestand := 'VW_EXACTVEZA';
|
||
v_volgnr := 1;
|
||
-- Eerst opruiming
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
FOR rec1 IN c_fact(v_ml_district_key)
|
||
LOOP
|
||
BEGIN
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7
|
||
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (v_bestand,
|
||
v_volgnr,
|
||
rec1.fin_factuur_key);
|
||
|
||
v_volgnr := v_volgnr + 1;
|
||
END;
|
||
END LOOP;
|
||
DELETE yask_exp_factuur
|
||
WHERE alg_district_key = v_ml_district_key;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Einde VEZA exact export
|
||
|
||
CREATE OR REPLACE VIEW yask_v_noti_fin_factuur_note
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST01',
|
||
NULL,
|
||
p.prs_perslid_key,
|
||
'Er is een notitie aan factuur '
|
||
|| n.fin_factuur_key
|
||
|| ' toegevoegd.',
|
||
n.fin_factuur_key,
|
||
NULL
|
||
FROM fin_factuur_note n,
|
||
prs_perslid p,
|
||
fac_gebruikersgroep gg,
|
||
fac_groeprechten gr,
|
||
fac_functie f
|
||
WHERE p.prs_perslid_key = gg.prs_perslid_key
|
||
AND COALESCE (p.prs_perslid_srtnoti_mode, 0) <> 0
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_USER04'
|
||
AND n.prs_perslid_key <> gg.prs_perslid_key
|
||
AND n.fin_factuur_note_aanmaak BETWEEN (SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval
|
||
/ 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view =
|
||
'YASK_V_NOTI_FIN_FACTUUR_NOTE')
|
||
AND (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view =
|
||
'YASK_V_NOTI_FIN_FACTUUR_NOTE');
|
||
|
||
-- View tbv klant Renewi voor opdrachten die van contract naar mandaat zijn gezet
|
||
-- alleen voor tracing van OPDUPD
|
||
-- tracking moet deze tekst bevattnen contractopdracht --> mandaatopdracht.
|
||
|
||
CREATE OR REPLACE VIEW yask_v_conract2mandaatopd
|
||
(
|
||
mld_key,
|
||
mld_omschrijving,
|
||
opdracht_nr
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,m.mld_melding_omschrijving, m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM fac_tracking f, mld_melding m, mld_opdr o where m.mld_melding_key = o.mld_melding_key
|
||
AND m.prs_perslid_key= 10161
|
||
AND f.fac_tracking_refkey=o.mld_opdr_key
|
||
AND f.fac_srtnotificatie_key=76
|
||
AND lower(f.fac_tracking_oms) like '%contractopdracht --> mandaatopdracht%';
|
||
|
||
-- YASK#85310 Rapportage view voor catering waarbij de dezelfde kolommen niet getoond worden.
|
||
-- Kenmerksoort 41 bevat extra informatie over de artikelen.
|
||
CREATE OR REPLACE VIEW yask_v_rap_catering_overview
|
||
AS
|
||
SELECT TRUNC (rrr.res_rsv_ruimte_van) van,
|
||
res_rsv_ruimte_van,
|
||
l.alg_locatie_omschrijving,
|
||
alg_locatie_adres,
|
||
alg_ruimte_omschrijving,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_reservering_nr,
|
||
res_rsv_ruimte_omschrijving,
|
||
res_rsv_ruimte_opmerking,
|
||
res_rsv_artikel_levering,
|
||
rra.res_rsv_artikel_aantal
|
||
|| ' * '
|
||
|| res_artikel_omschrijving
|
||
|| DECODE (ka.res_kenmerkartikel_waarde, NULL, NULL, ' (' || res_kenmerkartikel_waarde || ')') artikel,
|
||
rd.ins_discipline_omschrijving,
|
||
rd.ins_discipline_key fclt_3d_discipline_key
|
||
FROM res_reservering r,
|
||
res_rsv_ruimte rrr,
|
||
(SELECT res_rsv_ruimte_key, alg_ruimte_key
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte r2a
|
||
UNION
|
||
SELECT res_rsv_ruimte_key, alg_ruimte_key
|
||
FROM res_rsv_ruimte
|
||
WHERE alg_ruimte_key IS NOT NULL) r2a,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
(SELECT res_kenmerkartikel_waarde, res_rsv_artikel_key
|
||
FROM res_kenmerkartikel kw, res_kenmerk k
|
||
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 41) ka,
|
||
ins_tab_discipline rd
|
||
WHERE r.res_reservering_key = rrr.res_reservering_key
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key
|
||
AND r2a.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rra.res_rsv_artikel_key = ka.res_rsv_artikel_key(+)
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rra.res_rsv_artikel_verwijder IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- Importfunctie om contactpersonen bij bedrijven toe te voegen aan FACILITOR
|
||
--
|
||
-- Hopelijk wordt deze met 2021.1 opgenomen in de standaard
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE PROCEDURE yask_import_contactpersoon (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (400);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in FAC_PACF.SRC bij de fac_import_perslid_upd_body proc
|
||
prs.import_perslid (p_import_key,
|
||
'0;0;0;0;0;0;1;2;3;5;' ||
|
||
'4;0;0;0;0;7;8;9;0;11;' ||
|
||
'10;12;13;6;0;0;14;15;0;0;'||
|
||
'0;0;0;0;0;0;0;0;0;0;'||
|
||
'0;0;0;0;0;0',
|
||
'Afdelingscode;PersoonAchternaam;Tussenvoegsel;Voorletters;Voornaam;Titel/Aanhef;Telefoonnummer;Mobiel;Email;Functie;Personeelsnummer;Loginnaam;Password;Bedrijf;Autorisatieprofiel%'
|
||
);
|
||
|
||
-- Klantspecifieke aanpassingen
|
||
v_errorhint := 'Controle op Bedrijf';
|
||
FOR rec IN (SELECT distinct prs_kenmerk1 FROM fac_imp_perslid)
|
||
LOOP
|
||
IF rec.prs_kenmerk1 IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER(prs_bedrijf_naam) = upper(rec.prs_kenmerk1);
|
||
|
||
IF v_count <> 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Bedrijf: ' || rec.prs_kenmerk1 || ' komt ' || v_count || ' keer voor in de lijst met bedrijven.', v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
v_errorhint := 'Controle op Autorisatieprofiel';
|
||
FOR rec IN (SELECT prs_kenmerk2 FROM fac_imp_perslid)
|
||
LOOP
|
||
IF rec.prs_kenmerk2 IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_groep
|
||
WHERE upper(fac_groep_omschrijving) = upper(rec.prs_kenmerk2);
|
||
|
||
IF v_count <> 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Autorisatieprofiel: ' || rec.prs_kenmerk2 || ' komt ' || v_count || ' keer voor in de lijst met autorisatieprofielen.', v_errorhint);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END yask_import_contactpersoon;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE yask_update_contactpersoon (
|
||
p_import_key IN NUMBER)
|
||
IS
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM fac_imp_perslid;
|
||
|
||
v_count NUMBER;
|
||
v_perslid_key NUMBER;
|
||
v_bedrijf_key NUMBER;
|
||
v_groep_key NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (400);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
BEGIN
|
||
-- generic update
|
||
prs.update_perslid (p_import_key, 'NR', 'A');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Zoek aangemaakt persoon.';
|
||
|
||
SELECT MAX (prs_perslid_key)
|
||
INTO v_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE rec.prs_perslid_naam = p.prs_perslid_naam
|
||
AND COALESCE (rec.prs_perslid_voornaam, 'Voornaam') =
|
||
COALESCE (p.prs_perslid_voornaam, 'Voornaam')
|
||
AND COALESCE (rec.prs_perslid_tussenvoegsel, 'Tussenvoegsel') =
|
||
COALESCE (p.prs_perslid_tussenvoegsel, 'Tussenvoegsel')
|
||
AND COALESCE (rec.prs_perslid_voorletters, 'Voorletters') =
|
||
COALESCE (p.prs_perslid_voorletters, 'Voorletters')
|
||
AND p.prs_perslid_aanmaak > SYSDATE - 1
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
|
||
IF v_perslid_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Persoon: '
|
||
|| rec.prs_perslid_naam
|
||
|| '-'
|
||
|| rec.prs_perslid_voornaam
|
||
|| '-'
|
||
|| rec.prs_perslid_voorletters
|
||
|| ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
v_errorhint := 'Zoek bedrijf.';
|
||
|
||
SELECT MAX (prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND UPPER (prs_bedrijf_naam) = UPPER (rec.prs_kenmerk1);
|
||
|
||
IF v_bedrijf_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Bedrijf: ' || rec.prs_kenmerk1 || ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam,
|
||
prs_contactpersoon_tussenv,
|
||
prs_contactpersoon_voorletters,
|
||
prs_contactpersoon_voornaam,
|
||
prs_contactpersoon_titel,
|
||
prs_contactpersoon_telefoon_1,
|
||
prs_contactpersoon_telefoon_2,
|
||
prs_contactpersoon_email,
|
||
prs_perslid_key,
|
||
prs_bedrijf_key)
|
||
VALUES (SUBSTR(rec.prs_perslid_naam, 1, 30),
|
||
rec.prs_perslid_tussenvoegsel,
|
||
rec.prs_perslid_voorletters,
|
||
rec.prs_perslid_voornaam,
|
||
rec.prs_perslid_titel,
|
||
rec.prs_perslid_telefoonnr,
|
||
rec.prs_perslid_mobiel,
|
||
rec.prs_perslid_email,
|
||
v_perslid_key,
|
||
v_bedrijf_key);
|
||
|
||
v_errorhint := 'Zoek autorisatiegroep.';
|
||
|
||
SELECT MAX (fac_groep_key)
|
||
INTO v_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (rec.prs_kenmerk2) = UPPER (fac_groep_omschrijving);
|
||
|
||
IF v_groep_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Autorisatiegroep: '
|
||
|| rec.prs_kenmerk2
|
||
|| ' kan niet gevonden worden.',
|
||
v_errorhint);
|
||
ELSE
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key,
|
||
fac_groep_key)
|
||
VALUES (v_perslid_key, v_groep_key);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END yask_update_contactpersoon;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW yask_v_noti_cntreminder
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
fac_srtnotificatie_key,
|
||
attachments,
|
||
xsender,
|
||
prs_bedrijfadres_key
|
||
)
|
||
AS
|
||
SELECT '',
|
||
'',
|
||
c.prs_perslid_key_beh,
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie,
|
||
NULL, '',
|
||
'.' || cnt_contract_versie)
|
||
|| ' ('
|
||
|| c.cnt_contract_omschrijving
|
||
|| ' '
|
||
|| b.prs_bedrijf_naam
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL,
|
||
NULL
|
||
xemail,
|
||
NULL
|
||
xmobile,
|
||
NULL
|
||
fac_srtnotificatie_key,
|
||
NULL
|
||
attachments,
|
||
NULL
|
||
xsender,
|
||
NULL
|
||
prs_bedrijfadres_key
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND cnt_contract_status = 0
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
||
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
|
||
UNION
|
||
SELECT '',
|
||
'',
|
||
c.prs_perslid_key_eig,
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie,
|
||
NULL, '',
|
||
'.' || cnt_contract_versie)
|
||
|| ' ('
|
||
|| c.cnt_contract_omschrijving
|
||
|| ' '
|
||
|| b.prs_bedrijf_naam
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL,
|
||
NULL
|
||
xemail,
|
||
NULL
|
||
xmobile,
|
||
NULL
|
||
fac_srtnotificatie_key,
|
||
NULL
|
||
attachments,
|
||
NULL
|
||
xsender,
|
||
NULL
|
||
prs_bedrijfadres_key
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND cnt_contract_status = 0
|
||
AND c.prs_perslid_key_eig IS NOT NULL
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
||
AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
|
||
|
||
|
||
CREATE OR REPLACE VIEW yask_v_noti_ctrreminder
|
||
AS
|
||
SELECT 'CUST03' code,
|
||
NULL sender,
|
||
prs_perslid_key receiver,
|
||
'Taak "' || ins_srtcontrole_omschrijving || '" moet vandaag voor pand ' || ins_deel_omschrijving || ' uitgevoerd worden.' text,
|
||
ins_deel_key key,
|
||
NULL xkey
|
||
FROM (WITH
|
||
gepland
|
||
AS
|
||
(SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_plandatum
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deelsrtcontrole_status = 0)
|
||
SELECT n.prs_perslid_key,
|
||
n.INS_SRTCONTROLE_KEY,
|
||
n.ins_deel_key,
|
||
n.ins_deel_omschrijving,
|
||
n.ins_srtcontrole_omschrijving,
|
||
g.ins_deelsrtcontrole_plandatum
|
||
FROM (SELECT p.prs_perslid_key,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
dg.ins_deel_omschrijving,
|
||
dg.ins_deel_key,
|
||
sc.ins_srtcontrole_key
|
||
FROM ins_v_deel_gegevens dg,
|
||
ins_srtcontrole sc,
|
||
prs_perslid p,
|
||
fac_groeprechten gr,
|
||
fac_gebruikersgroep gg
|
||
WHERE dg.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
||
AND dg.ins_discipline_omschrijving = 'Gebouw'
|
||
AND gr.ins_discipline_key = dg.ins_discipline_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_groep_key = 1161 -- SGE_gebouw_inspecties
|
||
) n
|
||
JOIN gepland g
|
||
ON n.ins_deel_key = g.ins_deel_key(+) AND n.ins_srtcontrole_key = g.ins_srtcontrole_key(+))
|
||
WHERE TRUNC (COALESCE (ins_deelsrtcontrole_plandatum,
|
||
fac.nextcyclusdatedeel (ins_deel_key, ins_srtcontrole_key, 1)
|
||
)) =
|
||
TRUNC (SYSDATE)
|
||
GROUP BY prs_perslid_key, ins_srtcontrole_omschrijving, ins_deel_omschrijving, ins_deel_key;
|
||
|
||
-- Views voor het opleveren van bijlagen
|
||
CREATE OR REPLACE VIEW yask_v_export_factuur_bijlage
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' alg_locatie_omschrijving,
|
||
g.alg_gebouw_code,
|
||
kf.fin_kenmerk_omschrijving,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(kf.fin_kenmerk_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH(
|
||
di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(kf.fin_kenmerk_omschrijving , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
fin_factuur f,
|
||
mld_melding m,
|
||
mld_opdr o,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_key,
|
||
COALESCE (og.alg_gebouw_code, 'Geen gebouw') alg_gebouw_code
|
||
FROM mld_melding m,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ) g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
fin_kenmerk kf
|
||
WHERE b.fac_bijlagen_refkey = f.fin_factuur_key
|
||
AND b.fac_bijlagen_module = 'FIN'
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = g.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND b.fac_bijlagen_kenmerk_key = kf.fin_kenmerk_key;
|
||
|
||
CREATE OR REPLACE VIEW yask_v_export_opdracht_bijlage
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving,
|
||
ot.mld_typeopdr_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' alg_locatie_omschrijving,
|
||
g.alg_gebouw_code,
|
||
COALESCE(km.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving) mld_kenmerk_omschrijving,
|
||
b.fac_bijlagen_aanmaak,
|
||
b.fac_bijlagen_key,
|
||
di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(COALESCE(km.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving) , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory)
|
||
LENGTH(
|
||
di.alg_district_omschrijving
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(l.alg_locatie_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44),'')
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(g.alg_gebouw_code , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| CHR(92)
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| CHR(92)
|
||
|| REPLACE(REGEXP_REPLACE(COALESCE(km.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving) , '[^[a-z,A-Z,0-9,[:space:]]]*', ''), CHR(44), '')
|
||
|| CHR(92)
|
||
|| b.fac_bijlagen_filename
|
||
) check_lengte
|
||
FROM fac_v_bijlagen b,
|
||
mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT m.mld_melding_key,
|
||
COALESCE (og.alg_gebouw_code, 'Geen gebouw') alg_gebouw_code
|
||
FROM mld_melding m,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) ) g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio r,
|
||
mld_kenmerk km,
|
||
mld_srtkenmerk sk
|
||
WHERE b.fac_bijlagen_refkey = o.mld_opdr_key
|
||
AND b.fac_bijlagen_module = 'MLD'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = g.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = r.alg_regio_key
|
||
AND b.fac_bijlagen_verwijder IS NULL
|
||
AND b.fac_bijlagen_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_kenmerk_niveau = 'O'
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|