svn path=/Customer/trunk/; revision=12970
This commit is contained in:
Arthur Egberink
2006-05-17 13:21:26 +00:00
parent 2a65f4317c
commit 860dc4fdc1
2 changed files with 151 additions and 63 deletions

31
CONN/Once/conn460CtoE.sql Normal file
View File

@@ -0,0 +1,31 @@
SPOOL xconn460CtoE.lst
/////////////////////////////////////////////////////////////////////////////////////////////////CONN#583
DROP TABLE CONN_EXP_CONTRACTMUTATIE;
CREATE TABLE CONN_EXP_CONTRACTMUTATIE
(
BEDRIJFSNUMMER VARCHAR2(30),
MUTATIENUMMER VARCHAR2(20),
HUURDERNUMMER VARCHAR2(20),
BUDGETCODE VARCHAR2(20),
COMPLEXNUMMER VARCHAR2(20),
EENHEIDSNUMMER VARCHAR2(83),
INGANGSDATUM DATE,
FACTUURDEBITEUR VARCHAR2(20),
PROLONGATIETERMIJN VARCHAR2(20),
INDEXERINGSDATUM DATE,
INDEXERINGSCODE VARCHAR2(20),
INDEXERINGSMETHODE VARCHAR2(20),
TARIEFTYPE VARCHAR2(10),
AANTAL NUMBER,
TARIEF NUMBER,
TOTAAL NUMBER,
REGELINDEX NUMBER,
AANTALREGELS NUMBER
);
PROMPT Nu volgt de (her)definitie van de klantspecifieke zaken.
SPOOL OFF
@conn.sql

View File

