FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization

svn path=/Database/trunk/; revision=33432
This commit is contained in:
Erik Groener
2017-04-07 12:11:34 +00:00
parent 17bcc618be
commit 4fee276d2a

View File

@@ -1026,6 +1026,131 @@ AS
END IF;
END;
PROCEDURE create_bgt_ancestor_node(p_child IN VARCHAR2, p_key IN NUMBER)
AS
CURSOR c_soort(p_child_key NUMBER)
IS
SELECT s.prs_kostensoort_key
, s.prs_kostensoort_oms
, s.prs_kostensoort_opmerking
FROM prs_kostensoort s
WHERE s.prs_kostensoort_key = p_child_key;
CURSOR c_groep(p_child_key NUMBER)
IS
SELECT g.prs_kostensoortgrp_key
, g.prs_kostensoortgrp_altcode
, g.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp g
, prs_kostensoort s
WHERE g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key
AND s.prs_kostensoort_key = p_child_key;
CURSOR c_rubriek(p_child_key NUMBER)
IS
SELECT r.bgt_kostenrubriek_key
, r.bgt_kostenrubriek_code
, r.bgt_kostenrubriek_oms
FROM bgt_kostenrubriek r
, prs_kostensoortgrp g
WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key
AND g.prs_kostensoortgrp_key = p_child_key;
CURSOR c_project(p_child_key NUMBER)
IS
SELECT p.bgt_project_key
, p.bgt_project_code
, p.bgt_project_omschrijving
FROM bgt_project p
, bgt_kostenrubriek r
WHERE p.bgt_project_key = r.bgt_project_key
AND r.bgt_kostenrubriek_key = p_child_key;
CURSOR c_discipline(p_child_key NUMBER)
IS
SELECT d.ins_discipline_key
, d.ins_discipline_omschrijving
, p.bgt_disc_params_code
, p.bgt_disc_params_opdrachtgever
FROM ins_tab_discipline d
, bgt_disc_params p
, bgt_project s
WHERE d.ins_discipline_key = p.bgt_ins_discipline_key
AND d.ins_discipline_key = s.ins_discipline_key
AND s.bgt_project_key = p_child_key;
v_key NUMBER(10);
v_child VARCHAR2(30);
BEGIN
createopentag ('ancestor');
v_key := p_key;
v_child := p_child;
IF v_child = 'soort_key' -- als je alleen de kostensoort_key hebt, maar geen kostensoort gegevens.
THEN
FOR c5 IN c_soort(v_key)
LOOP
createopentag('soort');
createxmltagvalue('key', c5.prs_kostensoort_key);
createxmltagvalue('code', c5.prs_kostensoort_oms);
createxmltagvalue('name', c5.prs_kostensoort_opmerking);
createclosetag('soort');
v_child := 'soort';
v_key := c5.prs_kostensoort_key;
END LOOP;
END IF;
IF v_child = 'soort'
THEN
FOR c4 IN c_groep(v_key)
LOOP
createopentag('groep');
createxmltagvalue('key', c4.prs_kostensoortgrp_key);
createxmltagvalue('code', c4.prs_kostensoortgrp_oms);
createxmltagvalue('name', c4.prs_kostensoortgrp_altcode);
createclosetag('groep');
v_child := 'groep';
v_key := c4.prs_kostensoortgrp_key;
END LOOP;
END IF;
IF v_child = 'groep'
THEN
FOR c3 IN c_rubriek(v_key)
LOOP
createopentag('rubriek');
createxmltagvalue('key', c3.bgt_kostenrubriek_key);
createxmltagvalue('code', c3.bgt_kostenrubriek_code);
createxmltagvalue('name', c3.bgt_kostenrubriek_oms);
createclosetag('rubriek');
v_child := 'rubriek';
v_key := c3.bgt_kostenrubriek_key;
END LOOP;
END IF;
IF v_child = 'rubriek'
THEN
FOR c2 IN c_project(v_key)
LOOP
createopentag('project');
createxmltagvalue('key', c2.bgt_project_key);
createxmltagvalue('code', c2.bgt_project_code);
createxmltagvalue('name', c2.bgt_project_omschrijving);
createclosetag('project');
v_child := 'project';
v_key := c2.bgt_project_key;
END LOOP;
END IF;
if v_child = 'project'
THEN
FOR c1 IN c_discipline(v_key)
LOOP
createopentag('discipline');
createxmltagvalue('key', c1.ins_discipline_key);
createxmltagvalue('code', c1.bgt_disc_params_code);
createxmltagvalue('name', c1.ins_discipline_omschrijving);
createxmltagvalue('principal', c1.bgt_disc_params_opdrachtgever);
createclosetag('discipline');
v_child := 'discipline';
v_key := c1.ins_discipline_key;
END LOOP;
END IF;
-- IF v_child = 'discipline' :: Dan heb je alle gegevens al.
createclosetag ('ancestor');
END;
PROCEDURE create_bgt_budgetmutatie_node (p_key IN NUMBER)
AS
v_datum bgt_budgetmutatie.bgt_budgetmutatie_datum%TYPE;
@@ -1150,6 +1275,11 @@ AS
BEGIN
IF p_key IS NOT NULL
THEN
IF p_concise -- dan ook parent_info
THEN
create_bgt_ancestor_node('soort', p_key);
END IF;
--
createopentag ('kostensoort');
SELECT k.prs_kostensoort_oms,
@@ -1182,7 +1312,6 @@ AS
createxmltagvalue ('doorbelasten', v_doorbelasten);
createxmltagvalue ('btw', v_btw);
--
--*--
IF p_concise THEN
FOR rec1 IN c_factuur
LOOP
@@ -8528,7 +8657,7 @@ AS
END IF;
END;
PROCEDURE create_prs_kostensoortgrp_node (p_key IN NUMBER)
PROCEDURE create_prs_kostensoortgrp_node (p_key IN NUMBER, p_parent_info BOOLEAN DEFAULT FALSE)
AS
CURSOR c_soort
IS
@@ -8540,13 +8669,18 @@ AS
BEGIN
IF p_key IS NOT NULL
THEN
IF p_parent_info
THEN
create_bgt_ancestor_node('groep', p_key);
END IF;
--
SELECT prs_kostensoortgrp_altcode
, prs_kostensoortgrp_oms
INTO v_altcode
, v_oms
FROM prs_kostensoortgrp
WHERE prs_kostensoortgrp_key = p_key;
createopentag ('group');
createopentag ('kostengroep');
createxmltagvalue ('key', mynumbertochar (p_key));
createxmltagvalue ('code', v_altcode);
createxmltagvalue ('name', v_oms);
@@ -8554,10 +8688,10 @@ AS
LOOP
create_prs_kostensoort_node (rec1.prs_kostensoort_key, TRUE);
END LOOP;
createclosetag ('group');
createclosetag ('kostengroep');
END IF;
END;
PROCEDURE create_bgt_kostenrubriek_node (p_key IN NUMBER)
PROCEDURE create_bgt_kostenrubriek_node (p_key IN NUMBER, p_parent_info BOOLEAN DEFAULT FALSE)
AS
CURSOR c_groep
IS
@@ -8576,13 +8710,18 @@ AS
BEGIN
IF p_key IS NOT NULL
THEN
IF p_parent_info
THEN
create_bgt_ancestor_node('rubriek', p_key);
END IF;
--
SELECT bgt_kostenrubriek_code
, bgt_kostenrubriek_oms
INTO v_code
, v_oms
FROM bgt_kostenrubriek
WHERE bgt_kostenrubriek_key = p_key;
createopentag ('category');
createopentag ('kostenrubriek');
createxmltagvalue ('key', mynumbertochar (p_key));
createxmltagvalue ('code', v_code);
createxmltagvalue ('name', v_oms);
@@ -8594,10 +8733,10 @@ AS
LOOP
create_bgt_budget_node (rec2.bgt_budget_key);
END LOOP;
createclosetag ('category');
createclosetag ('kostenrubriek');
END IF;
END;
PROCEDURE create_bgt_project_node (p_key IN NUMBER)
PROCEDURE create_bgt_project_node (p_key IN NUMBER, p_parent_info BOOLEAN DEFAULT FALSE)
AS
CURSOR c_rubriek
IS
@@ -8613,6 +8752,11 @@ AS
BEGIN
IF p_key IS NOT NULL
THEN
IF p_parent_info
THEN
create_bgt_ancestor_node('project', p_key);
END IF;
--
SELECT bgt_project_code
, bgt_project_omschrijving
, bgt_project_volgnr
@@ -8685,6 +8829,21 @@ AS
createclosetag ('discipline');
END IF;
END;
PROCEDURE create_bgt_node (p_key IN NUMBER, p_where IN VARCHAR2)
AS
BEGIN
createopentag('start_in');
createxmltagvalue ('node', p_where);
createclosetag('start_in');
CASE p_where
WHEN 'discipline' THEN create_bgt_discipline_node(p_key);
WHEN 'project' THEN create_bgt_project_node(p_key, TRUE);
WHEN 'kostenrubriek' THEN create_bgt_kostenrubriek_node(p_key, TRUE);
WHEN 'kostengroep' THEN create_prs_kostensoortgrp_node(p_key, TRUE);
WHEN 'kostensoort' THEN create_prs_kostensoort_node(p_key, TRUE);
ELSE create_bgt_discipline_node(-1);
END CASE;
END;
PROCEDURE xml_node (p_xmlnode IN VARCHAR2,
p_key IN NUMBER,
@@ -8799,7 +8958,8 @@ AS
p_concise);
WHEN 'budget'
THEN
create_bgt_discipline_node (p_key);
-- create_bgt_discipline_node (p_key);
create_bgt_node (p_key, p_where);
ELSE
v_sql_stmt :=
'BEGIN '