CONN#12340

svn path=/Customer/trunk/; revision=13388
This commit is contained in:
Arthur Egberink
2007-10-05 13:07:06 +00:00
parent 0bfa67357f
commit 84963cabc1

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for CONN: Connexxion
-- (c) 2005-2006 Dijkoraad IT bv
-- $Revision: 110 $
-- $Modtime: 17-09-07 11:55 $
-- $Revision: 111 $
-- $Modtime: 5-10-07 14:58 $
--
-- Support: +31 53 4800700
@@ -175,6 +175,9 @@ AS
--zie onderaan de file
--CONN#662
-- Exporteren van huurcontracten via de knop in het huurmutatiescherm. De geselecteerde mutatie wordt in de tabel
-- CONN_EXP_CONTRACTMUTATIE geschreven. Hierna volgt de dagelijkse export die de regels daadwerkelijk in het exportbestand
-- plaatst.
CREATE OR REPLACE PROCEDURE CONN_EXPORT_HUURMUTATIE (
p_MutatieKey IN NUMBER,
p_LogLevel IN NUMBER)
@@ -1068,15 +1071,6 @@ where p.prs_perslid_key = kl.PRS_LINK_KEY
and kl.PRS_KENMERK_KEY = 1001
and a.prs_kostenplaats_key is null;
CREATE OR REPLACE VIEW CONN_V_ONTVANGEN_HUURCONTR
(FCLT_F_Xelioncontractnummer, Xelionsubcontractnummer,
FCLT_F_mutatienummer, navisioncontractvolgnummer, FCLT_F_huurder, budgetcode, FCLT_F_complex, vhe_contractnummer, contractsoort,
ingangsdatum, einddatum, totaalbedrag, invoerdatum, tarieftype, aantal, prijs, cnt_contract_key)
as
select Xelioncontractnummer, Xelionsubcontractnummer,
mutatienummer, navisioncontractvolgnummer, huurder, budgetcode, complex, vhe_contractnummer, contractsoort,
ingangsdatum, einddatum, totaalbedrag, invoerdatum, tarieftype, aantal, prijs, cnt_contract_key from conn_ontv_mutatie;
CREATE OR REPLACE VIEW conn_v_huurcontract_details (fclt_f_locatie,
fclt_f_naam,
@@ -2463,290 +2457,327 @@ END;
CREATE OR REPLACE procedure CONN_IMPORT_NAV_HUURCONTRACTEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2,
p_FileDir in VARCHAR2,
p_FileName IN VARCHAR2) AS
--v_FileHandle UTL_FILE.FILE_TYPE;
--v_NewLine VARCHAR2(1000); -- Input line
--v_Field VARCHAR2(100);
--v_FieldDelimitor VARCHAR2(1);
--v_ErrorMsg VARCHAR(200);
--v_Date DATE;
--v_Number NUMBER(9,2);
--v_Contract NUMBER(10);
--ORACLE_err_num NUMBER;
--ORACLE_err_mes VARCHAR2(100);
--v_XelionContractnummer VARCHAR2(100);
--v_XelionSubcontractnummer VARCHAR2(100);
--v_Mutatienummer VARCHAR2(100);
--v_NavisionContractvolgnummer VARCHAR2(100);
--v_Huurder VARCHAR2(100);
--v_Companyname VARCHAR2(100);
--v_Budgetcode VARCHAR2(100);
--v_Complex VARCHAR2(100);
--v_VHE_Contractnummer VARCHAR2(100);
--v_Contractsoort VARCHAR2(100);
--v_Ingangsdatum VARCHAR2(100);
--v_Einddatum VARCHAR2(100);
--v_TotaalBedrag VARCHAR2(100);
--v_Invoerdatum VARCHAR2(100);
CREATE OR REPLACE PROCEDURE CONN_IMPORT_CONTRACTMUTATIE (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_newline FAC_IMP_FILE.fac_imp_file_line%TYPE; -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
v_hint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- De velden op de eerste regel
v_bedrijfsnummer VARCHAR2(30);
v_mutatienummer VARCHAR2(20);
v_complexnummer VARCHAR2(20);
v_eenheidsnummer VARCHAR2(83);
v_huurdernummer VARCHAR2(20);
v_budgetcode VARCHAR2(20);
v_ingangsdatum VARCHAR2(20);
v_indexeringsdatum VARCHAR2(20);
v_brutohuur VARCHAR2(20);
v_invoerdatum VARCHAR2(20);
v_gebeurtenis VARCHAR2(20);
v_tarieftype VARCHAR2(10);
v_ruimtesoort VARCHAR2(10);
v_aantal VARCHAR2(20);
v_tarief VARCHAR2(20);
v_totaal VARCHAR2(20);
v_aantalregels VARCHAR2(20);
CURSOR c_cm
IS
SELECT *
FROM FAC_IMP_FILE
WHERE fac_imp_file_applicatie = p_applname
ORDER BY FAC_IMP_FILE_INDEX;
v_rec c_cm%ROWTYPE;
BEGIN
-- v_FieldDelimitor := ';';
-- v_FileHandle := UTL_FILE.FOPEN (p_FileDir, p_FileName, 'r');
-- DELETE FROM IMP_LOG WHERE IMP_LOG_APPLICATIE = p_ApplName;
-- DELETE FROM CONN_IMP_NAV_HUURCONTRACTEN;
-- LOOP
-- BEGIN
-- UTL_FILE.GET_LINE(v_FileHandle, v_NewLine);
-- EXCEPTION
-- WHEN NO_DATA_FOUND THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- -- EOF reached
-- EXIT;
-- WHEN OTHERS THEN
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := '(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- END;
-- BEGIN
-- v_ErrorMsg := 'Inlezen velden met scheidingstekens';
-- getField(v_newLine, v_FieldDelimitor,v_XelionContractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_XelionSubcontractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Mutatienummer);
-- getField(v_newLine, v_FieldDelimitor,v_NavisionContractvolgnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Huurder);
-- getField(v_newLine, v_FieldDelimitor,v_Companyname);
-- getField(v_newLine, v_FieldDelimitor,v_Budgetcode);
-- getField(v_newLine, v_FieldDelimitor,v_Complex);
-- getField(v_newLine, v_FieldDelimitor,v_VHE_Contractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Contractsoort);
-- getField(v_newLine, v_FieldDelimitor,v_Ingangsdatum);
-- getField(v_newLine, v_FieldDelimitor,v_Einddatum);
-- getField(v_newLine, v_FieldDelimitor,v_TotaalBedrag);
-- getField(v_newLine, v_FieldDelimitor,v_Invoerdatum);
-- v_ErrorMsg := 'Controle op datumvelden (xelion: '||v_XelionContractnummer||')';
-- v_date := to_date (v_Ingangsdatum, 'yyyymmdd');
-- v_date := to_date (v_Einddatum, 'yyyymmdd');
-- v_ErrorMsg := 'Controle op getallen (xelion: '||v_XelionContractnummer||')';
-- v_number := to_number (v_TotaalBedrag, '999999999.99');
-- v_contract := conn_get_contract_key(v_Complex, v_Huurder, v_Budgetcode);
-- v_ErrorMsg := 'Invoegen contract (xelion: '||v_XelionContractnummer||')';
-- IF v_contract IS NOT NULL THEN
-- INSERT INTO conn_imp_nav_huurcontracten
-- ( XelionContractnummer
-- ,XelionSubcontractnummer
-- ,Mutatienummer
-- ,NavisionContractvolgnummer
-- ,Huurder
-- ,Companyname
-- ,Budgetcode
-- ,Complex
-- ,VHE_Contractnummer
-- ,Contractsoort
-- ,Ingangsdatum
-- ,Einddatum
-- ,TotaalBedrag
-- ,Invoerdatum
-- ) VALUES
-- ( substr(v_XelionContractnummer,1,25)
-- ,substr(v_XelionSubcontractnummer,1,4)
-- ,substr(v_Mutatienummer,1,20)
-- ,substr(v_NavisionContractvolgnummer,1,100)
-- ,substr(v_Huurder,1,20)
-- ,substr(v_Companyname,1,50)
-- ,substr(v_Budgetcode,1,20)
-- ,substr(v_Complex,1,4)
-- ,substr(v_VHE_Contractnummer,1,50)
-- ,substr(v_Contractsoort,1,50)
-- ,substr(v_Ingangsdatum,1,10)
-- ,substr(v_Einddatum,1,10)
-- ,substr(v_TotaalBedrag,1,12)
-- ,substr(v_Invoerdatum,1,10)
-- );
-- ELSE
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', 'Kan contract niet vinden', 'Check huurdernr:'|| v_Huurder ||' en budgetcode: '|| v_Budgetcode);
-- END IF;
-- EXCEPTION
-- WHEN OTHERS THEN
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- END;
COMMIT;
-- END LOOP;
-- EXCEPTION
-- WHEN UTL_FILE.INVALID_OPERATION THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_OPERATION (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer bestandsnaam van importbestand');
-- WHEN UTL_FILE.INVALID_FILEHANDLE THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_FILEHANDLE (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN UTL_FILE.INVALID_PATH THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_PATH (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn');
-- WHEN UTL_FILE.READ_ERROR THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.READ_ERROR (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN OTHERS THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'OTHERS (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
END;
/
--
--
--
CREATE OR REPLACE procedure CONN_IMPORT_NAV_HUURTARIEVEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2,
p_FileDir in VARCHAR2,
p_FileName IN VARCHAR2) AS
--v_FileHandle UTL_FILE.FILE_TYPE;
--v_NewLine VARCHAR2(1000); -- Input line
--v_Field VARCHAR2(100);
--v_FieldDelimitor VARCHAR2(1);
--v_ErrorMsg VARCHAR(200);
--ORACLE_err_num NUMBER;
--ORACLE_err_mes VARCHAR2(200);
--v_Companyname VARCHAR2(100);
--v_XelionContractnummer VARCHAR2(100);
--v_XelionSubcontractnummer VARCHAR2(100);
--v_Mutatienummer VARCHAR2(100);
--v_Tarieftype VARCHAR2(100);
--v_Aantal VARCHAR2(100);
--v_Prijs VARCHAR2(100);
BEGIN
-- v_FieldDelimitor := ';';
-- v_FileHandle := UTL_FILE.FOPEN (p_FileDir, p_FileName, 'r');
-- DELETE FROM IMP_LOG WHERE IMP_LOG_APPLICATIE = p_ApplName;
-- DELETE FROM CONN_IMP_NAV_HUURTARIEVEN;
-- LOOP
-- BEGIN
-- UTL_FILE.GET_LINE(v_FileHandle, v_NewLine);
-- EXCEPTION
-- WHEN NO_DATA_FOUND THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- -- EOF reached
-- EXIT;
-- WHEN OTHERS THEN
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := '(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- END;
-- getField(v_newLine, v_FieldDelimitor,v_Companyname);
-- getField(v_newLine, v_FieldDelimitor,v_XelionContractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_XelionSubcontractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Mutatienummer);
-- getField(v_newLine, v_FieldDelimitor,v_Tarieftype);
-- getField(v_newLine, v_FieldDelimitor,v_Aantal);
-- getField(v_newLine, v_FieldDelimitor,v_Prijs);
-- INSERT INTO conn_imp_nav_huurtarieven
-- ( Companyname
-- ,XelionContractnummer
-- ,XelionSubcontractnummer
-- ,Mutatienummer
-- ,Tarieftype
-- ,Aantal
-- ,Prijs
-- ) VALUES
-- ( substr(v_Companyname,1,50)
-- ,substr(v_XelionContractnummer,1,25)
-- ,substr(v_XelionSubcontractnummer,1,4)
-- ,substr(v_Mutatienummer,1,20)
-- ,substr(v_Tarieftype,1,20)
-- ,substr(v_Aantal,1,20)
-- ,substr(v_Prijs,1,20)
-- );
COMMIT;
-- END LOOP;
-- EXCEPTION
-- WHEN UTL_FILE.INVALID_OPERATION THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_OPERATION (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer bestandsnaam van importbestand');
-- WHEN UTL_FILE.INVALID_FILEHANDLE THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_FILEHANDLE (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN UTL_FILE.INVALID_PATH THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_PATH (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn');
-- WHEN UTL_FILE.READ_ERROR THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.READ_ERROR (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN OTHERS THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'OTHERS (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
END;
/
--
-- Init
v_fielddelimitor := ';';
DELETE CONN_IMP_CONTRACTMUTATIE;
DELETE IMP_LOG
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < sysdate -7;
OPEN c_cm;
IF c_cm%ISOPEN THEN
LOOP
BEGIN
FETCH c_cm INTO v_rec;
EXIT WHEN c_cm%NOTFOUND;
v_hint := substr('import regel:' || v_rec.fac_imp_file_index || ' inhoud: ' || v_rec.fac_imp_file_line,0,200);
v_newline := v_rec.fac_imp_file_line;
Fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijfsnummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_mutatienummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_complexnummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_eenheidsnummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_huurdernummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_budgetcode);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_ingangsdatum);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_indexeringsdatum);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_brutohuur);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_invoerdatum);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_gebeurtenis);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_tarieftype);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_ruimtesoort);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_aantal);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_tarief);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_totaal);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_aantalregels);
CREATE OR REPLACE procedure CONN_UPDATE_NAV_HUURCONTRACTEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2) AS
BEGIN
commit;
INSERT INTO CONN_IMP_CONTRACTMUTATIE
( bedrijfsnummer
, mutatienummer
, complexnummer
, eenheidsnummer
, huurdernummer
, budgetcode
, ingangsdatum
, indexeringsdatum
, brutohuur
, invoerdatum
, gebeurtenis
, tarieftype
, ruimtesoort
, aantal
, tarief
, totaal
, aantalregels
)
VALUES ( substr(v_bedrijfsnummer,1,30)
, substr(v_mutatienummer,1,20)
, substr(v_complexnummer,1,20)
, substr(v_eenheidsnummer,1,83)
, substr(v_huurdernummer,1,20)
, substr(v_budgetcode,1,20)
, to_date(substr(v_ingangsdatum,1,8),'YYYYMMDD')
, to_date(substr(v_indexeringsdatum,1,8),'YYYYMMDD')
, to_number(substr(v_brutohuur,1,11))
, to_date(substr(v_invoerdatum,1,8),'YYYYMMDD')
, substr(v_gebeurtenis,1,20)
, substr(v_tarieftype,1,10)
, substr(v_ruimtesoort,1,10)
, to_number(substr(v_aantal,1,9))
, to_number(substr(v_tarief,1,13))
, to_number(substr(v_totaal,1,11))
, to_number(substr(v_aantalregels,1,6))
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_hint);
END;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_hint);
END;
/
CREATE OR REPLACE PROCEDURE CONN_UPDATE_CONTRACTMUTATIE (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
v_newline FAC_IMP_FILE.fac_imp_file_line%TYPE; -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
v_hintmsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- De velden op de eerste regel
v_alg_srtruimte_key NUMBER;
v_alg_srtruimte_prijs NUMBER;
v_exp_totaal NUMBER;
v_tot_prijs NUMBER;
v_afwijking NUMBER;
CURSOR c_index
IS
SELECT *
FROM CONN_IMP_CONTRACTMUTATIE
WHERE gebeurtenis = 'Index'
ORDER BY eenheidsnummer, tarieftype;
v_rec_index c_index%ROWTYPE;
CURSOR c_mutatie
IS
SELECT DISTINCT mutatienummer, brutohuur
FROM conn_imp_contractmutatie
WHERE gebeurtenis = 'Mutatie';
v_rec_mutatie c_mutatie%ROWTYPE;
CURSOR c_mut_index (pMutnummer IN VARCHAR2)
IS
SELECT *
FROM CONN_IMP_CONTRACTMUTATIE
WHERE mutatienummer = pMutnummer;
BEGIN
-- Init
OPEN c_index;
IF c_index%ISOPEN THEN
LOOP
BEGIN
FETCH c_index INTO v_rec_index;
EXIT WHEN c_index%NOTFOUND;
BEGIN
v_hintmsg := ' Complex: ' || v_rec_index.complexnummer || 'Tarieftype: ' || v_rec_index.tarieftype || ' Tarief:' || v_rec_index.tarief;
SELECT alg_srtruimte_key, alg_srtruimte_prijs
INTO v_alg_srtruimte_key, v_alg_srtruimte_prijs
FROM alg_srtruimte
WHERE alg_srtruimte_upper = v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype);
IF v_rec_index.tarief <> v_alg_srtruimte_prijs THEN
UPDATE alg_srtruimte
SET alg_srtruimte_prijs = v_rec_index.tarief
WHERE alg_srtruimte_key = v_alg_srtruimte_key;
v_errormsg := 'Ind: Tarief aangepast. Tarief:' || v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype) || ' Prijs:' || v_rec_index.tarief || ' Oude prijs:' || v_alg_srtruimte_prijs;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_errormsg := 'Ind: Kan tarieftype niet vinden. Tarief:' || v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype);
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'Ind: OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_hintmsg);
END;
END;
END LOOP;
COMMIT;
END IF;
OPEN c_mutatie;
IF c_index%ISOPEN THEN
LOOP
BEGIN
FETCH c_mutatie INTO v_rec_mutatie;
EXIT WHEN c_mutatie%NOTFOUND;
BEGIN
SELECT max(totaal)
INTO v_exp_totaal
FROM conn_exp_contractmutatie cec
WHERE cec.mutatienummer = v_rec_mutatie.mutatienummer;
IF v_exp_totaal IS NULL THEN
v_errormsg := 'Mut: Kan contractmutatie niet vinden. Mutatie:' || v_rec_mutatie.mutatienummer || ' Huur:' || v_rec_mutatie.brutohuur;
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
ELSE
--Fac.imp_writelog (p_applname, p_applrun, 'E', 'Else v_exp_totaal: ' || v_exp_totaal, '');
IF v_exp_totaal = 0 THEN
v_afwijking := 0;
ELSE
v_afwijking := TRUNC((ABS(v_rec_mutatie.brutohuur - v_exp_totaal)/v_exp_totaal)*100);
END IF;
IF v_afwijking < 10 THEN
-- update tarieftype vanuit ontvangen mutatie
FOR v_rec_mut_index IN c_mut_index(v_rec_mutatie.mutatienummer) LOOP
BEGIN
v_hintmsg := ' Complex: ' || v_rec_index.complexnummer || 'Tarieftype: ' || v_rec_index.tarieftype || ' Tarief:' || v_rec_index.tarief;
SELECT alg_srtruimte_key, alg_srtruimte_prijs
INTO v_alg_srtruimte_key, v_alg_srtruimte_prijs
FROM alg_srtruimte
WHERE alg_srtruimte_upper = v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype);
IF v_rec_index.tarief <> v_alg_srtruimte_prijs THEN
UPDATE alg_srtruimte
SET alg_srtruimte_prijs = v_rec_index.tarief
WHERE alg_srtruimte_key = v_alg_srtruimte_key;
v_errormsg := 'Mut: Tarief aangepast. Tarief:' || v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype) || ' Prijs:' || v_rec_index.tarief || ' Oude prijs:' || v_alg_srtruimte_prijs;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_errormsg := 'Mut: Kan tarieftype niet vinden. Tarief:' || v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype);
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_hintmsg);
END;
END LOOP;
-- verwijder records uit de export
DELETE CONN_EXP_CONTRACTMUTATIE WHERE mutatienummer = v_rec_mutatie.mutatienummer;
-- voor mutatie uit
CONN_VERWERK_HUURMUTATIE (p_applname, p_applrun, substr(v_rec_mutatie.MUTATIENUMMER,0,instr(v_rec_mutatie.MUTATIENUMMER, '/')-1));
v_ErrorMsg := 'Mut: Mutatie verwerkt Mutatie: ' || v_rec_mutatie.mutatienummer || ' afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_exp_totaal||' Ontvangen bedrag:' ||v_rec_mutatie.brutohuur ;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
COMMIT;
ELSE
-- afwijking is te groot
v_ErrorMsg := 'Mut: Ontvangen contract mismatch! Mutatie: ' || v_rec_mutatie.mutatienummer || ' afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_exp_totaal||' Ontvangen bedrag:' ||v_rec_mutatie.brutohuur ;
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
END IF;
END IF;
END;
END;
END LOOP;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_hintmsg);
END;
/
-- Procedure CONN_VERWERK_HUURMUTATIE wordt gebruikt door de procedure CONN_UPDATE_CONTRACTMUTATIE
CREATE OR REPLACE procedure CONN_VERWERK_HUURMUTATIE (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2,
@@ -2869,18 +2900,7 @@ BEGIN
END IF;
CLOSE c2;
dbms_output.put_line('na close c2'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
UPDATE CNT_CONTRACT c SET
CNT_CONTRACT_NUMMER = (SELECT DISTINCT MAX(COM.XELIONCONTRACTNUMMER) FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
,CNT_CONTRACT_DOCUMENT = (SELECT DISTINCT 'Xelion subcontractnr: ' || COM.XELIONSUBCONTRACTNUMMER ||
'Navision contractnr: ' || COM.NAVISIONCONTRACTVOLGNUMMER ||
'VHE contractnummer: ' || COM.VHE_CONTRACTNUMMER ||
'Navision totaalbedrag: ' || COM.TOTAALBEDRAG FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
,CNT_CONTRACT_LOOPTIJD_VAN = (SELECT DISTINCT TO_DATE(COM.INGANGSDATUM,'YYYYMMDD') FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
,CNT_CONTRACT_LOOPTIJD_TOT = (SELECT DISTINCT TO_DATE(COM.EINDDATUM,'YYYYMMDD') FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
WHERE c.CNT_CONTRACT_KEY IN (SELECT CNT_CONTRACT_KEY FROM CONN_ONTV_MUTATIE WHERE MUTATIENUMMER = p_mut_key);
--!!!!!!!!!!!!!!!!!verwijder records uit conn_ontv_mutatie
DELETE FROM CONN_ONTV_MUTATIE WHERE MUTATIENUMMER = p_mut_key;
dbms_output.put_line('na delete c2'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
COMMIT;
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line('exception'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
@@ -2897,239 +2917,7 @@ END;
/
CREATE OR REPLACE procedure CONN_UPDATE_NAV_HUURTARIEVEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2) AS
v_ErrorMsg VARCHAR(200);
v_LogStatus VARCHAR(1);
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(200);
CURSOR c1 IS
SELECT *
FROM conn_ontv_mutatie
ORDER BY MUTATIENUMMER, CNT_CONTRACT_KEY;
v_rec c1%rowtype;
v_teller integer;
v_cur_mutatie VARCHAR2(10);
v_mutatie_succes NUMBER(1);
cCount number(10);
v_srt_key NUMBER(10);
v_opp NUMBER(10,2);
v_prijs NUMBER(10,2);
v_ontv_prijs NUMBER(10,2);
v_tot_prijs NUMBER(10,2);
v_mut_prijs NUMBER(10,2);
v_afwijking NUMBER(10,2);
BEGIN
-- delete old messages from the log
DELETE FROM IMP_LOG WHERE IMP_LOG_APPLICATIE = p_ApplName;
UPDATE CONN_IMP_NAV_HUURCONTRACTEN SET CNT_CONTRACT_KEY = CONN_GET_CONTRACT_KEY(Complex, Huurder, Budgetcode);
-- remove items from CONN_ONTV_MUTATIE table. New received contract
-- information will overwrite the current data. This pocess is used
-- to correct contracts that where not accepted by Facilitor.
DELETE FROM CONN_ONTV_MUTATIE
WHERE (XelionContractnummer, Mutatienummer)
IN
(SELECT XelionContractnummer, Mutatienummer FROM CONN_IMP_NAV_HUURCONTRACTEN);
-- add new received records to the CONN_ONTV_MUTATIE table
INSERT INTO CONN_ONTV_MUTATIE
( XelionContractnummer
,XelionSubcontractnummer
,Mutatienummer
,NavisionContractvolgnummer
,Huurder
,Companyname
,Budgetcode
,Complex
,VHE_Contractnummer
,Contractsoort
,Ingangsdatum
,Einddatum
,TotaalBedrag
,Invoerdatum
,Tarieftype
,Aantal
,Prijs
,cnt_contract_key
)
select cim.XelionContractnummer
,cim.XelionSubcontractnummer
,cim.Mutatienummer
,NavisionContractvolgnummer
,Huurder
,cim.Companyname
,Budgetcode
,Complex
,VHE_Contractnummer
,Contractsoort
,Ingangsdatum
,Einddatum
,TotaalBedrag
,Invoerdatum
,Tarieftype
,Aantal
,Prijs
,cnt_contract_key
from conn_imp_nav_huurtarieven cit, conn_imp_nav_huurcontracten cim
where cit.XELIONCONTRACTNUMMER = cim.XELIONCONTRACTNUMMER
and cim.cnt_contract_key is not null and cim.mutatienummer is not null;
-- Log all entries that cannot be found in the contracts.
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
select p_ApplName,
p_ApplRun,
sysdate,
'E',
'Contract niet gevonden, Xelion:' || cim.XelionContractnummer || '/' || cim.XelionSubcontractnummer ||
' Mutatie:' || cim.Mutatienummer || ' Huurder/Budget:' || Huurder || '/' || Budgetcode,
'Controleer complex, huurder, budgetcode'
from conn_imp_nav_huurcontracten cim
where cim.cnt_contract_key is null;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
select p_ApplName,
p_ApplRun,
sysdate,
'E',
'Mutatienummer niet gevonden, Xelion:' || cim.XelionContractnummer || '/' || cim.XelionSubcontractnummer ||
' Mutatie:' || cim.Mutatienummer || ' Huurder/Budget:' || Huurder || '/' || Budgetcode,
'Controleer complex, huurder, budgetcode'
from conn_imp_nav_huurcontracten cim
where cim.mutatienummer is null;
delete from conn_imp_nav_huurcontracten;
delete from conn_imp_nav_huurtarieven;
-- start compare
v_cur_mutatie := '0';
OPEN c1;
IF c1%ISOPEN THEN
LOOP
BEGIN
FETCH c1 INTO v_rec;
EXIT WHEN c1%NOTFOUND;
-- Check whether
IF v_cur_mutatie <> v_rec.MUTATIENUMMER THEN
-- Check if we are in startup mode
IF v_cur_mutatie <> 0 THEN
-- Not the first time, so end of a mutation run.
-- Calculate the total amount of the contract received
SELECT SUM(TOTAALBEDRAG)
INTO v_ontv_prijs
FROM
(SELECT DISTINCT MUTATIENUMMER, XELIONCONTRACTNUMMER, TOTAALBEDRAG
FROM CONN_ONTV_MUTATIE
WHERE MUTATIENUMMER = v_cur_mutatie);
-- Calculate de deviation
v_afwijking := TRUNC((ABS(v_ontv_prijs - v_tot_prijs)/v_tot_prijs)*100);
-- A match between received data and Facilitor is established when all tarieftypes received
-- match the facilitor tarieftypes and square meters AND the total price of the contract is
-- within the 10 percent from the Facilitor contract.
IF v_mutatie_succes = 1 AND v_afwijking < 10 THEN
-- Succesfull match update the status of the mutation to 'OntvangenOK''
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 3 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract match afwijking: '|| v_afwijking|| '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs;
v_LogStatus := 'I';
CONN_VERWERK_HUURMUTATIE (p_ApplName,p_ApplRun,v_cur_mutatie);
COMMIT;
ELSE
-- Unsuccesfull match - set the status of the mutation to 'OntvangenNOK'
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 4 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract mismatch! afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs ||' tarieftype fout(0-fout|1-succes): '|| v_mutatie_succes;
v_LogStatus := 'E';
COMMIT;
END IF;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, v_LogStatus, v_ErrorMsg,'Onbekend');
END IF;
-- reset loop variables
v_mutatie_succes := 1;
v_tot_prijs := 0;
v_cur_mutatie := v_rec.MUTATIENUMMER;
END IF;
-- retrieve soort onroerendgoedkey from the Facilitor
SELECT SRT_KEY INTO v_srt_key
FROM (
SELECT ALG_SRTRUIMTE_KEY AS SRT_KEY
FROM ALG_SRTRUIMTE
WHERE ALG_SRTRUIMTE_OMSCHRIJVING = v_rec.COMPLEX||'-'||v_rec.TARIEFTYPE
UNION
SELECT ALG_SRTTERREINSECTOR_KEY AS SRT_KEY
FROM ALG_SRTTERREINSECTOR W
WHERE ALG_SRTTERREINSEC_OMSCHRIJVING = v_rec.COMPLEX||'-'||v_rec.TARIEFTYPE);
-- retrieve the square meters and price from the new contract in Facilitor
SELECT opp, NVL(sr.ALG_SRTRUIMTE_PRIJS, st.ALG_SRTTERREINSECTOR_PRIJS)
INTO v_opp, v_prijs
FROM ( SELECT srt_key,
SUM(opp) - NVL(SUM(opp_cor),0) AS opp,
MAX(prijs) AS prijs
FROM ( SELECT cogo.ALG_SRTONRGOED_KEY AS srt_key,
cogo.CNT_CONTRACT_ONRGOED_OPP AS opp,
SUM(cogm.CNT_CONTRACT_ONRGOED_OPP) AS opp_cor,
0 AS prijs
FROM CNT_CONTRACT_ONRGOED cogo,
CNT_CONTRACT_ONRGOED cogm
WHERE cogo.CNT_CONTRACT_ONRGOED_KEY = cogm.CNT_CONTRACT_ONRGOED_KEY_ORG(+)
AND cogo.CNT_MLD_MELDING_KEY IS NULL
AND cogo.CNT_CONTRACT_KEY = v_rec.CNT_CONTRACT_KEY
GROUP BY cogo.CNT_CONTRACT_ONRGOED_KEY, cogo.ALG_SRTONRGOED_KEY, cogo.CNT_CONTRACT_ONRGOED_OPP
UNION ALL
SELECT cogm.ALG_SRTONRGOED_KEY AS srt_key,
cogm.CNT_CONTRACT_ONRGOED_OPP AS opp,
0 ,
NVL(CNT_SRTRUIMTE_PRIJS,0) AS prijs
FROM CNT_CONTRACT_ONRGOED cogm
WHERE cogm.CNT_CONTRACT_KEY = v_rec.CNT_CONTRACT_KEY
AND cogm.CNT_MLD_MELDING_KEY = v_rec.MUTATIENUMMER
)
GROUP BY srt_key
),
ALG_SRTRUIMTE sr,
ALG_SRTTERREINSECTOR st
WHERE srt_key = sr.ALG_SRTRUIMTE_KEY(+)
AND srt_key = st.ALG_SRTTERREINSECTOR_KEY(+)
AND srt_key = v_srt_key;
IF v_rec.aantal <> v_opp THEN
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, 'L', 'Oppervlakte klopt niet, contract:'||v_rec.XelionContractnummer||' tarieftype:'||v_rec.tarieftype||' aantal:'||v_rec.aantal||' verwacht aantal:'||v_opp,'Onbekend');
v_mutatie_succes := 0;
END IF;
v_tot_prijs := v_tot_prijs + v_opp * v_prijs;
END;
END LOOP;
IF v_cur_mutatie <> 0 THEN
-- Not the first time, so end of a mutation run.
-- Calculate the total amount of the contract received
SELECT SUM(TOTAALBEDRAG)
INTO v_ontv_prijs
FROM ( SELECT DISTINCT MUTATIENUMMER, XELIONCONTRACTNUMMER, TOTAALBEDRAG
FROM CONN_ONTV_MUTATIE
WHERE MUTATIENUMMER = v_cur_mutatie);
-- Calculate de deviation
v_afwijking := TRUNC((ABS(v_ontv_prijs - v_tot_prijs)/v_tot_prijs)*100);
-- A match between received data and Facilitor is established when all tarieftypes received
-- match the facilitor tarieftypes and square meters AND the total price of the contract is
-- within the 10 percent from the Facilitor contract.
IF v_mutatie_succes = 1 AND v_afwijking < 10 THEN
-- Succesfull match update the status of the mutation to 'OntvangenOK''
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 3 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract match afwijking: '|| v_afwijking|| '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs;
v_LogStatus := 'I';
CONN_VERWERK_HUURMUTATIE (p_ApplName,p_ApplRun,v_cur_mutatie);
ELSE
-- Unsuccesfull match - set the status of the mutation to 'OntvangenNOK'
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 4 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract mismatch! afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs ||' tarieftype fout(0-fout|1-succes): '|| v_mutatie_succes;
v_LogStatus := 'E';
END IF;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, v_LogStatus, v_ErrorMsg,'Onbekend');
END IF;
END IF;
CLOSE c1;
COMMIT;
END;
/
CREATE OR REPLACE VIEW CONN_V_BAD_PERMAN_IMPORT
(NAAM, NUMMER, AFD_CODE, AFDELING, REGIO,
@@ -4760,7 +4548,6 @@ CREATE OR REPLACE PROCEDURE conn_import_factuur (
p_filename IN VARCHAR2
)
AS
v_filehandle UTL_FILE.file_type;
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
@@ -4817,7 +4604,7 @@ BEGIN
FETCH cfactuur INTO v_rec;
EXIT WHEN cfactuur%NOTFOUND;
v_newline := rec1.fac_imp_file_line;
v_newline := v_rec.fac_imp_file_line;
IF (header_is_valid = 0)
THEN
@@ -4905,7 +4692,6 @@ BEGIN
EXCEPTION
WHEN OTHERS
THEN
UTL_FILE.fclose (v_filehandle);
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
@@ -6183,4 +5969,18 @@ EXCEPTION
END;
/
CREATE OR REPLACE VIEW conn_v_imp_log (fclt_f_applicatie,
run,
datum,
fclt_f_status,
omschrijving,
hint
)
AS
SELECT imp_log_applicatie, imp_log_run, to_char(imp_log_datum, 'yyyymmdd hh24missxff, imp_log_status,
imp_log_omschrijving, imp_log_hint
FROM imp_log;
COMMIT;
SPOOL OFF