@@ -567,7 +567,6 @@ CREATE OR REPLACE PROCEDURE CONN_EXPORT_HUURMUTATIE (
p_MutatieKey IN NUMBER,
p_LogLevel IN NUMBER)
AS
v_MUTATIENUMMER NUMBER;
v_INGANGSDATUM VARCHAR2(20);
v_INDEXERINGSDATUM VARCHAR2(20);
v_INDEXERINGSCODE VARCHAR2(20);
@@ -575,52 +574,54 @@ v_INDEXERINGSMETHODE VARCHAR2(20);
v_HUURDERNUMMER VARCHAR2(20);
v_BUDGETCODE VARCHAR2(20);
v_COMPLEXNUMMER VARCHAR2(20);
v_EENHEIDSNUMMER VARCHAR2(20);
v_EENHEIDSNUMMER VARCHAR2(83);
v_FACTUURDEBITEUR VARCHAR2(20);
v_PROLONGATIETERMIJN VARCHAR2(20);
v_TOTAAL NUMBER;
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
v_actie VARCHAR2(100);
v_index NUMBER;
CURSOR c_tarief IS
select cnt_contract_key,
aog.ALG_SRTONRGOED_CODE,
select cnt_contract_key,
aog.ALG_SRTONRGOED_CODE,
aog.ALG_SRTONRGOED_PRIJS,
sum(cnt_contract_onrgoed_opp) opp
from (select cnt_contract_key
, alg_srtonrgoed_key
, alg_onrgoed_niveau
, cnt_contract_onrgoed_opp
from cnt_contract_onrgoed
, cnt_contract_onrgoed_opp
from cnt_contract_onrgoed
where cnt_mld_melding_key is not null
union
union all
select cogo.cnt_contract_key
, cogo.alg_srtonrgoed_key
, cogo.alg_onrgoed_niveau
, cogo.cnt_contract_onrgoed_opp - nvl(cogm.cnt_contract_onrgoed_opp,0) cnt_contract_onrgoed_opp
from cnt_contract_onrgoed cogo, cnt_contract_onrgoed cogm
, cogo.cnt_contract_onrgoed_opp - nvl(cogm.cnt_contract_onrgoed_opp,0) cnt_contract_onrgoed_opp
from cnt_contract_onrgoed cogo, cnt_contract_onrgoed cogm
where cogm.cnt_contract_onrgoed_key_org(+) = cogo.cnt_contract_onrgoed_key
) contract
, alg_v_allsrtonrgoed aog
where cnt_contract_key in (
select cnt_contract_key
select cnt_contract_key
from (
select cog.cnt_contract_key,
cogm.cnt_mld_melding_key cnt_mld_melding_key
select cog.cnt_contract_key,
cogm.cnt_mld_melding_key cnt_mld_melding_key
from cnt_contract_onrgoed cog
, cnt_contract_onrgoed cogm
where cogm.cnt_contract_onrgoed_key_org = cog.cnt_contract_onrgoed_key
union
select cog.cnt_contract_key
, cnt_mld_melding_key
, cnt_mld_melding_key
from cnt_contract_onrgoed cog
)
)
where cnt_mld_melding_key = p_MutatieKey
)
and aog.alg_srtonrgoed_key = contract.alg_srtonrgoed_key
and aog.alg_type = contract.alg_onrgoed_niveau
group by contract.alg_srtonrgoed_key,
cnt_contract_key,
group by contract.alg_srtonrgoed_key,
cnt_contract_key,
aog.ALG_SRTONRGOED_CODE,
aog.ALG_SRTONRGOED_PRIJS
order by cnt_contract_key;
@@ -630,38 +631,71 @@ v_CNT_CONTRACT_KEY NUMBER(10);
BEGIN
v_actie := 'idle';
v_index := 0;
DBMS_OUTPUT.put_line('Before Select MLD_MELDING_KEY');
SELECT MLD_MELDING_KEY
, (SELECT NVL(km.MLD_KENMERKMELDING_WAARDE, '')
FROM MLD_KENMERKMELDING km
WHERE km.MLD_MELDING_KEY = m.MLD_MELDING_KEY
AND km.MLD_KENMERK_KEY = 781)
, (SELECT NVL(km.MLD_KENMERKMELDING_WAARDE, '')
FROM MLD_KENMERKMELDING km
WHERE km.MLD_MELDING_KEY = m.MLD_MELDING_KEY
AND km.MLD_KENMERK_KEY = 1621) -- indexeringsdatum
, (SELECT NVL(fd.FAC_USRDATA_CODE, '')
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = m.MLD_MELDING_KEY
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1625) -- indexeringscode
, (SELECT NVL(fd.FAC_USRDATA_CODE, '')
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = m.MLD_MELDING_KEY
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1622) -- indexeringsmethode
INTO v_MUTATIENUMMER
, v_INGANGSDATUM
, v_INDEXERINGSDATUM
, v_INDEXERINGSCODE
, v_INDEXERINGSMETHODE
FROM MLD_MELDING m
WHERE MLD_MELDING_KEY = p_MutatieKey;
BEGIN
SELECT NVL(km.MLD_KENMERKMELDING_WAARDE, '')
INTO v_INGANGSDATUM
FROM MLD_KENMERKMELDING km
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND km.MLD_KENMERK_KEY = 781;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INGANGSDATUM := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1621');
BEGIN
SELECT NVL(km.MLD_KENMERKMELDING_WAARDE, '')
INTO v_INDEXERINGSDATUM
FROM MLD_KENMERKMELDING km
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND km.MLD_KENMERK_KEY = 1621;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INDEXERINGSDATUM := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1625');
BEGIN
SELECT NVL(fd.FAC_USRDATA_CODE, '')
INTO v_INDEXERINGSCODE
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1625;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INDEXERINGSCODE := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1622');
BEGIN
SELECT NVL(fd.FAC_USRDATA_CODE, '')
INTO v_INDEXERINGSMETHODE
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1622;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INDEXERINGSMETHODE := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1641');
BEGIN
SELECT NVL(fd.FAC_USRDATA_CODE, '')
INTO v_PROLONGATIETERMIJN
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1641;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_PROLONGATIETERMIJN := NULL;
END;
DBMS_OUTPUT.put_line('Before LOOP');
v_CNT_CONTRACT_KEY := -1;
v_CNT_CONTRACT_KEY := -1;
v_actie := 'Bepaling individuele tarieven';
OPEN c_Tarief;
IF c_Tarief%ISOPEN THEN
@@ -672,23 +706,23 @@ BEGIN
DBMS_OUTPUT.put_line('Contract key ' || v_TariefRec.cnt_contract_key);
IF v_CNT_CONTRACT_KEY <> v_TariefRec.cnt_contract_key THEN
v_CNT_CONTRACT_KEY := v_TariefRec.cnt_contract_key;
v_actie := 'Bepaling individuele tarieven (contract:' || v_CNT_CONTRACT_KEY || ')';
DBMS_OUTPUT.put_line('1');
select sum(cnt_contract_onrgoed_opp*aog.ALG_SRTONRGOED_PRIJS) prijs
into v_TOTAAL
from (select cnt_contract_key
, alg_srtonrgoed_key
, alg_onrgoed_niveau
, cnt_contract_onrgoed_opp
from cnt_contract_onrgoed
, cnt_contract_onrgoed_opp
from cnt_contract_onrgoed
where cnt_mld_melding_key is not null
union
union all
select cogo.cnt_contract_key
, cogo.alg_srtonrgoed_key
, cogo.alg_onrgoed_niveau
, cogo.cnt_contract_onrgoed_opp - nvl(cogm.cnt_contract_onrgoed_opp,0) cnt_contract_onrgoed_opp
from cnt_contract_onrgoed cogo, cnt_contract_onrgoed cogm
, cogo.cnt_contract_onrgoed_opp - nvl(cogm.cnt_contract_onrgoed_opp,0) cnt_contract_onrgoed_opp
from cnt_contract_onrgoed cogo, cnt_contract_onrgoed cogm
where cogm.cnt_contract_onrgoed_key_org(+) = cogo.cnt_contract_onrgoed_key
) contract
, alg_v_allsrtonrgoed aog
@@ -697,20 +731,34 @@ BEGIN
and aog.alg_type = contract.alg_onrgoed_niveau;
v_actie := 'Bepaling leveranciergegevens (contract:' || v_CNT_CONTRACT_KEY || ')';
DBMS_OUTPUT.put_line('Bepaling leveranciergegevens (contract:' || v_CNT_CONTRACT_KEY || ')');
SELECT substr(prs_leverancier_nr,0,instr(prs_leverancier_nr, '/')-1)
, substr(prs_leverancier_nr,instr(prs_leverancier_nr, '/')+1)
, c.cnt_contract_nummer
, nvl((select prs_kenmerklink_waarde from prs_kenmerklink kl where prs_link_key = prs_bedrijf_key and prs_kenmerk_key = 1014),'')
, substr(prs_leverancier_nr,instr(prs_leverancier_nr, '/')+1)
, c.cnt_contract_nummer
INTO v_BUDGETCODE
, v_HUURDERNUMMER
, v_EENHEIDSNUMMER
, v_FACTUURDEBITEUR
FROM CNT_CONTRACT c
, PRS_BEDRIJF b
WHERE c.CNT_CONTRACT_KEY = v_cnt_contract_key
AND c.CNT_PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY;
BEGIN
SELECT nvl(prs_kenmerklink_waarde,'')
INTO v_FACTUURDEBITEUR
FROM prs_kenmerklink kl
, CNT_CONTRACT c
, PRS_BEDRIJF b
WHERE c.CNT_CONTRACT_KEY = v_cnt_contract_key
AND c.CNT_PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY
AND kl.prs_link_key = prs_bedrijf_key
and prs_kenmerk_key = 1014;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_FACTUURDEBITEUR := NULL;
END;
END IF;
DBMS_OUTPUT.put_line('Bepaling locatiecode (contract:' || v_CNT_CONTRACT_KEY || ')');
v_actie := 'Bepaling locatiecode (contract:' || v_CNT_CONTRACT_KEY || ')';
SELECT max (l.alg_locatie_code)
INTO v_COMPLEXNUMMER
@@ -720,9 +768,10 @@ BEGIN
WHERE cog.alg_onrgoed_key = aog.alg_onroerendgoed_keys
AND aog.alg_locatie_key = l.alg_locatie_key
AND cog.cnt_mld_melding_key = p_MutatieKey;
DBMS_OUTPUT.put_line('Toevoegen record (contract:' || v_CNT_CONTRACT_KEY || ', tarieftype:' || v_TariefRec.ALG_SRTONRGOED_CODE || ')');
v_actie := 'Toevoegen record (contract:' || v_CNT_CONTRACT_KEY || ', tarieftype:' || v_TariefRec.ALG_SRTONRGOED_CODE || ')';
INSERT INTO CONN_EXP_CONTRACTMUTATIE
v_index := v_index + 1;
INSERT INTO CONN_EXP_CONTRACTMUTATIE
( BEDRIJFSNUMMER
, MUTATIENUMMER
, HUURDERNUMMER
@@ -731,6 +780,7 @@ BEGIN
, EENHEIDSNUMMER
, INGANGSDATUM
, FACTUURDEBITEUR
, PROLONGATIETERMIJN
, INDEXERINGSDATUM
, INDEXERINGSCODE
, INDEXERINGSMETHODE
@@ -738,25 +788,32 @@ BEGIN
, AANTAL
, TARIEF
, TOTAAL
, REGELINDEX
) VALUES (
'0011'
, v_MUTATIENUMMER || '/' || v_CNT_CONTRACT_KEY
, p_MutatieKey || '/' || v_CNT_CONTRACT_KEY
, v_HUURDERNUMMER
, v_BUDGETCODE
, v_COMPLEXNUMMER
, v_EENHEIDSNUMMER
, to_date(v_INGANGSDATUM, 'dd-mm-yyyy')
, fac.safe_to_date(v_INGANGSDATUM, 'dd-mm-yyyy')
, v_FACTUURDEBITEUR
, to_date(v_INDEXERINGSDATUM,'dd-mm-yyyy')
, v_PROLONGATIETERMIJN
, fac.safe_to_date(v_INDEXERINGSDATUM,'dd-mm-yyyy')
, v_INDEXERINGSCODE
, v_INDEXERINGSMETHODE
, v_TariefRec.ALG_SRTONRGOED_CODE
, v_TariefRec.opp
, v_TariefRec.ALG_SRTONRGOED_PRIJS
, v_TOTAAL);
, v_TOTAAL
, v_index
);
END;
END LOOP;
-- toevoegen aantal aan records
UPDATE CONN_EXP_CONTRACTMUTATIE SET AANTALREGELS = v_index WHERE substr(MUTATIENUMMER,0,instr(MUTATIENUMMER, '/')-1) = p_MutatieKey;
DBMS_OUTPUT.put_line('Na update CONN_EXP_CONTRACTMUTATIE (aantalregels)');
v_actie := 'Update mutaties';
UPDATE cnt_contract_onrgoed SET cnt_mutatie_status_key = 6 WHERE cnt_mld_melding_key=p_MutatieKey;