PCHX#75973 -- Herimplementatie PCH
svn path=/Customer/trunk/; revision=63204
This commit is contained in:
116
PCHX/pchx.sql
116
PCHX/pchx.sql
@@ -45,6 +45,9 @@ AS
|
||||
p_link_key IN NUMBER)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
FUNCTION fin_get_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
PROCEDURE fin_set_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER);
|
||||
|
||||
PROCEDURE fin_set_projectloc_code (p_factuur_key IN NUMBER);
|
||||
@@ -274,7 +277,8 @@ AS
|
||||
v_kenmerk_waarde);
|
||||
END;
|
||||
|
||||
PROCEDURE fin_set_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||||
FUNCTION fin_get_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||||
RETURN VARCHAR2
|
||||
AS
|
||||
v_bestelopdr_key NUMBER;
|
||||
v_contract_key NUMBER;
|
||||
@@ -328,13 +332,27 @@ AS
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
SELECT DISTINCT alg_locatie_code
|
||||
INTO v_locatie_code
|
||||
FROM cnt_contract_plaats cp, alg_v_ruimte_gegevens ar
|
||||
WHERE cp.cnt_contract_key = v_contract_key
|
||||
AND cp.cnt_alg_plaats_code = 'R'
|
||||
AND cp.cnt_alg_plaats_key = ar.alg_ruimte_key
|
||||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||||
BEGIN
|
||||
SELECT DISTINCT alg_locatie_code
|
||||
INTO v_locatie_code
|
||||
FROM cnt_contract_plaats cp, alg_locatie l, alg_gebouw g, alg_verdieping v
|
||||
WHERE cp.cnt_contract_key = v_contract_key
|
||||
AND cp.cnt_alg_plaats_code = 'V'
|
||||
AND cp.cnt_alg_plaats_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND l.alg_locatie_key = g.alg_locatie_key
|
||||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
SELECT DISTINCT alg_locatie_code
|
||||
INTO v_locatie_code
|
||||
FROM cnt_contract_plaats cp, alg_v_ruimte_gegevens ar
|
||||
WHERE cp.cnt_contract_key = v_contract_key
|
||||
AND cp.cnt_alg_plaats_code = 'R'
|
||||
AND cp.cnt_alg_plaats_key = ar.alg_ruimte_key
|
||||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||||
END;
|
||||
END;
|
||||
END;
|
||||
END IF;
|
||||
@@ -361,8 +379,29 @@ AS
|
||||
v_locatie_code := 'Onbekend';
|
||||
END;
|
||||
|
||||
UPDATE fin_factuurregel SET fin_factuurregel_referentie = v_locatie_code
|
||||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||||
RETURN v_locatie_code;
|
||||
END;
|
||||
|
||||
PROCEDURE fin_set_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||||
AS
|
||||
v_locatie_code VARCHAR2 (100);
|
||||
v_locatie_count NUMBER;
|
||||
BEGIN
|
||||
SELECT count(*)
|
||||
INTO v_locatie_count
|
||||
FROM fin_factuurregel fr, alg_locatie l
|
||||
WHERE fr.fin_factuurregel_referentie = l.alg_locatie_code
|
||||
AND l.alg_locatie_verwijder IS NULL
|
||||
AND fr.fin_factuurregel_key = p_factuurregel_key;
|
||||
|
||||
v_locatie_code := fin_get_locatie_code (p_factuur_key, p_factuurregel_key);
|
||||
|
||||
-- We gaan het referentie veld aanpassen als het veld nog niet met een geldige locatiecode gevuld was.
|
||||
IF v_locatie_count = 0
|
||||
THEN
|
||||
UPDATE fin_factuurregel SET fin_factuurregel_referentie = v_locatie_code
|
||||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
PROCEDURE fin_set_projectloc_code (p_factuur_key IN NUMBER)
|
||||
@@ -689,12 +728,7 @@ AS
|
||||
'Onbekend' vk_prs_kostensoort_refcode,
|
||||
kr.prs_kostensoort_key,
|
||||
COALESCE (
|
||||
(SELECT prs_kostenplaats_key
|
||||
FROM prs_kostenplaats kpr, fin_kenmerkfactregel kfr
|
||||
WHERE kfr.fin_kenmerk_key = 26
|
||||
AND kfr.fin_factuurregel_key = fr.fin_factuurregel_key
|
||||
AND fac.safe_to_number (fin_kenmerkfactregel_waarde) =
|
||||
kpr.prs_kostenplaats_key),
|
||||
fr_afwk.afw_kostenplaats_key,
|
||||
o.prs_kostenplaats_key,
|
||||
c.prs_kostenplaats_key,
|
||||
(SELECT DISTINCT b.prs_kostenplaats_key
|
||||
@@ -706,18 +740,6 @@ AS
|
||||
bi.bes_bestelopdr_item_key
|
||||
AND bi.bes_bestelling_key = b.bes_bestelling_key))
|
||||
prs_kostenplaats_key,
|
||||
COALESCE (
|
||||
o.prs_kostenplaats_key,
|
||||
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_org,
|
||||
o.mld_opdr_key,
|
||||
c.cnt_contract_key,
|
||||
bo.bes_bestelopdr_key,
|
||||
@@ -1040,18 +1062,44 @@ AS
|
||||
administratie,
|
||||
fin_factuur_key,
|
||||
fin_factuurregel_nr,
|
||||
afw_kostenplaats_key prs_kostenplaats_nr,
|
||||
fin_factuur_statuses_key,
|
||||
alg_locatie_code
|
||||
FROM pchx_v_factuur_gegevens fg,
|
||||
prs_kostenplaats kp
|
||||
WHERE kp.prs_kostenplaats_key = COALESCE(afw_kostenplaats_key, fg.prs_kostenplaats_org)
|
||||
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key
|
||||
-- Alleen als de kosten doorbelast moeten worden gaan we controleren of de werkmaatschappij wel aan de locatie gekoppeld is.
|
||||
AND ( SUBSTR(boekstuknummer,2,2) <> '70'
|
||||
OR
|
||||
EXISTS (SELECT 1 FROM pchx_v_wm_loc wl
|
||||
( EXISTS (SELECT 1 FROM pchx_v_wm_loc wl
|
||||
WHERE wl.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND wl.alg_locatie_code = fg.alg_locatie_code));
|
||||
AND wl.alg_locatie_code = fg.alg_locatie_code))
|
||||
AND prs_kostensoort_oms IS NOT NULL);
|
||||
|
||||
-- View om ongeldige facturen boven water te krijgen. Een ongeldige factuur is een factuur zonder kostensoort
|
||||
CREATE OR REPLACE VIEW pchx_v_rap_ongeldige_factuur
|
||||
AS
|
||||
SELECT fin_factuur_key,
|
||||
opdracht_id,
|
||||
fin_factuur_datum,
|
||||
fin_factuur_nr,
|
||||
fin_factuurregel_omschrijving,
|
||||
fin_factuurregel_totaal,
|
||||
fin_btwtabelwaarde_code,
|
||||
fin_factuur_opmerking,
|
||||
boekstuknummer,
|
||||
SUBSTR (boekstuknummer, 2, 2) dagboek,
|
||||
prs_kostensoort_oms,
|
||||
PCHX.fin_get_locatie_code (fin_factuur_key, fin_factuurregel_key) locatie,
|
||||
k.prs_kostenplaats_nr,
|
||||
s.fin_factuur_statuses_omschr
|
||||
FROM pchx_v_factuur_gegevens f, fin_factuur_statuses s, prs_kostenplaats k
|
||||
WHERE f.fin_factuur_statuses_key IN (2, 5, 6)
|
||||
AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM PCHX_V_BRON_EXPORT_EXACT_XML x
|
||||
WHERE f.fin_factuur_key = x.fin_factuur_key)
|
||||
AND f.prs_kostenplaats_key = k.prs_kostenplaats_key;
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- EXPORTFUNCTIE - Export exact verwerk
|
||||
@@ -2194,7 +2242,7 @@ AS
|
||||
prs_kostenplaats k,
|
||||
prs_v_perslid_fullnames pf
|
||||
WHERE fin_factuur_statuses_key = 2
|
||||
AND fg.prs_kostenplaats_org = k.prs_kostenplaats_key
|
||||
AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND k.prs_perslid_key = pf.prs_perslid_key
|
||||
GROUP BY prs_perslid_naam_full, boekstuknummer)
|
||||
GROUP BY prs_perslid_naam_full;
|
||||
@@ -2214,7 +2262,7 @@ AS
|
||||
prs_kostenplaats k,
|
||||
prs_v_perslid_fullnames pf
|
||||
WHERE fin_factuur_statuses_key = 2
|
||||
AND fg.prs_kostenplaats_org = k.prs_kostenplaats_key
|
||||
AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND k.prs_perslid_key = pf.prs_perslid_key
|
||||
GROUP BY prs_perslid_naam_full, boekstuknummer)
|
||||
GROUP BY prs_perslid_naam_full;
|
||||
|
||||
Reference in New Issue
Block a user