192 lines
6.0 KiB
SQL
192 lines
6.0 KiB
SQL
-- Customer specific once-script voor HMOD
|
|
|
|
-- $Id$
|
|
--
|
|
-- Oncescript om bij de FIP - Externe bedrijven import nog de aanvullende kenmerk-velden te vullen
|
|
|
|
DEFINE thisfile = 'HMOD#62538.SQL'
|
|
DEFINE dbuser = '^HMOD'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
|
|
------ payload begin ------
|
|
|
|
-- Once-procedure toevoegen
|
|
CREATE OR REPLACE PROCEDURE hmod_imp_bedrijven_kenm (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (150);
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR (100);
|
|
v_count NUMBER;
|
|
|
|
v_overig1_key NUMBER (10) := 1202 ; -- 1240 in acceptatie ; -- lokaal 1220; -- prs_kenmerk_key = Bankrek 1 relatie
|
|
v_overig2_key NUMBER (10) := 1220 ; -- 1260 in acceptatie ; -- lokaal 1221 -- prs_kenmerk_key = KvK-nummer
|
|
v_overig1_gevuld NUMBER (10) ;
|
|
v_overig2_gevuld NUMBER (10) ;
|
|
v_overig1_gevuldmet VARCHAR (100);
|
|
v_overig2_gevuldmet VARCHAR (100);
|
|
v_overig1_gevuldmet_key NUMBER (10);
|
|
v_overig2_gevuldmet_key NUMBER (10);
|
|
|
|
v_count_import NUMBER (10);
|
|
|
|
|
|
-- Overig1 = voor Bankrek 1 relatie
|
|
CURSOR c_overig1
|
|
IS
|
|
SELECT b.prs_bedrijf_key, i.prs_bedrijf_overig1
|
|
FROM fac_imp_ext_bedrijf i, prs_bedrijf b
|
|
WHERE b.prs_bedrijf_naam = i.prs_bedrijf_naam
|
|
AND i.prs_bedrijf_overig1 IS NOT NULL
|
|
AND b.prs_bedrijf_intern IS NULL;
|
|
|
|
-- Overig2 = voor KvK-nummer
|
|
CURSOR c_overig2
|
|
IS
|
|
SELECT b.prs_bedrijf_key, i.prs_bedrijf_overig2
|
|
FROM fac_imp_ext_bedrijf i, prs_bedrijf b
|
|
WHERE b.prs_bedrijf_naam = i.prs_bedrijf_naam
|
|
AND i.prs_bedrijf_overig2 IS NOT NULL
|
|
AND b.prs_bedrijf_intern IS NULL;
|
|
|
|
|
|
BEGIN
|
|
|
|
FOR rec IN c_overig1
|
|
LOOP
|
|
BEGIN
|
|
-- Eerst checken of dit kenmerk al op bedrijf gevuld is
|
|
|
|
SELECT count(*)
|
|
INTO v_overig1_gevuld
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerklink_niveau = 'B' and prs_link_key = rec.prs_bedrijf_key and prs_kenmerk_key = v_overig1_key ;
|
|
|
|
-- Niet gevuld - dan toevoegen
|
|
IF v_overig1_gevuld = 0 THEN
|
|
|
|
INSERT INTO prs_kenmerklink (prs_link_key,
|
|
prs_kenmerk_key,
|
|
prs_kenmerklink_waarde,
|
|
prs_kenmerklink_niveau)
|
|
VALUES (rec.prs_bedrijf_key,
|
|
v_overig1_key,
|
|
rec.prs_bedrijf_overig1,
|
|
'B') ;
|
|
COMMIT;
|
|
END IF;
|
|
|
|
-- Wel gevuld dan indien afwijkend aanpassen
|
|
IF v_overig1_gevuld > 0 THEN
|
|
|
|
SELECT prs_kenmerklink_waarde, prs_kenmerklink_key
|
|
INTO v_overig1_gevuldmet, v_overig1_gevuldmet_key
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerklink_niveau = 'B' and prs_link_key = rec.prs_bedrijf_key and prs_kenmerk_key = v_overig1_key ;
|
|
|
|
IF v_overig1_gevuldmet <> rec.prs_bedrijf_overig1
|
|
THEN
|
|
|
|
UPDATE prs_kenmerklink
|
|
SET prs_kenmerklink_waarde = rec.prs_bedrijf_overig1
|
|
WHERE prs_kenmerklink_key = v_overig1_gevuldmet_key ;
|
|
COMMIT;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_overig2
|
|
LOOP
|
|
BEGIN
|
|
-- Eerst checken of dit kenmerk al op bedrijf gevuld is
|
|
|
|
SELECT count(*)
|
|
INTO v_overig2_gevuld
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerklink_niveau = 'B' and prs_link_key = rec.prs_bedrijf_key and prs_kenmerk_key = v_overig2_key ;
|
|
|
|
-- Niet gevuld - dan toevoegen
|
|
IF v_overig2_gevuld = 0 THEN
|
|
|
|
INSERT INTO prs_kenmerklink (prs_link_key,
|
|
prs_kenmerk_key,
|
|
prs_kenmerklink_waarde,
|
|
prs_kenmerklink_niveau)
|
|
VALUES (rec.prs_bedrijf_key,
|
|
v_overig2_key,
|
|
rec.prs_bedrijf_overig2,
|
|
'B') ;
|
|
COMMIT;
|
|
END IF;
|
|
|
|
-- Wel gevuld dan indien afwijkend aanpassen
|
|
IF v_overig1_gevuld > 0 THEN
|
|
|
|
SELECT prs_kenmerklink_waarde, prs_kenmerklink_key
|
|
INTO v_overig2_gevuldmet, v_overig2_gevuldmet_key
|
|
FROM prs_kenmerklink
|
|
WHERE prs_kenmerklink_niveau = 'B' and prs_link_key = rec.prs_bedrijf_key and prs_kenmerk_key = v_overig2_key ;
|
|
|
|
IF v_overig2_gevuldmet <> rec.prs_bedrijf_overig2
|
|
THEN
|
|
|
|
UPDATE prs_kenmerklink
|
|
SET prs_kenmerklink_waarde = rec.prs_bedrijf_overig2
|
|
WHERE prs_kenmerklink_key = v_overig2_gevuldmet_key ;
|
|
COMMIT;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
/*
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
ROLLBACK;
|
|
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_import_key,
|
|
'E',
|
|
v_errormsg || ' - Check !!!! : ' || v_aanduiding,
|
|
'');
|
|
*/
|
|
|
|
END hmod_imp_bedrijven_kenm;
|
|
/
|
|
|
|
-- Procedure uitvoeren
|
|
begin hmod_imp_bedrijven_kenm (null,null);
|
|
end;
|
|
/
|
|
|
|
-- Procedure weer droppen
|
|
|
|
DROP PROCEDURE hmod_imp_bedrijven_kenm ;
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 1); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|