YASK#87240 Import van het btw tarief in de importbestanden wordt nu ook ondersteund.
svn path=/Customer/trunk/; revision=68141
This commit is contained in:
430
YASK/yask.sql
430
YASK/yask.sql
@@ -5760,12 +5760,15 @@ AS
|
||||
v_header2 VARCHAR2 (1000);
|
||||
v_header3 VARCHAR2 (1000);
|
||||
v_header4 VARCHAR2 (1000);
|
||||
v_header5 VARCHAR2 (1000);
|
||||
-- De importvelden
|
||||
v_plaats VARCHAR2(100);
|
||||
v_adres VARCHAR2(100);
|
||||
v_pandcode VARCHAR2(100);
|
||||
v_bedrag_txt VARCHAR2(100);
|
||||
v_bedrag NUMBER(11,2);
|
||||
v_btw_txt VARCHAR2(100);
|
||||
v_btw NUMBER(11,2);
|
||||
v_locatie_key NUMBER (10);
|
||||
v_gebouw_key NUMBER (10);
|
||||
v_onderwerp VARCHAR2(100);
|
||||
@@ -5808,6 +5811,7 @@ BEGIN
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 2, v_header2);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 3, v_header3);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 4, v_header4);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 5, v_header5);
|
||||
|
||||
IF header_found = FALSE
|
||||
THEN
|
||||
@@ -5817,7 +5821,7 @@ BEGIN
|
||||
WHEN 2 THEN IF v_header1 = 'Maand:' THEN v_header_jaar := FAC.safe_to_number(SUBSTR(v_header2,1,4)); v_header_maand := FAC.safe_to_number(SUBSTR(v_header2,6,2)); END IF; -- consumpties
|
||||
WHEN 3 THEN IF v_header1 = 'Year' THEN v_header_jaar := FAC.safe_to_number(v_header2); END IF; -- losse condimenten
|
||||
WHEN 4 THEN IF v_header1 = 'Month' THEN v_header_maand := FAC.safe_to_number(v_header2); END IF; -- losse condimenten
|
||||
WHEN 7 THEN IF v_header1 = 'Pandcodes' AND v_header2 = 'City' AND v_header3 = 'Street' AND v_header4 = 'Total' THEN v_header_chk2 := TRUE; END IF; -- losse condimenten
|
||||
WHEN 7 THEN IF v_header1 = 'Pandcodes' AND v_header2 = 'City' AND v_header3 = 'Street' AND v_header4 = 'BTW%' AND (v_header5 = 'Total' OR v_header5 = 'Totaal') THEN v_header_chk2 := TRUE; END IF; -- losse condimenten
|
||||
WHEN 8 THEN IF v_header1 = 'Pandcode' AND v_header2 = 'CITY_SHIP_TO' AND v_header3 = 'STREET_SHIP_TO' AND v_header4 = 'Total' THEN v_header_chk2 := TRUE; END IF; -- consumpties
|
||||
ELSE NULL;
|
||||
END CASE;
|
||||
@@ -5828,16 +5832,23 @@ BEGIN
|
||||
THEN
|
||||
header_found := TRUE;
|
||||
END IF;
|
||||
ELSIF v_header1 <> 'Grand Total'
|
||||
ELSIF v_header1 <> 'Grand Total' AND v_header1 <> 'Eindtotaal'
|
||||
THEN
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 1, v_pandcode);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 2, v_plaats);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 3, v_adres);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 4, v_bedrag_txt);
|
||||
IF v_onderwerp = 'Variabele kosten losse condimenten:'
|
||||
THEN
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 4, v_btw_txt);
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 5, v_bedrag_txt);
|
||||
ELSE
|
||||
fac.imp_getfield_nr (v_newline, v_fielddelimitor, 4, v_bedrag_txt);
|
||||
v_btw_txt := '0,09';
|
||||
END IF;
|
||||
|
||||
-- voeg nieuwe records toe
|
||||
-- en wijzig bestaande records
|
||||
v_aanduiding := v_pandcode || '|' || v_plaats || ' | ' || v_adres || ' | ' || v_bedrag_txt;
|
||||
v_aanduiding := v_pandcode || '|' || v_plaats || ' | ' || v_adres || ' | ' || v_btw_txt || ' | ' || v_bedrag_txt;
|
||||
|
||||
v_errorhint := 'Zoek het juiste gebouw op';
|
||||
BEGIN
|
||||
@@ -5860,37 +5871,44 @@ BEGIN
|
||||
fac.imp_writelog (p_import_key, 'E', 'Meerdere gebouwen gevonden.', v_aanduiding);
|
||||
v_ongeldig := TRUE;
|
||||
END;
|
||||
|
||||
|
||||
-- controle op btw
|
||||
v_errorhint := 'Controle op btw';
|
||||
v_btw_txt := replace (v_btw_txt, ',','.'); -- Komma omzetten naar punten als decimaal scheidingsteken.
|
||||
v_btw := FAC.safe_to_number(v_btw_txt)*100;
|
||||
|
||||
-- controle op bedrag
|
||||
v_errorhint := 'Controle op bedrag';
|
||||
v_bedrag := FAC.safe_to_number(
|
||||
replace(
|
||||
v_bedrag_txt := replace(
|
||||
replace(
|
||||
replace(
|
||||
replace(v_bedrag_txt, '<EFBFBD>') -- Euroteken vervangen
|
||||
,' ') -- Er komen spaties voor tussen een min-teken en het bedrag.
|
||||
,'.') -- Duizendtal scheidingsteken vervangen
|
||||
,',','.') -- Komma omzetten naar punten als decimaal scheidingsteken.
|
||||
);
|
||||
,',','.'); -- Komma omzetten naar punten als decimaal scheidingsteken.
|
||||
|
||||
v_bedrag := FAC.safe_to_number(v_bedrag_txt);
|
||||
IF v_bedrag IS NULL
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'E', 'Bedrag is geen nummer', v_aanduiding || '(' || replace(v_bedrag_txt, '<EFBFBD>') || ')');
|
||||
fac.imp_writelog (p_import_key, 'E', 'Bedrag is geen nummer', v_aanduiding || '(' || v_bedrag_txt || ')');
|
||||
v_ongeldig := TRUE;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Vul de importtabel';
|
||||
IF v_ongeldig = FALSE
|
||||
IF v_ongeldig = FALSE AND v_bedrag <> 0
|
||||
THEN
|
||||
INSERT INTO yask_imp_rabo_automaten (onderwerp,
|
||||
alg_locatie_key,
|
||||
alg_gebouw_key,
|
||||
periode,
|
||||
bedrag)
|
||||
bedrag,
|
||||
btw)
|
||||
VALUES (v_onderwerp,
|
||||
v_locatie_key,
|
||||
v_gebouw_key,
|
||||
v_header_jaar || '-' || v_header_maand,
|
||||
v_bedrag);
|
||||
v_bedrag,
|
||||
v_btw);
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
@@ -5915,7 +5933,8 @@ CREATE OR REPLACE PROCEDURE yask_update_rabo_automaten (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c_cursor IS
|
||||
SELECT *
|
||||
FROM yask_imp_rabo_automaten;
|
||||
FROM yask_imp_rabo_automaten
|
||||
ORDER BY alg_gebouw_key;
|
||||
|
||||
CURSOR c_mld (c_stdmelding_key IN NUMBER)
|
||||
IS
|
||||
@@ -5943,8 +5962,12 @@ AS
|
||||
v_bedrijf_key NUMBER (10);
|
||||
v_contact_key NUMBER (10);
|
||||
v_opdr_key NUMBER (10);
|
||||
v_gebouw_key_prev NUMBER(10);
|
||||
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
||||
v_rb_goedgekeurd_kenmerk_key NUMBER (10);
|
||||
v_typefactuur_kenmerk_key NUMBER (10);
|
||||
v_usrdata_key NUMBER (10);
|
||||
v_opdr_kosten mld_opdr.mld_opdr_kosten%TYPE;
|
||||
v_stdmelding_t_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
|
||||
v_stdmelding_t_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE;
|
||||
v_stdmelding_code mld_stdmelding.mld_stdmelding_code%TYPE;
|
||||
@@ -5953,8 +5976,32 @@ AS
|
||||
v_opdr_datumbegin DATE;
|
||||
v_opdr_einddatum DATE;
|
||||
|
||||
PROCEDURE add_kenmerk_btw_bedrag (p_opdr_key IN NUMBER, p_typeopdr_key IN NUMBER, p_btw IN NUMBER, p_bedrag IN NUMBER)
|
||||
AS
|
||||
v_btw_bedrag_kenmerk_key NUMBER;
|
||||
v_kenmerk_code VARCHAR2(20);
|
||||
BEGIN
|
||||
CASE p_btw
|
||||
WHEN 21 THEN v_kenmerk_code := 'BEDRAGHOOG';
|
||||
WHEN 9 THEN v_kenmerk_code := 'BEDRAGLAAG';
|
||||
WHEN 0 THEN v_kenmerk_code := 'BEDRAGNUL';
|
||||
ELSE RETURN;
|
||||
END CASE;
|
||||
|
||||
-- zoek het kenmerk op.
|
||||
SELECT mld_kenmerk_key
|
||||
INTO v_btw_bedrag_kenmerk_key
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||||
AND sk.mld_srtkenmerk_code = v_kenmerk_code
|
||||
AND k.mld_typeopdr_key = p_typeopdr_key;
|
||||
|
||||
FLX.setflex('OPD', v_btw_bedrag_kenmerk_key, p_opdr_key, p_bedrag);
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
-- initialisatie
|
||||
v_gebouw_key_prev := -1;
|
||||
v_errormsg := 'Opdrachttype opzoeken om de opdracht onder aan te maken';
|
||||
SELECT mld_typeopdr_key
|
||||
INTO v_typeopdr_key
|
||||
@@ -5969,192 +6016,211 @@ BEGIN
|
||||
|
||||
FOR rec IN c_cursor
|
||||
LOOP
|
||||
IF v_stdmelding_key IS NULL
|
||||
THEN
|
||||
IF rec.onderwerp = 'Variabele kosten losse condimenten:'
|
||||
IF v_gebouw_key_prev <> rec.alg_gebouw_key
|
||||
THEN
|
||||
-- Bij vervolregels met een ander btw tarief gaan we geen meldingen en opdrachten aanmaken.
|
||||
IF v_stdmelding_key IS NULL
|
||||
THEN
|
||||
v_stdmelding_code := 'RB_RABO_AUTOMATEN_CONDIMENTEN';
|
||||
ELSIF rec.onderwerp = 'Variabele kosten consumpties:'
|
||||
THEN
|
||||
v_stdmelding_code := 'RB_RABO_AUTOMATEN_CONSUMPTIES';
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'Fout bij aanmaken catering RB opdracht', 'Melding niet gevonden voor: ' || rec.onderwerp);
|
||||
RETURN;
|
||||
IF rec.onderwerp = 'Variabele kosten losse condimenten:'
|
||||
THEN
|
||||
v_stdmelding_code := 'RB_RABO_AUTOMATEN_CONDIMENTEN';
|
||||
ELSIF rec.onderwerp = 'Variabele kosten consumpties:'
|
||||
THEN
|
||||
v_stdmelding_code := 'RB_RABO_AUTOMATEN_CONSUMPTIES';
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'Fout bij aanmaken catering RB opdracht', 'Melding niet gevonden voor: ' || rec.onderwerp);
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- zoek de standaardmelding
|
||||
v_errormsg := 'Standaard melding met code RB_RABO_AUTOMATEN opzoeken';
|
||||
SELECT mld_stdmelding_key,
|
||||
mld_stdmelding_t_uitvoertijd,
|
||||
mld_stdmelding_t_accepttijd
|
||||
INTO v_stdmelding_key,
|
||||
v_stdmelding_t_uitvoertijd,
|
||||
v_stdmelding_t_accepttijd
|
||||
FROM mld_stdmelding
|
||||
WHERE mld_stdmelding_code = v_stdmelding_code;
|
||||
|
||||
-- Dan zijn de grensdata ook nog niet geinitialiseerd.
|
||||
v_melding_datum := TO_DATE(SUBSTR(rec.periode, 1,4) || '0101', 'YYYYMMDD');
|
||||
v_melding_einddatum := ADD_MONTHS(v_melding_datum, 12) -1;
|
||||
v_opdr_datumbegin := TO_DATE(rec.periode || '-01', 'YYYY-MM-DD');
|
||||
v_opdr_einddatum := ADD_MONTHS(v_opdr_datumbegin, 1) -1;
|
||||
|
||||
END IF;
|
||||
|
||||
-- zoek de standaardmelding
|
||||
v_errormsg := 'Standaard melding met code RB_RABO_AUTOMATEN opzoeken';
|
||||
SELECT mld_stdmelding_key,
|
||||
mld_stdmelding_t_uitvoertijd,
|
||||
mld_stdmelding_t_accepttijd
|
||||
INTO v_stdmelding_key,
|
||||
v_stdmelding_t_uitvoertijd,
|
||||
v_stdmelding_t_accepttijd
|
||||
FROM mld_stdmelding
|
||||
WHERE mld_stdmelding_code = v_stdmelding_code;
|
||||
BEGIN
|
||||
-- controleer of er een openstaande melding is voor dit gebouw
|
||||
v_errormsg := 'Kunnen we een melding vinden onder gebouw: ' || rec.alg_gebouw_key;
|
||||
SELECT mld_melding_key, mld_melding_status
|
||||
INTO v_melding_key, v_melding_status
|
||||
FROM mld_melding
|
||||
WHERE mld_stdmelding_key = v_stdmelding_key -- Verzamelmelding Catering
|
||||
AND mld_melding_status IN (0, 2, 3, 99, 4, 7) -- FrontOffice, Nieuw, Te accepteren, Niet opgelost, In behandeling, Uitgegeven
|
||||
AND mld_alg_onroerendgoed_keys = rec.alg_gebouw_key
|
||||
AND v_opdr_datumbegin BETWEEN mld_melding_datum AND mld_melding_einddatum;
|
||||
|
||||
-- Dan zijn de grensdata ook nog niet geinitialiseerd.
|
||||
v_melding_datum := TO_DATE(SUBSTR(rec.periode, 1,4) || '0101', 'YYYYMMDD');
|
||||
v_melding_einddatum := ADD_MONTHS(v_melding_datum, 12) -1;
|
||||
v_opdr_datumbegin := TO_DATE(rec.periode || '-01', 'YYYY-MM-DD');
|
||||
v_opdr_einddatum := ADD_MONTHS(v_opdr_datumbegin, 1) -1;
|
||||
IF v_melding_status = 0 OR v_melding_status = 2
|
||||
THEN
|
||||
mld.setmeldingstatus (v_melding_key, 4, v_perslid_key);
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
BEGIN
|
||||
-- controleer of er een openstaande melding is voor dit gebouw
|
||||
v_errormsg := 'Kunnen we een melding vinden onder gebouw: ' || rec.alg_gebouw_key;
|
||||
SELECT mld_melding_key, mld_melding_status
|
||||
INTO v_melding_key, v_melding_status
|
||||
FROM mld_melding
|
||||
WHERE mld_stdmelding_key = v_stdmelding_key -- Verzamelmelding Catering
|
||||
AND mld_melding_status IN (0, 2, 3, 99, 4, 7) -- FrontOffice, Nieuw, Te accepteren, Niet opgelost, In behandeling, Uitgegeven
|
||||
AND mld_alg_onroerendgoed_keys = rec.alg_gebouw_key
|
||||
AND v_opdr_datumbegin BETWEEN mld_melding_datum AND mld_melding_einddatum;
|
||||
|
||||
IF v_melding_status = 0 OR v_melding_status = 2
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
-- dan gaan we een nieuwe melding aanmaken
|
||||
v_errormsg := 'We gaan een nieuwe melding aanmaken onder gebouw: ' || rec.alg_gebouw_key;
|
||||
INSERT INTO mld_melding (mld_melding_omschrijving,
|
||||
prs_perslid_key,
|
||||
prs_kostenplaats_key,
|
||||
mld_stdmelding_key,
|
||||
mld_alg_locatie_key,
|
||||
mld_alg_onroerendgoed_keys,
|
||||
mld_melding_einddatum,
|
||||
mld_melding_datum,
|
||||
mld_melding_t_uitvoertijd,
|
||||
mld_melding_t_accepttijd,
|
||||
mld_meldbron_key,
|
||||
mld_melding_module,
|
||||
mld_melding_spoed)
|
||||
VALUES ('Automaat ReversedBilling boekingen',
|
||||
v_perslid_key, -- API catering rabobank
|
||||
v_kostenplaats_key, -- Rabobank (kostenplaats van bovenstaande user)
|
||||
v_stdmelding_key,
|
||||
rec.alg_locatie_key,
|
||||
rec.alg_gebouw_key,
|
||||
v_melding_einddatum,
|
||||
v_melding_datum,
|
||||
v_stdmelding_t_uitvoertijd,
|
||||
v_stdmelding_t_accepttijd,
|
||||
5,
|
||||
'MLD',
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO v_melding_key;
|
||||
|
||||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||||
mld.setmeldingstatus (v_melding_key, 4, v_perslid_key);
|
||||
END IF;
|
||||
END;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
-- dan gaan we een nieuwe melding aanmaken
|
||||
v_errormsg := 'We gaan een nieuwe melding aanmaken onder gebouw: ' || rec.alg_gebouw_key;
|
||||
INSERT INTO mld_melding (mld_melding_omschrijving,
|
||||
prs_perslid_key,
|
||||
prs_kostenplaats_key,
|
||||
mld_stdmelding_key,
|
||||
mld_alg_locatie_key,
|
||||
mld_alg_onroerendgoed_keys,
|
||||
mld_melding_einddatum,
|
||||
mld_melding_datum,
|
||||
mld_melding_t_uitvoertijd,
|
||||
mld_melding_t_accepttijd,
|
||||
mld_meldbron_key,
|
||||
mld_melding_module,
|
||||
mld_melding_spoed)
|
||||
VALUES ('Automaat ReversedBilling boekingen',
|
||||
v_perslid_key, -- API catering rabobank
|
||||
v_kostenplaats_key, -- Rabobank (kostenplaats van bovenstaande user)
|
||||
v_stdmelding_key,
|
||||
rec.alg_locatie_key,
|
||||
rec.alg_gebouw_key,
|
||||
v_melding_einddatum,
|
||||
v_melding_datum,
|
||||
v_stdmelding_t_uitvoertijd,
|
||||
v_stdmelding_t_accepttijd,
|
||||
5,
|
||||
'MLD',
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO v_melding_key;
|
||||
|
||||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||||
mld.setmeldingstatus (v_melding_key, 4, v_perslid_key);
|
||||
END;
|
||||
|
||||
-- maak een opdracht aan voor dit gebouw en deze periode
|
||||
BEGIN
|
||||
-- Zoek het bedrijf waaronder de opdracht aangemaakt moet worden. Dit is het bedrijf waarvan
|
||||
-- de user, onder wie we de melding en opdracht aanmaken, de contactpersoon is.
|
||||
v_errormsg := 'Het bedrijf opzoeken om de opdracht aan te koppelen. ' || v_perslid_key;
|
||||
SELECT prs_bedrijf_key
|
||||
INTO v_bedrijf_key
|
||||
FROM prs_contactpersoon cp
|
||||
WHERE cp.prs_perslid_key = v_perslid_key;
|
||||
|
||||
-- Nu op zoek naar het ReversedBilling contract
|
||||
v_errormsg := 'Contract opzoeken om aan de opdracht te koppelen (bedrijf:' || v_bedrijf_key || ')';
|
||||
SELECT cnt_contract_key
|
||||
INTO v_contact_key
|
||||
FROM cnt_contract c, cnt_discipline d
|
||||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||||
AND UPPER(d.ins_discipline_omschrijving) LIKE 'REVERSED%'
|
||||
AND c.cnt_prs_bedrijf_key = v_bedrijf_key
|
||||
AND v_opdr_datumbegin BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot;
|
||||
-- maak een opdracht aan voor dit gebouw en deze periode
|
||||
BEGIN
|
||||
-- Zoek het bedrijf waaronder de opdracht aangemaakt moet worden. Dit is het bedrijf waarvan
|
||||
-- de user, onder wie we de melding en opdracht aanmaken, de contactpersoon is.
|
||||
v_errormsg := 'Het bedrijf opzoeken om de opdracht aan te koppelen. ' || v_perslid_key;
|
||||
SELECT prs_bedrijf_key
|
||||
INTO v_bedrijf_key
|
||||
FROM prs_contactpersoon cp
|
||||
WHERE cp.prs_perslid_key = v_perslid_key;
|
||||
|
||||
-- Nu op zoek naar het ReversedBilling contract
|
||||
v_errormsg := 'Contract opzoeken om aan de opdracht te koppelen (bedrijf:' || v_bedrijf_key || ')';
|
||||
SELECT cnt_contract_key
|
||||
INTO v_contact_key
|
||||
FROM cnt_contract c, cnt_discipline d
|
||||
WHERE c.ins_discipline_key = d.ins_discipline_key
|
||||
AND UPPER(d.ins_discipline_omschrijving) LIKE 'REVERSED%'
|
||||
AND c.cnt_prs_bedrijf_key = v_bedrijf_key
|
||||
AND v_opdr_datumbegin BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot;
|
||||
|
||||
|
||||
-- Controleer of er al een opdracht bestaat.
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM mld_opdr o, mld_melding m
|
||||
WHERE o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_alg_onroerendgoed_keys = rec.alg_gebouw_key
|
||||
AND m.mld_stdmelding_key = v_stdmelding_key
|
||||
AND o.mld_opdr_datumbegin = v_opdr_datumbegin
|
||||
AND o.mld_opdr_einddatum = v_opdr_einddatum;
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
|
||||
v_mld_opdr_bedrijfopdr_volgnr := mld.bepaalopdrmeldingvolgnr (v_melding_key);
|
||||
-- Controleer of er al een opdracht bestaat.
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM mld_opdr o, mld_melding m
|
||||
WHERE o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_alg_onroerendgoed_keys = rec.alg_gebouw_key
|
||||
AND m.mld_stdmelding_key = v_stdmelding_key
|
||||
AND o.mld_opdr_datumbegin = v_opdr_datumbegin
|
||||
AND o.mld_opdr_einddatum = v_opdr_einddatum;
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
|
||||
v_mld_opdr_bedrijfopdr_volgnr := mld.bepaalopdrmeldingvolgnr (v_melding_key);
|
||||
|
||||
v_errormsg := 'Maak opdracht aan';
|
||||
v_errormsg := 'Maak opdracht aan';
|
||||
|
||||
-- maak opdracht aan om cateringfactuur van leverancier te matchen
|
||||
INSERT INTO mld_opdr (mld_melding_key,
|
||||
prs_kostenplaats_key,
|
||||
mld_statusopdr_key,
|
||||
mld_typeopdr_key,
|
||||
prs_perslid_key,
|
||||
cnt_contract_key,
|
||||
mld_uitvoerende_keys,
|
||||
mld_opdr_datumbegin,
|
||||
mld_opdr_einddatum,
|
||||
mld_opdr_module,
|
||||
mld_opdr_omschrijving,
|
||||
mld_opdr_materiaal,
|
||||
mld_opdr_kosten,
|
||||
mld_opdr_bedrijfopdr_volgnr)
|
||||
VALUES ( v_melding_key,
|
||||
v_kostenplaats_key, -- Rabobank kostenplaats
|
||||
5, -- uitgegeven
|
||||
v_typeopdr_key,
|
||||
v_perslid_key, -- Maas import user
|
||||
v_contact_key,
|
||||
v_bedrijf_key,
|
||||
v_opdr_datumbegin,
|
||||
v_opdr_einddatum,
|
||||
'MLD',
|
||||
'Automaat kosten export-maand: ' || TO_CHAR (TRUNC(SYSDATE, 'MM') -1, 'MON-YYYY'),
|
||||
rec.bedrag,
|
||||
rec.bedrag,
|
||||
v_mld_opdr_bedrijfopdr_volgnr)
|
||||
RETURNING mld_opdr_key INTO v_opdr_key;
|
||||
-- maak opdracht aan om cateringfactuur van leverancier te matchen
|
||||
INSERT INTO mld_opdr (mld_melding_key,
|
||||
prs_kostenplaats_key,
|
||||
mld_statusopdr_key,
|
||||
mld_typeopdr_key,
|
||||
prs_perslid_key,
|
||||
cnt_contract_key,
|
||||
mld_uitvoerende_keys,
|
||||
mld_opdr_datumbegin,
|
||||
mld_opdr_einddatum,
|
||||
mld_opdr_module,
|
||||
mld_opdr_omschrijving,
|
||||
mld_opdr_bedrijfopdr_volgnr)
|
||||
VALUES ( v_melding_key,
|
||||
v_kostenplaats_key, -- Rabobank kostenplaats
|
||||
5, -- uitgegeven
|
||||
v_typeopdr_key,
|
||||
v_perslid_key, -- Maas import user
|
||||
v_contact_key,
|
||||
v_bedrijf_key,
|
||||
v_opdr_datumbegin,
|
||||
v_opdr_einddatum,
|
||||
'MLD',
|
||||
'Automaat kosten export-maand: ' || TO_CHAR (TRUNC(SYSDATE, 'MM') -1, 'MON-YYYY'),
|
||||
v_mld_opdr_bedrijfopdr_volgnr)
|
||||
RETURNING mld_opdr_key INTO v_opdr_key;
|
||||
|
||||
v_errormsg := 'Update opdracht status';
|
||||
-- meld de opdracht af
|
||||
MLD.setopdrachtstatus (v_opdr_key, 6, v_perslid_key);
|
||||
MLD.updatemeldingstatus (v_melding_key, 0, v_perslid_key); -- Facilitor
|
||||
-- antedateren van de tracking omdat de reversedbilling alleen meegenomen wordt als de opdracht in de vorige maand is afgerond.
|
||||
UPDATE fac_tracking SET fac_tracking_datum = v_opdr_einddatum
|
||||
WHERE fac_tracking_refkey = v_opdr_key
|
||||
AND fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'ORDAFM');
|
||||
-- en zet hem nog op afgerond
|
||||
MLD.setopdrachtstatus (v_opdr_key, 9, v_perslid_key);
|
||||
UPDATE fac_tracking SET fac_tracking_datum = v_opdr_einddatum
|
||||
WHERE fac_tracking_refkey = v_opdr_key
|
||||
AND fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'ORDAFR');
|
||||
v_errormsg := 'Update opdracht status';
|
||||
-- meld de opdracht af
|
||||
MLD.setopdrachtstatus (v_opdr_key, 6, v_perslid_key);
|
||||
MLD.updatemeldingstatus (v_melding_key, 0, v_perslid_key); -- Facilitor
|
||||
-- antedateren van de tracking omdat de reversedbilling alleen meegenomen wordt als de opdracht in de vorige maand is afgerond.
|
||||
UPDATE fac_tracking SET fac_tracking_datum = v_opdr_einddatum
|
||||
WHERE fac_tracking_refkey = v_opdr_key
|
||||
AND fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'ORDAFM');
|
||||
-- en zet hem nog op afgerond
|
||||
MLD.setopdrachtstatus (v_opdr_key, 9, v_perslid_key);
|
||||
UPDATE fac_tracking SET fac_tracking_datum = v_opdr_einddatum
|
||||
WHERE fac_tracking_refkey = v_opdr_key
|
||||
AND fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'ORDAFR');
|
||||
|
||||
v_errormsg := 'Opvragen van het opdrachtkenmerk: RB_GOEDGEKEURD';
|
||||
SELECT mld_kenmerk_key
|
||||
INTO v_rb_goedgekeurd_kenmerk_key
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||||
AND sk.mld_srtkenmerk_code = 'RB_GOEDGEKEURD' -- Dispuut
|
||||
AND k.mld_typeopdr_key = v_typeopdr_key;
|
||||
v_errormsg := 'Opvragen van het opdrachtkenmerk: RB_GOEDGEKEURD';
|
||||
SELECT mld_kenmerk_key
|
||||
INTO v_rb_goedgekeurd_kenmerk_key
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||||
AND sk.mld_srtkenmerk_code = 'RB_GOEDGEKEURD' -- Dispuut
|
||||
AND k.mld_typeopdr_key = v_typeopdr_key;
|
||||
|
||||
v_errormsg := 'Kenmerk RB_GOEDGEKEURD op 1 zetten';
|
||||
FLX.setflex('OPD', v_rb_goedgekeurd_kenmerk_key, v_opdr_key, '1');
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'RB opdracht bestaat al', rec.onderwerp || ' | ' || rec.alg_locatie_key || ' | ' || rec.alg_gebouw_key || ' | ' || rec.periode || '-' || rec.bedrag);
|
||||
END IF;
|
||||
v_errormsg := 'Kenmerk RB_GOEDGEKEURD op 1 zetten';
|
||||
FLX.setflex('OPD', v_rb_goedgekeurd_kenmerk_key, v_opdr_key, '1');
|
||||
|
||||
END;
|
||||
v_errormsg := 'Opvragen van het opdrachtkenmerk: TYPEFACTUUR';
|
||||
SELECT k.mld_kenmerk_key, k.mld_kenmerk_default
|
||||
INTO v_typefactuur_kenmerk_key, v_usrdata_key
|
||||
FROM mld_kenmerk k, mld_srtkenmerk sk
|
||||
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||||
AND sk.mld_srtkenmerk_code = 'TYPEFACTUUR'
|
||||
AND k.mld_typeopdr_key = v_typeopdr_key;
|
||||
|
||||
v_errormsg := 'Kenmerk TYPEFACTUUR op B zetten';
|
||||
-- Dit is de default van het kenmerk
|
||||
FLX.setflex('OPD', v_typefactuur_kenmerk_key, v_opdr_key, v_usrdata_key);
|
||||
VBXX.set_opslag_perc (v_opdr_key);
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'RB opdracht bestaat al', rec.onderwerp || ' | ' || rec.alg_locatie_key || ' | ' || rec.alg_gebouw_key || ' | ' || rec.periode || '-' || rec.bedrag);
|
||||
END IF;
|
||||
|
||||
END;
|
||||
v_gebouw_key_prev := rec.alg_gebouw_key;
|
||||
v_opdr_kosten := 0;
|
||||
END IF;
|
||||
-- Voeg het kenmerk met het bedrag toe en tel het totaal voor de opdracht op.
|
||||
add_kenmerk_btw_bedrag (v_opdr_key, v_typeopdr_key, rec.btw, rec.bedrag);
|
||||
v_opdr_kosten := v_opdr_kosten + rec.bedrag;
|
||||
UPDATE mld_opdr SET mld_opdr_kosten = v_opdr_kosten, mld_opdr_materiaal = v_opdr_kosten WHERE mld_opdr_key = v_opdr_key;
|
||||
END LOOP;
|
||||
|
||||
-- afmelden oude meldingen
|
||||
|
||||
FOR rec_mld IN c_mld (v_stdmelding_key)
|
||||
LOOP
|
||||
v_errormsg := 'Afmelden oude melding ' || rec_mld.mld_melding_key;
|
||||
|
||||
Reference in New Issue
Block a user