660 lines
24 KiB
MySQL
660 lines
24 KiB
MySQL
SPOOL xconn460to461.lst
|
|
|
|
-- CONN#583
|
|
-- conversie van flexkenmerken van opdrachten naar facturen
|
|
-- Vervallen van oude flexkenmerken
|
|
|
|
-- IN CONN>SQL opnemen: importtabel Basware
|
|
|
|
-- CONN#668
|
|
-- Gebruik van fip_error tabel voor logging
|
|
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
|
|
|
|
DROP TABLE fip_error;
|
|
|
|
CREATE TABLE fip_error
|
|
(
|
|
recno NUMBER(10)
|
|
,rec_table VARCHAR2(32)
|
|
,descript VARCHAR2(1024)
|
|
,fip_errmes_date DATE
|
|
,fip_errmes VARCHAR2(1000)
|
|
,fip_key NUMBER(10)
|
|
);
|
|
|
|
DROP SEQUENCE fip_s_fip_fip_error_key;
|
|
|
|
CREATE SEQUENCE fip_s_fip_fip_error_key MINVALUE 1;
|
|
|
|
CREATE OR REPLACE TRIGGER fip_t_fip_error_B_IU
|
|
BEFORE INSERT OR UPDATE ON fip_error
|
|
FOR EACH ROW
|
|
DECLARE lDate DATE; lNumber NUMBER;
|
|
BEGIN
|
|
|
|
:new.fip_errmes_date := SYSDATE;
|
|
|
|
IF :NEW.fip_key IS NULL THEN
|
|
SELECT fip_s_fip_fip_error_key.NEXTVAL
|
|
INTO :NEW.fip_key
|
|
FROM DUAL;
|
|
END IF;
|
|
|
|
END;
|
|
/
|
|
|
|
-- Kostenplaats aanmaken.
|
|
-- Aanmaak van de standaard VG kostenplaats
|
|
INSERT INTO prs_kostenplaats
|
|
(prs_kostenplaats_nr, prs_kostenplaats_upper, prs_kostenplaats_omschrijving, prs_kostenplaats_module
|
|
)
|
|
VALUES ('VG-KPN', 'VG-KPN', 'Vastgoed', 'PRS'
|
|
);
|
|
|
|
-- Aanmaak van de standaard FB kostenplaats indien kenmerk "doorbelasten aan" is NEE
|
|
INSERT INTO prs_kostenplaats
|
|
(prs_kostenplaats_nr, prs_kostenplaats_upper, prs_kostenplaats_omschrijving, prs_kostenplaats_module
|
|
)
|
|
VALUES ('FB-KPN', 'FB-KPN', 'Faciliteer bedrijf', 'PRS'
|
|
);
|
|
|
|
COMMIT;
|
|
|
|
DECLARE
|
|
mld_key NUMBER;
|
|
kp_key NUMBER;
|
|
|
|
-- kenmerk keys
|
|
kkey_sumfac NUMBER;
|
|
|
|
-- kostenplaats keys
|
|
vg_kostenplaats NUMBER;
|
|
fb_kostenplaats NUMBER;
|
|
eigenaar_kp NUMBER;
|
|
|
|
old_mldopdr_key NUMBER;
|
|
new_mldopdr_key NUMBER;
|
|
|
|
kostensoort_key NUMBER;
|
|
|
|
-- query met eigen aangemaakte kostenplaatsen (fac_usrtab/fac_usrdata)
|
|
-- fac_usrtab_key 30 (Kostensoort FB) en 31 (Kostensoort VG)
|
|
CURSOR query_kostensoort IS
|
|
SELECT fud.fac_usrdata_code qk_code,
|
|
fud.fac_usrdata_omschr qk_omschr
|
|
FROM fac_usrdata fud
|
|
WHERE fud.fac_usrtab_key IN (30,31)
|
|
ORDER BY fud.fac_usrdata_code;
|
|
|
|
-- Voor elke mld_opdr het kenmerk "Totaal bedrag factuur" overzetten (ckkey_sumfac wordt 128)
|
|
CURSOR waarde_cursor (ckkey_sumfac IN NUMBER)
|
|
IS
|
|
SELECT o.mld_opdr_key cmldopdr_key,
|
|
(SELECT v.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr v, mld_kenmerk vk
|
|
WHERE v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) ckenmerkwaarde
|
|
FROM mld_opdr o,
|
|
mld_srtkenmerk t,
|
|
mld_kenmerk k,
|
|
mld_typeopdr s,
|
|
mld_refsrtkenmerk r
|
|
WHERE s.mld_typeopdr_key = 5
|
|
AND (k.mld_typeopdr_key = s.mld_typeopdr_key AND k.mld_kenmerk_niveau = 'O')
|
|
AND k.mld_kenmerk_verwijder IS NULL
|
|
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
|
|
AND t.mld_srtkenmerk_verwijder IS NULL
|
|
AND t.mld_refsrtkenmerk_key = r.mld_refsrtkenmerk_key(+)
|
|
AND (k.mld_kenmerk_volgnummer >= 900)
|
|
AND k.mld_kenmerk_key = ckkey_sumfac
|
|
AND o.mld_typeopdr_key = s.mld_typeopdr_key
|
|
AND (SELECT v.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr v, mld_kenmerk vk
|
|
WHERE v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) IS NOT NULL
|
|
--AND o.mld_opdr_key = 13009 --21
|
|
ORDER BY o.mld_opdr_key;
|
|
|
|
next_record waarde_cursor%ROWTYPE;
|
|
|
|
|
|
-- query met eigenaar vaste kostenplaatsen
|
|
-- alle FB eerst op standaard zetten daarna overruled volgende query wel de kostenplaats.
|
|
-- juiste query kost te veel tijd (meer als een uur)
|
|
CURSOR query_eigenaar_vk IS
|
|
-- Eigenaar is VG wordt VG-KPN
|
|
SELECT o.mld_opdr_key qevk_mldopdr_key,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud,
|
|
mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
WHERE fut.fac_usrtab_key = fud.fac_usrtab_key
|
|
AND fut.fac_usrtab_key = 68 --r.fac_usrtab_key
|
|
AND fud.fac_usrdata_key = fac.safe_to_number (v.mld_kenmerkopdr_waarde)
|
|
AND v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 79 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) qevk_fud_omschr
|
|
FROM mld_opdr o,
|
|
mld_srtkenmerk t,
|
|
mld_typeopdr s,
|
|
mld_kenmerk k,
|
|
mld_kenmerkopdr v
|
|
WHERE k.mld_kenmerk_verwijder IS NULL
|
|
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
|
|
AND t.mld_srtkenmerk_verwijder IS NULL
|
|
AND (k.mld_kenmerk_volgnummer <= 100 OR k.mld_kenmerk_volgnummer >= 900)
|
|
AND t.mld_srtkenmerk_key = 79
|
|
AND s.mld_typeopdr_key = 5
|
|
AND (k.mld_typeopdr_key = s.mld_typeopdr_key AND k.mld_kenmerk_niveau = 'O'
|
|
)
|
|
--AND o.mld_opdr_key = 3832
|
|
AND k.mld_kenmerk_key = v.mld_kenmerk_key
|
|
AND o.mld_opdr_key = v.mld_opdr_key
|
|
AND (SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud,
|
|
mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
WHERE fut.fac_usrtab_key = fud.fac_usrtab_key
|
|
AND fut.fac_usrtab_key = 68 --r.fac_usrtab_key
|
|
AND fud.fac_usrdata_key =
|
|
fac.safe_to_number (v.mld_kenmerkopdr_waarde)
|
|
AND v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 79 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) LIKE 'VG'
|
|
UNION
|
|
-- Eigenaar is FB zonder doorbelasting aan wordt FB-KPN
|
|
SELECT o.mld_opdr_key qehk_mldopdr_key,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud,
|
|
mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
WHERE fut.fac_usrtab_key = fud.fac_usrtab_key
|
|
AND fut.fac_usrtab_key = 68 --r.fac_usrtab_key
|
|
AND fud.fac_usrdata_key = fac.safe_to_number (v.mld_kenmerkopdr_waarde)
|
|
AND v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 79 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) kenmerkwaarderef
|
|
FROM mld_opdr o,
|
|
mld_srtkenmerk t,
|
|
mld_typeopdr s,
|
|
mld_kenmerk k,
|
|
mld_kenmerkopdr v
|
|
WHERE k.mld_kenmerk_verwijder IS NULL
|
|
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
|
|
AND t.mld_srtkenmerk_verwijder IS NULL
|
|
AND (k.mld_kenmerk_volgnummer <= 100 OR k.mld_kenmerk_volgnummer >= 900)
|
|
AND t.mld_srtkenmerk_key = 79
|
|
AND s.mld_typeopdr_key = 5
|
|
AND (k.mld_typeopdr_key = s.mld_typeopdr_key AND k.mld_kenmerk_niveau = 'O')
|
|
AND k.mld_kenmerk_key = v.mld_kenmerk_key
|
|
AND o.mld_opdr_key = v.mld_opdr_key
|
|
AND (SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud,
|
|
mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
WHERE fut.fac_usrtab_key = fud.fac_usrtab_key
|
|
AND fut.fac_usrtab_key = 68 --r.fac_usrtab_key
|
|
AND fud.fac_usrdata_key = fac.safe_to_number (v.mld_kenmerkopdr_waarde)
|
|
AND v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 79 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) LIKE 'FB'
|
|
-- Door volgende AND duurd de query zeer lang, daarom dit deel weggelaten
|
|
-- Door volgende query wordt de te veel aangepaste opdrachten wel geoverruled
|
|
/* AND (SELECT v.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
--conn_v_locatiehuurder lh
|
|
WHERE v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 12 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
--query duurt zeer lang als je de volgende regel toevoegd
|
|
--AND TO_CHAR(lh.huurder_key) = v.mld_kenmerkopdr_waarde
|
|
) IS NULL*/
|
|
ORDER BY 1;
|
|
|
|
|
|
|
|
-- query met eigenaar opgezochte huurders kostenplaatsen
|
|
-- Let op met dubbele waarden. Dezelfde conn_v_locatiehuurder.huurder_key
|
|
CURSOR query_eigenaar_hk IS
|
|
SELECT o.mld_opdr_key qehk_mldopdr_key,
|
|
-- NIET NODIG: t.mld_srtkenmerk_omschrijving qehk_srtkenmerk_omschr,
|
|
-- NIET NODIG: lh.huurder qehk_huurder,
|
|
b.prs_bedrijf_key qehk_prsbedrijf_key,
|
|
(SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud,
|
|
mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
WHERE fut.fac_usrtab_key = fud.fac_usrtab_key
|
|
AND fut.fac_usrtab_key = 68 --r.fac_usrtab_key
|
|
AND fud.fac_usrdata_key = FAC.SAFE_TO_NUMBER(v.mld_kenmerkopdr_waarde)
|
|
AND v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 79 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) kenmerkwaardeRef
|
|
FROM mld_opdr o,
|
|
mld_srtkenmerk t,
|
|
mld_kenmerk k,
|
|
mld_typeopdr s,
|
|
mld_refsrtkenmerk r,
|
|
mld_kenmerkopdr v,
|
|
conn_v_locatiehuurder lh,
|
|
prs_bedrijf b
|
|
WHERE s.mld_typeopdr_key = 5
|
|
AND (k.mld_typeopdr_key = s.mld_typeopdr_key AND k.mld_kenmerk_niveau = 'O')
|
|
AND k.mld_kenmerk_verwijder IS NULL
|
|
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
|
|
AND t.mld_srtkenmerk_verwijder IS NULL
|
|
AND t.mld_refsrtkenmerk_key = r.mld_refsrtkenmerk_key(+)
|
|
AND (k.mld_kenmerk_volgnummer <= 100 OR k.mld_kenmerk_volgnummer >= 900)
|
|
AND o.mld_typeopdr_key = s.mld_typeopdr_key
|
|
AND k.mld_kenmerk_key = 112
|
|
--AND o.mld_opdr_key = 3832
|
|
AND k.mld_kenmerk_key = v.mld_kenmerk_key
|
|
AND o.mld_opdr_key = v.mld_opdr_key
|
|
AND lh.huurder_key = FAC.SAFE_TO_NUMBER(v.mld_kenmerkopdr_waarde)
|
|
AND lh.huurder = b.prs_bedrijf_naam
|
|
AND b.prs_bedrijf_verwijder IS NULL
|
|
AND (SELECT fud.fac_usrdata_omschr
|
|
FROM fac_usrtab fut,
|
|
fac_usrdata fud,
|
|
mld_kenmerkopdr v,
|
|
mld_kenmerk vk
|
|
WHERE fut.fac_usrtab_key = fud.fac_usrtab_key
|
|
AND fut.fac_usrtab_key = 68 --r.fac_usrtab_key
|
|
AND fud.fac_usrdata_key = FAC.SAFE_TO_NUMBER(v.mld_kenmerkopdr_waarde)
|
|
AND v.mld_opdr_key = o.mld_opdr_key
|
|
AND vk.mld_srtkenmerk_key = 79 --k.mld_srtkenmerk_key
|
|
AND v.mld_kenmerk_key = vk.mld_kenmerk_key
|
|
AND vk.mld_typeopdr_key = s.mld_typeopdr_key) LIKE 'FB'
|
|
--AND o.mld_opdr_key = 3780
|
|
ORDER BY o.mld_opdr_key, huurder DESC;
|
|
|
|
|
|
-- Voor de huurders (prs_bedrijf_huurder = 1) worden kostenplaatsen aangemaakt
|
|
CURSOR query_bedrijf IS
|
|
SELECT b.prs_bedrijf_key qb_key,
|
|
b.prs_bedrijf_naam qb_naam,
|
|
b.prs_leverancier_nr qb_nr,
|
|
UPPER(b.prs_leverancier_nr) qb_naamupper
|
|
FROM prs_bedrijf b
|
|
WHERE b.prs_bedrijf_huurder = 1
|
|
--AND b.prs_bedrijf_key = 13244
|
|
AND b.prs_bedrijf_verwijder IS NULL
|
|
AND b.prs_leverancier_nr IS NOT NULL
|
|
ORDER BY 1;
|
|
|
|
-- Lijst met contracten waarbij "Totaal Bedrag" een waarde heeft (kenmerk_key = 26)
|
|
CURSOR query_contract IS
|
|
SELECT v.cnt_contract_key cnt_key,
|
|
v.cnt_kenmerkcontract_waarde waarde,
|
|
k.cnt_srtkenmerk_key,
|
|
v.cnt_kenmerk_key
|
|
FROM cnt_kenmerkcontract v,
|
|
cnt_contract c,
|
|
cnt_kenmerk k,
|
|
cnt_srtcontract sc
|
|
WHERE c.cnt_contract_key = v.cnt_contract_key
|
|
AND v.cnt_kenmerk_key = k.cnt_kenmerk_key
|
|
AND c.cnt_srtcontract_key = sc.cnt_srtcontract_key
|
|
AND sc.cnt_srtcontract_key = k.cnt_srtcontract_key
|
|
AND k.cnt_srtkenmerk_key = 24
|
|
AND v.cnt_kenmerkcontract_verwijder IS NULL
|
|
AND c.cnt_contract_verwijder IS NULL
|
|
ORDER BY 1;
|
|
|
|
|
|
BEGIN
|
|
|
|
-- De query "query_kostensoort" bevat prs_kostensoortcode en prs_kostensoortsomschrijving
|
|
-- In de table prs_kostensoort moet voor de prs_kostensoort_oms de kostensoortcode
|
|
-- worden ingevuld en voor de prs_kostensoort_opmerking de kostensoortomschrijving
|
|
FOR kostensoort_rec IN query_kostensoort LOOP
|
|
-- check of kostensoort al bestaat. Anders toevoegen.
|
|
BEGIN
|
|
SELECT -1
|
|
INTO kostensoort_key
|
|
FROM prs_kostensoort ks
|
|
WHERE ks.prs_kostensoort_oms = kostensoort_rec.qk_code;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
INSERT INTO prs_kostensoort (prs_kostensoort_oms,
|
|
prs_kostensoort_opmerking)
|
|
VALUES (kostensoort_rec.qk_code,
|
|
kostensoort_rec.qk_omschr);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
-- Eerst de kenmerk key bepalen van het kenmerk "Totaal bedrag factuur" (zou 128 moeten zijn)
|
|
-- Totaal bedrag factuur
|
|
BEGIN
|
|
SELECT k.mld_kenmerk_key
|
|
INTO kkey_sumfac
|
|
FROM mld_kenmerk k,
|
|
mld_srtkenmerk sk
|
|
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
|
AND k.mld_typeopdr_key = 5
|
|
AND sk.mld_srtkenmerk_omschrijving LIKE 'Totaal bedrag factuur';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN raise_application_error(-20000,'Totaal bedrag factuur not present, first define all property types');
|
|
WHEN TOO_MANY_ROWS THEN raise_application_error(-20000,'double values in mld_kenmerk table');
|
|
END;
|
|
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--begin update mld_opdr--');
|
|
COMMIT;
|
|
|
|
|
|
-- Voor elke mld_opdr het kenmerk "Totaal bedrag factuur" overzetten
|
|
FOR next_record IN waarde_cursor(kkey_sumfac) LOOP
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (next_record.ckenmerkwaarde,
|
|
next_record.cmldopdr_key);
|
|
COMMIT;
|
|
|
|
|
|
-- Melding moet geaccepteerd zijn en melding mag niet verwerkt zijn
|
|
-- Alleen dan mag UPDATE plaatsvinden.
|
|
BEGIN
|
|
SELECT -1
|
|
INTO mld_key
|
|
FROM mld_melding m,
|
|
mld_opdr o
|
|
WHERE m.mld_melding_key = o.mld_melding_key
|
|
AND o.mld_opdr_key = next_record.cmldopdr_key
|
|
AND (mld_melding_geaccepteerd IS NULL
|
|
OR mld_melding_verwerkt IS NOT NULL);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
UPDATE mld_opdr
|
|
SET mld_opdr_kosten = next_record.ckenmerkwaarde
|
|
WHERE mld_opdr_key = next_record.cmldopdr_key;
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--einde update mld_opdr--');
|
|
COMMIT;
|
|
|
|
|
|
BEGIN
|
|
SELECT prs_kostenplaats_key
|
|
INTO vg_kostenplaats
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_nr = 'VG-KPN'
|
|
AND prs_kostenplaats_upper = 'VG-KPN'
|
|
AND prs_kostenplaats_omschrijving = 'Vastgoed'
|
|
AND prs_kostenplaats_module = 'PRS';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN raise_application_error(-20000,'standaard vastgoed kostenplaats niet aangemaakt');
|
|
WHEN TOO_MANY_ROWS THEN raise_application_error(-20000,'dubbele waarden voor standaard vastgoed kostenplaats');
|
|
END;
|
|
|
|
|
|
BEGIN
|
|
SELECT prs_kostenplaats_key
|
|
INTO fb_kostenplaats
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_nr = 'FB-KPN'
|
|
AND prs_kostenplaats_upper = 'FB-KPN'
|
|
AND prs_kostenplaats_omschrijving = 'Faciliteer bedrijf'
|
|
AND prs_kostenplaats_module = 'PRS';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN raise_application_error(-20000,'standaard faciliteer bedrijf niet aangemaakt');
|
|
WHEN TOO_MANY_ROWS THEN raise_application_error(-20000,'dubbele waarden voor standaard faciliteer bedrijf kostenplaats');
|
|
END;
|
|
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--begin insert prs_kostenplaats--');
|
|
COMMIT;
|
|
|
|
|
|
-- Voor elke huurder een kostenplaats aanmaken.
|
|
FOR bedrijf_rec IN query_bedrijf LOOP
|
|
|
|
-- Check of de kostenplaats al bestaat
|
|
BEGIN
|
|
SELECT -1
|
|
INTO kp_key
|
|
FROM prs_kostenplaats
|
|
WHERE prs_kostenplaats_upper = UPPER(bedrijf_rec.qb_nr);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (bedrijf_rec.qb_key,
|
|
bedrijf_rec.qb_naamupper);
|
|
COMMIT;
|
|
|
|
-- prs_kostenplaats_upper wordt automatisch UPPER(prs_kostenplaats_nr) via trigger
|
|
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
|
|
prs_kostenplaats_upper,
|
|
prs_kostenplaats_omschrijving,
|
|
prs_kostenplaats_module)
|
|
VALUES (bedrijf_rec.qb_nr,
|
|
bedrijf_rec.qb_naamupper,
|
|
bedrijf_rec.qb_naam,
|
|
'PRS');
|
|
COMMIT;
|
|
END;
|
|
|
|
END LOOP;
|
|
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--einde insert prs_kostenplaats--');
|
|
COMMIT;
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--begin update mld_opdr (prs_kostenplaats_key) voor vaste kostenplaats--');
|
|
COMMIT;
|
|
|
|
|
|
-- De query "query_eigenaar_vk" bevat mld_opdr_keys waarbij de eigenaar "VG" is.
|
|
-- In de table mld_opdr moet voor de prs_kostenplaats_key de vaste kostenplaats "VG-KPN" worden ingevuld
|
|
-- Ook bevat de query de eigenaar "FB" waarvoor "doorbelasten aan" niet is ingevuld en dus niet geldt
|
|
-- hiervoor moet dan de vaste kostenplaats "FB-KPN" worden ingevuld.
|
|
|
|
-- Alle FB eerst op standaard zetten daarna overruled volgende query wel de kostenplaats.
|
|
-- Juiste query kost duurt zeer lang en de query lijkt vast te lopen.
|
|
FOR eigenaar_vk_rec IN query_eigenaar_vk LOOP
|
|
IF eigenaar_vk_rec.qevk_fud_omschr = 'VG' THEN
|
|
eigenaar_kp := vg_kostenplaats;
|
|
ELSIF eigenaar_vk_rec.qevk_fud_omschr = 'FB' THEN
|
|
eigenaar_kp := fb_kostenplaats;
|
|
END IF;
|
|
|
|
-- Melding moet geaccepteerd zijn en melding mag niet verwerkt zijn
|
|
-- Alleen dan mag UPDATE plaatsvinden.
|
|
BEGIN
|
|
SELECT -1
|
|
INTO mld_key
|
|
FROM mld_melding m,
|
|
mld_opdr o
|
|
WHERE m.mld_melding_key = o.mld_melding_key
|
|
AND o.mld_opdr_key = eigenaar_vk_rec.qevk_mldopdr_key
|
|
AND (mld_melding_geaccepteerd IS NULL
|
|
OR mld_melding_verwerkt IS NOT NULL);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (eigenaar_vk_rec.qevk_mldopdr_key,
|
|
eigenaar_kp);
|
|
COMMIT;
|
|
-- Overschrijf desnoods de huidige ingevulde kostenplaats
|
|
UPDATE mld_opdr
|
|
SET prs_kostenplaats_key = eigenaar_kp
|
|
WHERE mld_opdr_key = eigenaar_vk_rec.qevk_mldopdr_key;
|
|
COMMIT;
|
|
END;
|
|
|
|
END LOOP;
|
|
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--einde update mld_opdr (prs_kostenplaats_key) voor vaste kostenplaats--');
|
|
COMMIT;
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--begin update mld_opdr (prs_kostenplaats_key) voor opgezochte huurders kostenplaats--');
|
|
COMMIT;
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--prs_bedrijfs_key - prs_kostenplaats_key--');
|
|
COMMIT;
|
|
|
|
|
|
-- De query "query_eigenaar_hk" bevat mld_opdr_keys waarbij de eigenaar "FB" is.
|
|
-- In de table mld_opdr moet voor de prs_kostenplaats_key de opgezochte huurders kostenplaats
|
|
-- worden ingevuld
|
|
-- Dubbele waarden komen voor, Deze eruit filteren
|
|
old_mldopdr_key := -1;
|
|
FOR eigenaar_hk_rec IN query_eigenaar_hk LOOP
|
|
new_mldopdr_key := eigenaar_hk_rec.qehk_mldopdr_key;
|
|
IF old_mldopdr_key != eigenaar_hk_rec.qehk_mldopdr_key THEN
|
|
|
|
-- Melding moet geaccepteerd zijn en melding mag niet verwerkt zijn
|
|
-- Alleen dan mag UPDATE plaatsvinden.
|
|
BEGIN
|
|
SELECT -1
|
|
INTO mld_key
|
|
FROM mld_melding m,
|
|
mld_opdr o
|
|
WHERE m.mld_melding_key = o.mld_melding_key
|
|
AND o.mld_opdr_key = eigenaar_hk_rec.qehk_mldopdr_key
|
|
AND (mld_melding_geaccepteerd IS NULL
|
|
OR mld_melding_verwerkt IS NOT NULL);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (eigenaar_hk_rec.qehk_mldopdr_key,
|
|
eigenaar_hk_rec.qehk_prsbedrijf_key ||
|
|
' - ' ||
|
|
(SELECT kp.prs_kostenplaats_key
|
|
FROM prs_kostenplaats kp, prs_bedrijf b
|
|
WHERE kp.prs_kostenplaats_nr = b.prs_leverancier_nr
|
|
AND kp.prs_kostenplaats_upper = UPPER(b.prs_leverancier_nr)
|
|
--AND kp.prs_kostenplaats_omschrijving = b.prs_bedrijf_naam -- Kan bestaande zijn met andere omschrijving
|
|
AND kp.prs_kostenplaats_module LIKE 'PRS'
|
|
AND prs_bedrijf_key = eigenaar_hk_rec.qehk_prsbedrijf_key));
|
|
COMMIT;
|
|
|
|
|
|
UPDATE mld_opdr
|
|
SET prs_kostenplaats_key = (SELECT kp.prs_kostenplaats_key
|
|
FROM prs_kostenplaats kp, prs_bedrijf b
|
|
WHERE kp.prs_kostenplaats_nr = b.prs_leverancier_nr
|
|
AND kp.prs_kostenplaats_upper = UPPER(b.prs_leverancier_nr)
|
|
--AND kp.prs_kostenplaats_omschrijving = b.prs_bedrijf_naam -- Kan bestaande zijn met andere omschrijving
|
|
AND kp.prs_kostenplaats_module LIKE 'PRS'
|
|
AND prs_bedrijf_key = eigenaar_hk_rec.qehk_prsbedrijf_key)
|
|
WHERE mld_opdr_key = eigenaar_hk_rec.qehk_mldopdr_key;
|
|
COMMIT;
|
|
END;
|
|
END IF;
|
|
old_mldopdr_key := eigenaar_hk_rec.qehk_mldopdr_key;
|
|
END LOOP;
|
|
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--einde update mld_opdr (prs_kostenplaats_key) voor opgezochte huurders kostenplaats--');
|
|
COMMIT;
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--begin conversie totaal bedrag naar contractbedrag--');
|
|
COMMIT;
|
|
|
|
|
|
FOR contract_rec IN query_contract LOOP
|
|
-- Zet de waarde Totaal bedrag in contractbedrag
|
|
BEGIN
|
|
UPDATE cnt_contract
|
|
SET cnt_contract_kosten = fac.safe_to_number(contract_rec.waarde)
|
|
WHERE cnt_contract_key = contract_rec.cnt_key;
|
|
COMMIT;
|
|
END;
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (contract_rec.cnt_key,
|
|
contract_rec.waarde);
|
|
COMMIT;
|
|
|
|
END LOOP;
|
|
|
|
|
|
INSERT INTO fip_error (recno,
|
|
descript)
|
|
VALUES (0,
|
|
'--einde conversie totaal bedrag naar contractbedrag--');
|
|
COMMIT;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
DROP VIEW CONN_V_EXPORT_OPDRACHT;
|
|
DROP view CONN_V_EXPORT_OPDRACHT_IB_;
|
|
DROP view CONN_V_EXPORT_OPDRACHT_IB;
|
|
|
|
-- Tabel voor de import van facturen (van leverancier of basware)
|
|
CREATE TABLE CONN_IMP_FACTUUR
|
|
(
|
|
ORDERNR VARCHAR2(13 BYTE),
|
|
LEVERANCIERNR VARCHAR2(10 BYTE),
|
|
FACTUURNR VARCHAR2(10 BYTE),
|
|
FACTUURDATUM VARCHAR2(8 BYTE),
|
|
AANTAL VARCHAR2(10 BYTE),
|
|
KOSTPRIJS VARCHAR2(11 BYTE),
|
|
BTW VARCHAR2(2 BYTE),
|
|
DEBITEURNR VARCHAR2(30 BYTE)
|
|
);
|
|
|
|
CREATE INDEX CONN_I_IMP_FACTUUR1 ON CONN_IMP_FACTUUR(ORDERNR);
|
|
|
|
PROMPT Nu volgt de (her)definitie van de klantspecifieke zaken.
|
|
SPOOL OFF
|
|
|
|
@conn.sql
|