PIVP#86217 -- Exact export aanpassingen en rapportages

svn path=/Customer/trunk/; revision=68053
This commit is contained in:
Norbert Wassink
2025-02-18 16:11:27 +00:00
parent ffe87eee31
commit 23fb85202e

View File

@@ -6,6 +6,8 @@
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
-- (dit in tegenstelling tot sample_xxxx.sql)SECT_EX
-- (dit in tegenstelling tot sample_xxxx.sql)
DEFINE thisfile = 'PIVP.SQL'
@@ -2645,6 +2647,70 @@ BEGIN
END;
/
CREATE OR REPLACE VIEW PIVP_V_GEBOUW_BEZETTING
(
gebouw_code,
opp_verhuurd,
opp_beschikbaar,
proc_bezetting
)
AS
SELECT bezet.alg_gebouw_code,
bezet.opp_verhuurd,
beschikbaar.opp_beschikbaar,
ROUND( bezet.opp_verhuurd/beschikbaar.opp_beschikbaar*100,2) bezetting
FROM
(
SELECT ag.alg_gebouw_code, SUM (r.alg_ruimte_opp_alt1) opp_beschikbaar
from alg_ruimte r,
alg_v_allonrgoed_gegevens ag,
(SELECT aok.alg_onrgoed_key
FROM alg_kenmerk ak, alg_onrgoedkenmerk aok ,fac_usrdata fud, fac_usrtab fut
WHERE aok.alg_onrgoed_niveau='R'
AND ak.alg_kenmerk_key = aok.ALG_KENMERK_KEY
AND aok.alg_onrgoedkenmerk_verwijder IS NULL
AND ak.alg_kenmerk_code='VERHUURBAAR'
AND fud.fac_usrdata_key= aok.ALG_ONRGOEDKENMERK_WAARDE
AND fud.fac_usrtab_key = fut.fac_usrtab_key
AND UPPER(fut.fac_usrtab_naam) ='VERHUURBAAR'
AND fud.fac_usrdata_omschr LIKE 'Verhuurbaar%'
) vhbr1
WHERE r.alg_ruimte_key =vhbr1.alg_onrgoed_key
AND ag.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_verwijder IS NULL
GROUP BY ag.alg_gebouw_code) beschikbaar,
(SELECT ag.alg_gebouw_code,SUM(r.alg_ruimte_opp_alt1) opp_verhuurd
from alg_ruimte r,
alg_v_allonrgoed_gegevens ag,
(SELECT aok.alg_onrgoed_key
FROM alg_kenmerk ak, alg_onrgoedkenmerk aok ,fac_usrdata fud, fac_usrtab fut
WHERE aok.ALG_ONRGOED_NIVEAU='R'
AND ak.alg_kenmerk_key = aok.alg_kenmerk_key
AND aok.alg_onrgoedkenmerk_verwijder IS NULL
AND ak.alg_kenmerk_code='VERHUURBAAR'
AND fud.fac_usrdata_key= aok.alg_onrgoedkenmerk_waarde
AND fud.fac_usrtab_key = fut.fac_usrtab_key
AND UPPER(fut.fac_usrtab_naam) ='VERHUURBAAR'
AND fud.fac_usrdata_omschr LIKE 'Verhuurbaar%'
) vhbr2,
(SELECT aok.alg_onrgoed_key
FROM alg_kenmerk ak, alg_onrgoedkenmerk aok
WHERE aok.alg_onrgoed_niveau='R'
AND ak.alg_kenmerk_key = aok.ALG_KENMERK_KEY
AND ak.alg_kenmerk_code='HUURDER'
AND aok.alg_onrgoedkenmerk_verwijder IS NULL
AND LENGTH(aok.alg_onrgoedkenmerk_waarde)>0
) verhuurd
WHERE r.alg_ruimte_key =vhbr2.alg_onrgoed_key
AND r.alg_ruimte_key =verhuurd.alg_onrgoed_key
AND ag.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_verwijder IS NULL
GROUP BY ag.alg_gebouw_code) bezet
where beschikbaar.alg_gebouw_code= bezet.alg_gebouw_code;
CREATE OR REPLACE VIEW PIVP_V_MLD_FACT_RAP
AS
SELECT m.mld_melding_key melding_nr,
@@ -2670,6 +2736,59 @@ SELECT m.mld_melding_key melding_nr,
and md.ins_discipline_key=msm.mld_ins_discipline_key
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key;
CREATE OR REPLACE VIEW PIVP_V_MLD_FACT_RAP_ALL
AS
SELECT m.mld_melding_key melding_nr,
isd.ins_srtdiscipline_omschrijving melding_vakgroep ,
md.ins_discipline_omschrijving melding_groep,
msm.mld_stdmelding_omschrijving melding_soort,
m.mld_melding_onderwerp melding_onderwerp,
m.mld_melding_datum melding_datum,
fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) factuurbedrag,
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='UW REFERENTIE'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) ponummer,
(SElECT fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='SOFT_COSTS_INTERN'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) softcosts_intern,
(SElECT fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='SOFT_COSTS_EXTERN'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) softcosts_extern,
(SElECT fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='HARD_COSTS'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) hardcosts_extern,
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='EXACTNR'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) exact_seqnr,
m.mld_melding_externsyncdate exact_exportdatum
FROM mld_melding m,
mld_stdmelding msm,
mld_discipline md,
ins_srtdiscipline isd,
mld_kenmerk mk,
mld_srtkenmerk msk,
mld_kenmerkmelding mkm
WHERE msk.mld_srtkenmerk_upper = 'FACTUURBEDRAG'
and mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
and mkm.mld_kenmerk_key = mk.mld_kenmerk_key
and mkm.mld_melding_key = m.mld_melding_key(+)
and msm.mld_stdmelding_key = m.mld_stdmelding_key
and md.ins_discipline_key=msm.mld_ins_discipline_key
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key;
CREATE OR REPLACE VIEW PIVP_V_CATERINGRESER
AS
SELECT * FROM (
@@ -2930,8 +3049,9 @@ CREATE OR REPLACE VIEW PIVP_V_MLDEXPORT
AS
SELECT m.mld_melding_key melding_key,
msm.mld_stdmelding_omschrijving stdmelding,
md.ins_discipline_omschrijving vagroep,
md.ins_discipline_omschrijving vakgroep,
isd.ins_srtdiscipline_omschrijving vakgroepType,
isd.ins_srtdiscipline_key vakgroepType_key,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_datum aanmaakdatum,
(SELECT MAX(ft.fac_tracking_datum)
@@ -2964,7 +3084,23 @@ AS
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='P2P ORDERNR'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) p2pordernr
AND mkm1.mld_melding_key = m.mld_melding_key) p2pordernr,
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='SOFT_COSTS_INTERN'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) softcosts_intern,
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='SOFT_COSTS_EXTERN'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) softcosts_extern,
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
WHERE UPPER(mk1.mld_kenmerk_code)='HARD_COSTS'
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
AND mkm1.mld_melding_key = m.mld_melding_key) hardcosts_extern,
m.mld_melding_externsyncdate extern_syncdate
FROM mld_melding m ,
prs_perslid p,
prs_afdeling pa,
@@ -3807,7 +3943,8 @@ AS
CURSOR mld(p_startDate DATE, p_endDate DATE) IS
SELECT DISTINCT bedrijf_key , debiteurnr
FROM pivp_v_mldexport
WHERE afmelddatum BETWEEN p_startDate AND p_endDate;
WHERE afmelddatum BETWEEN p_startDate AND p_endDate
AND extern_syncdate IS NULL;
CURSOR mld_regel( c_bedrijf_key NUMBER,
p_startDate DATE,
@@ -3833,9 +3970,13 @@ AS
v_currentyear VARCHAR2(10);
v_currenthuurder VARCHAR2(10);
v_factuurregel VARCHAR2(120);
v_factuurNr VARCHAR2(20);
v_exact_kenmerk_key NUMBER;
v_maxlength NUMBER:=9;
v_seq NUMBER;
BEGIN
v_exact_kenmerk_key:=0;
v_dagboek:='70';
v_leverancier:=0;
v_count :=0;
@@ -3845,10 +3986,15 @@ BEGIN
DELETE FROM fac_rapport
WHERE fac_rapport.fac_rapport_node LIKE 'EXM_MLD%';
v_factuurNr:='202500001';
-- Exports vinden plaats op maand basis
v_endmonth := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'MM'))-1);
--v_endmonth := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'MM'))+1); -- VOOR TEST
v_currentyear := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')));
IF v_endmonth = '0' THEN
v_currentyear := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))-1);
@@ -3893,6 +4039,10 @@ BEGIN
FOR rec_regel IN mld_regel(rec.bedrijf_key,v_startDate, v_endDate)
LOOP
SELECT fac_s_user01.NEXTVAL INTO v_seq FROM DUAL;
v_factuurNr := TO_CHAR(SYSDATE,'YYYY')|| LPAD (v_seq, v_maxlength - 4, '0'); -- Ophlen van het unieke factuur nr getExactFctuurNr()
v_sub_count:=v_sub_count+1;
IF v_sub_count=1 THEN
@@ -3923,13 +4073,14 @@ BEGIN
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;
v_factuurregel:= rec_regel.melding_key||'-'||rec_regel.vakgroep;
END IF;
END IF;
IF LENGTH(rec_regel.ponummer)>0 THEN
v_factuurregel:= v_factuurregel ||' (Uw ref. '||SUBSTR(rec_regel.ponummer,0,15)||')';
END IF;
-- Vaste waardes die evt worden aangepast bij vervolg project
pivp.add_xml_row (v_bestand, '<Warehouse code=""/>'); -- vaste waarde
pivp.add_xml_row (v_bestand, '<Costcenter code=""/>');
pivp.add_xml_row (v_bestand, '<Costunit code=""/>');
@@ -3947,9 +4098,99 @@ BEGIN
pivp.add_xml_element (v_bestand, 'Date', TO_CHAR(rec_regel.afmelddatum, 'YYYY-MM-DD') );
pivp.add_xml_row (v_bestand, '</Delivery>');
pivp.add_xml_row (v_bestand, '</InvoiceLine>');
IF rec_regel.softcosts_intern >0 THEN
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
pivp.add_xml_row (v_bestand, '<Warehouse code=""/>'); -- vaste waarde
pivp.add_xml_row (v_bestand, '<Costcenter code=""/>');
pivp.add_xml_row (v_bestand, '<Costunit code=""/>');
pivp.add_xml_row (v_bestand, '<Project code=""/>');
pivp.add_xml_element (v_bestand, 'Text', 'Soft costs intern');
pivp.add_xml_element (v_bestand, 'Description', 'P2P ordernr.:'||rec_regel.p2pordernr);
pivp.add_xml_row (v_bestand, '<Item code="FM-SOFTINT"/>');
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
pivp.add_xml_row (v_bestand, '<Price>');
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
pivp.add_xml_element (v_bestand, 'Value', rec_regel.softcosts_intern);
pivp.add_xml_row (v_bestand, '</Price>');
pivp.add_xml_row (v_bestand, '<Delivery>');
pivp.add_xml_element (v_bestand, 'Date', TO_CHAR(rec_regel.afmelddatum, 'YYYY-MM-DD') );
pivp.add_xml_row (v_bestand, '</Delivery>');
pivp.add_xml_row (v_bestand, '</InvoiceLine>');
END IF;
IF rec_regel.softcosts_extern >0 THEN
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
pivp.add_xml_row (v_bestand, '<Warehouse code=""/>'); -- vaste waarde
pivp.add_xml_row (v_bestand, '<Costcenter code=""/>');
pivp.add_xml_row (v_bestand, '<Costunit code=""/>');
pivp.add_xml_row (v_bestand, '<Project code=""/>');
pivp.add_xml_element (v_bestand, 'Text', 'Soft costs extern');
pivp.add_xml_element (v_bestand, 'Description', 'P2P ordernr.:'||rec_regel.p2pordernr);
pivp.add_xml_row (v_bestand, '<Item code="FM-SOFTEXT"/>');
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
pivp.add_xml_row (v_bestand, '<Price>');
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
pivp.add_xml_element (v_bestand, 'Value', rec_regel.softcosts_intern);
pivp.add_xml_row (v_bestand, '</Price>');
pivp.add_xml_row (v_bestand, '<Delivery>');
pivp.add_xml_element (v_bestand, 'Date', TO_CHAR(rec_regel.afmelddatum, 'YYYY-MM-DD') );
pivp.add_xml_row (v_bestand, '</Delivery>');
pivp.add_xml_row (v_bestand, '</InvoiceLine>');
END IF;
-- Nu de hardcosts toevoegen als deze >0 zijn
IF rec_regel.hardcosts_extern >0 THEN
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
pivp.add_xml_row (v_bestand, '<Warehouse code=""/>'); -- vaste waarde
pivp.add_xml_row (v_bestand, '<Costcenter code=""/>');
pivp.add_xml_row (v_bestand, '<Costunit code=""/>');
pivp.add_xml_row (v_bestand, '<Project code=""/>');
pivp.add_xml_element (v_bestand, 'Text', 'Hard costs extern');
pivp.add_xml_element (v_bestand, 'Description', 'P2P ordernr.:'||rec_regel.p2pordernr);
pivp.add_xml_row (v_bestand, '<Item code="FM-HARDEXT"/>');
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
pivp.add_xml_row (v_bestand, '<Price>');
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
pivp.add_xml_element (v_bestand, 'Value', rec_regel.hardcosts_extern);
pivp.add_xml_row (v_bestand, '</Price>');
pivp.add_xml_row (v_bestand, '<Delivery>');
pivp.add_xml_element (v_bestand, 'Date', TO_CHAR(rec_regel.afmelddatum, 'YYYY-MM-DD') );
pivp.add_xml_row (v_bestand, '</Delivery>');
pivp.add_xml_row (v_bestand, '</InvoiceLine>');
END IF;
-- Vrij velden tbv de soft/hard costs
pivp.add_xml_row (v_bestand, '<FreeFields>');
pivp.add_xml_row (v_bestand, '<FreeTexts>');
pivp.add_xml_row (v_bestand, '<FreeText number="1" label="Sequence number">'||v_factuurnr||'</FreeText>');
pivp.add_xml_row (v_bestand, '<FreeText number="2" label="PO nummer">'||rec_regel.ponummer||'</FreeText>');
pivp.add_xml_row (v_bestand, '</FreeTexts>');
pivp.add_xml_row (v_bestand, '</FreeFields>');
UPDATE mld_melding set mld_melding_externsyncdate=SYSDATE WHERE mld_melding_key=rec_regel.melding_key;
BEGIN
select mld_kenmerk_key
into v_exact_kenmerk_key
from mld_kenmerk mk
where mk.MLD_KENMERK_CODE='EXACTNR'
AND mk.mld_stdmelding_key=rec_regel.vakgroepType_key
and mk.mld_kenmerk_niveau='T'
AND mk.mld_kenmerk_verwijder IS NULL;
flx.setflex('MLD',v_exact_kenmerk_key,rec_regel.melding_key,v_factuurnr);
EXCEPTION WHEN NO_DATA_FOUND THEN
NULL;
END;
END LOOP;
IF v_sub_count>0 THEN
@@ -4013,6 +4254,7 @@ AS
v_currenthuurder VARCHAR2(10);
v_factuurdatum DATE;
v_factuurregel VARCHAR2(120);
BEGIN
@@ -4028,7 +4270,7 @@ BEGIN
WHERE fac_rapport_node LIKE 'EXR_RES';
-- eerst controlerene of we de eerste van een nieuw kwartaal zijn.
v_currentmonth := TO_NUMBER(TO_CHAR(SYSDATE,'MM'));
v_endmonth := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'MM'))-1);
v_currentyear := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')));