PIVP#74972 -- Fase 2 implementatie

svn path=/Customer/trunk/; revision=59300
This commit is contained in:
Norbert Wassink
2023-02-23 16:23:27 +00:00
parent 8702c2f61f
commit 0f96c952b3

View File

@@ -2437,70 +2437,9 @@ END;
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_EXACT_RUIMTEHUURD(p_import_key NUMBER)
AS
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_import NUMBER;
v_ruimte VARCHAR2(100);
v_debiteur VARCHAR2(100);
AS
BEGIN
DELETE FROM fac_imp_csv WHERE fac_import_key=p_import_key;
header_is_valid:=0;
v_count_import :=0;
FOR rec IN c
LOOP
BEGIN
v_errormsg := 'Fout FETCH te importeren rij';
v_count_import:=v_count_import+1;
v_newline := rec.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
-- Lees alle veldwaarden
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ruimte);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_debiteur);
IF header_is_valid=0
THEN
IF UPPER(v_ruimte)='RUIMTE' AND UPPER(v_debiteur)='KLANT'
THEN
header_is_valid:=1;
END IF;
ELSE
INSERT INTO FAC_IMP_CSV (fac_import_key,
fac_imp_csv_col01,
fac_imp_csv_col02,
fac_imp_csv_index)
VALUES (p_import_key,
v_ruimte,
v_debiteur,
v_count_import);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'niet gevonden');
END;
END LOOP;
fac_import_genericcsv(p_import_key);
END;
/
@@ -2528,77 +2467,81 @@ BEGIN
v_insert_counter:=0;
FOR rec IN csv
LOOP
v_counter:=v_counter+1;
v_gebouw_code:=SUBSTR(rec.fac_imp_csv_col01,1,INSTR(rec.fac_imp_csv_col01,'-')-1);
v_ruimte_nr := SUBSTR(rec.fac_imp_csv_col01,INSTR(rec.fac_imp_csv_col01,'-')+1,LENGTH(rec.fac_imp_csv_col01));
v_debiteur := rec.fac_imp_csv_col02;
BEGIN
v_errorhint:='Ruimte '||v_ruimte_nr||'in gebouw '||v_gebouw_code||' niet gevonden';
v_errormsg:='Ruimte niet gevonden';
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_v_onroerendgoed_gegevens
WHERE alg_ruimte_nr=v_ruimte_nr
AND alg_gebouw_code=v_gebouw_code;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_ruimte_key:=-1;
fac.imp_writelog (p_import_key,
'W',
v_errorhint ,
v_errormsg);
END;
BEGIN
v_errorhint:='Huurder '||v_debiteur||' niet gevonden';
v_errormsg:='Huurder niet gevonden';
SELECT prs_bedrijf_key , p.prs_bedrijf_naam
INTO v_huurder_key , v_huurder_naam
FROM prs_bedrijf p
WHERE p.prs_leverancier_nr = v_debiteur
AND p.prs_bedrijf_huurder=1
AND p.prs_bedrijf_verwijder IS NULL;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_huurder_key:=-1;
fac.imp_writelog (p_import_key,
'W',
v_errorhint ,
v_errormsg);
END;
BEGIN
SELECT p.prs_leverancier_nr, p.prs_bedrijf_naam
INTO v_huidige_huurder_nr, v_huidige_huurder_naam
FROM alg_v_onroerendgoed_gegevens alg, alg_onrgoedkenmerk aok, prs_bedrijf p
WHERE alg.alg_ruimte_key=519
AND aok.alg_onrgoed_key = alg.alg_ruimte_key
AND aok.alg_kenmerk_key=1021
AND p.prs_bedrijf_key=aok.alg_onrgoedkenmerk_waarde;
IF v_debiteur<>v_huidige_huurder_nr THEN
v_tracking_msg :='IMP: Huurder gewijzigd van '||v_huidige_huurder_naam||'('|| v_huidige_huurder_nr||')'||' naar '||v_huurder_naam||'('||v_debiteur||')';
END IF;
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_tracking_msg :='IMP: Nieuwe huurder '||v_huurder_naam||'('||v_debiteur||')';
END;
IF v_ruimte_key>0 AND v_huurder_key>0 THEN
alg.upsertkenmerk(1021,v_ruimte_key,v_huurder_key);
fac.trackaction ('ALGRUP', v_ruimte_key, 3, SYSDATE,
v_tracking_msg);
v_insert_counter:=v_insert_counter+1;
END IF;
fac.imp_writelog (p_import_key,
'W',
'Regels ingelezen :'||v_counter||' waarvan '||v_insert_counter||' geupdate',
v_errormsg);
IF UPPER(rec.fac_imp_csv_col01)<>'RUIMTE' THEN
v_counter:=v_counter+1;
v_gebouw_code:=SUBSTR(rec.fac_imp_csv_col01,1,INSTR(rec.fac_imp_csv_col01,'-')-1);
v_ruimte_nr := SUBSTR(rec.fac_imp_csv_col01,INSTR(rec.fac_imp_csv_col01,'-')+1,LENGTH(rec.fac_imp_csv_col01));
v_debiteur := rec.fac_imp_csv_col02;
BEGIN
v_errorhint:='Ruimte '||v_ruimte_nr||'in gebouw '||v_gebouw_code||' niet gevonden';
v_errormsg:='Ruimte niet gevonden';
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_v_onroerendgoed_gegevens
WHERE alg_ruimte_nr=v_ruimte_nr
AND alg_gebouw_code=v_gebouw_code;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_ruimte_key:=-1;
fac.imp_writelog (p_import_key,
'W',
v_errorhint ,
v_errormsg);
END;
IF v_ruimte_key>0 THEN
BEGIN
v_errorhint:='Huurder '||v_debiteur||' niet gevonden';
v_errormsg:='Huurder niet gevonden';
SELECT prs_bedrijf_key , p.prs_bedrijf_naam
INTO v_huurder_key , v_huurder_naam
FROM prs_bedrijf p
WHERE p.prs_leverancier_nr = v_debiteur
AND p.prs_bedrijf_huurder=1
AND p.prs_bedrijf_verwijder IS NULL;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_huurder_key:=-1;
fac.imp_writelog (p_import_key,
'W',
v_errorhint ,
v_errormsg);
END;
END IF;
IF v_huurder_key>0 AND v_ruimte_key>0
THEN
BEGIN
SELECT p.prs_leverancier_nr, p.prs_bedrijf_naam
INTO v_huidige_huurder_nr, v_huidige_huurder_naam
FROM alg_v_onroerendgoed_gegevens alg, alg_onrgoedkenmerk aok, prs_bedrijf p
WHERE alg.alg_ruimte_key=v_ruimte_key
AND aok.alg_onrgoed_key = alg.alg_ruimte_key
AND aok.alg_kenmerk_key=1021
AND p.prs_bedrijf_key=aok.alg_onrgoedkenmerk_waarde;
IF v_debiteur<>v_huidige_huurder_nr THEN
v_tracking_msg :='IMP: Huurder gewijzigd van '||v_huidige_huurder_naam||'('|| v_huidige_huurder_nr||')'||' naar '||v_huurder_naam||'('||v_debiteur||')';
END IF;
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_tracking_msg :='IMP: Nieuwe huurder '||v_huurder_naam||'('||v_debiteur||')';
END;
END IF;
IF v_ruimte_key>0 AND v_huurder_key>0 THEN
alg.upsertkenmerk(1021,v_ruimte_key,v_huurder_key);
fac.trackaction ('ALGRUP', v_ruimte_key, 3, SYSDATE,
v_tracking_msg);
v_insert_counter:=v_insert_counter+1;
END IF;
fac.imp_writelog (p_import_key,
'W',
'Regels ingelezen :'||v_counter||' waarvan '||v_insert_counter||' geupdate',
v_errormsg);
END IF;
END LOOP;
DELETE FROM fac_imp_csv WHERE fac_import_key=p_import_key;
END;
/
@@ -2857,13 +2800,13 @@ AS
pa.prs_afdeling_omschrijving bedrijf_naam,
pa.prs_afdeling_naam debiteurnr,
mkm.mld_kenmerkmelding_waarde factuurbedrag,
DECODE(SUBSTR(md.ins_discipline_omschrijving,1,3),'FM-',REPLACE(SUBSTR(md.ins_discipline_omschrijving,1,6),'-',''),
COALESCE((SElECT fud.fac_usrdata_CODE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1, fac_usrdata fud
SUBSTR(md.ins_discipline_omschrijving,1,6) vakgroep_code,
(SElECT SUBSTR(d.FAC_USRDATA_OMSCHR,0,6)
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1, pivp_v_diensten d
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='DIENSTEN CODE'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key
AND fud.fac_usrdata_key = fac.safe_to_number(mkm1.mld_kenmerkmelding_waarde)),'NB')) dienstencode,
AND d.fac_usrdata_key = fac.safe_to_number(mkm1.mld_kenmerkmelding_waarde)) dienstencode,
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='PO NUMMER'
@@ -2889,16 +2832,13 @@ AS
FROM prs_bedrijf pb
WHERE pb.prs_bedrijf_naam_upper='PIVOTPARK')
AND msm.mld_stdmelding_key = m.mld_stdmelding_key
-- AND msm.prs_kostensoort_key = (SELECT pk.prs_kostensoort_key -- alleen meldingen die een ksotesoort FACTUUR hebben
-- FROM prs_kostensoort pk
-- WHERE pk.prs_kostensoort_upper='FACTUUR')
AND md.ins_discipline_key= msm.mld_ins_discipline_key
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
-- AND isd.ins_srtdiscipline_key in (61,81,101,121, 181,221)
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
-- AND m.mld_melding_einddatum BETWEEN TO_DATE('01-08-2022','dd-mm-yyyy') AND SYSDATE
AND UPPER(mk.mld_kenmerk_omschrijving)='FACTUUR BEDRAG'
AND mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)>0
AND m.mld_melding_externsyncdate IS NULL
ORDER BY p.prs_afdeling_key;
@@ -3604,6 +3544,7 @@ AS
v_currentmonth VARCHAR2(10);
v_currentyear VARCHAR2(10);
v_currenthuurder VARCHAR2(10);
v_factuurregel VARCHAR2(100);
BEGIN
@@ -3697,7 +3638,19 @@ BEGIN
pivp.add_xml_row (v_bestand, '</ForeignAmount>'); */
END IF;
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
pivp.add_xml_element (v_bestand, 'Description', rec_regel.melding_key||' - '||rec_regel.factuurinfo);
IF LENGTH(rec_regel.ponummer)>0 THEN
pivp.add_xml_element (v_bestand, 'LineYourRef', 'Uw referentie: '||rec_regel.ponummer);
END IF;
IF LENGTH(rec_regel.factuurinfo)>0 THEN
v_factuurregel:= rec_regel.melding_key||' - '||rec_regel.factuurinfo;
ELSE
IF LENGTH(rec_regel.onderwerp)>0 THEN
v_factuurregel:= rec_regel.melding_key||'('||rec_regel.dienstencode||')-'||rec_regel.onderwerp;
ELSE
v_factuurregel:= rec_regel.melding_key||'-'||rec_regel.vagroep;
END IF;
END IF;
pivp.add_xml_element (v_bestand, 'Description', SUBSTR(v_factuurregel,0,60));
pivp.add_xml_row (v_bestand, '<Item code="' || rec_regel.dienstencode || '"/>');
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
pivp.add_xml_row (v_bestand, '<Price>');
@@ -3788,6 +3741,7 @@ AS
v_currentmonth NUMBER;
v_currenthuurder VARCHAR2(10);
v_factuurdatum VARCHAR2(15);
v_factuurregel VARCHAR2(60);
BEGIN
@@ -3881,8 +3835,9 @@ BEGIN
END IF;
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
pivp.add_xml_element (v_bestand, 'Description', 'Reservering '||rec_regel.reservering_nr||' (Zaal '||rec_regel.ruimte_nr||') op '||TO_CHAR(rec_regel.datum,'DD-MM-YYYY')||' van '||rec_regel.van||' tot '||rec_regel.tot);
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
v_factuurregel := rec_regel.reservering_nr||'/'||rec_regel.reservering_volgnr||'-'||rec_regel.ruimte_nr||' ('||TO_CHAR(rec_regel.datum,'DD-MM-YYYY')||' '||rec_regel.van||'-'||rec_regel.tot||')';
pivp.add_xml_element (v_bestand, 'Description', v_factuurregel);
pivp.add_xml_row (v_bestand, '<Item code="' || v_dienstencode || '"/>');
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
pivp.add_xml_row (v_bestand, '<Price>');