HMOD#62538 -- FIP aanvullen externe bedrijven en Kenmerkvelden met once-script achteraf nog vullen
svn path=/Customer/; revision=46901
This commit is contained in:
190
onces/HMOD/HMOD#62538.sql
Normal file
190
onces/HMOD/HMOD#62538.sql
Normal file
@@ -0,0 +1,190 @@
|
||||
-- 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_update_externebedrijven_overige (p_import_key IN NUMBER)
|
||||
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) := 1240 ; -- lokaal 1220; -- prs_kenmerk_key = Bankrek 1 relatie
|
||||
v_overig2_key NUMBER (10) := 1260 ; -- 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 = prs_kenmerk_key 1240 = 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 = prs_kenmerk_key 1260 = 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_update_externebedrijven_overige;
|
||||
/
|
||||
|
||||
-- Procedure uitvoeren
|
||||
begin hmod_update_externebedrijven_overige (null);
|
||||
end;
|
||||
/
|
||||
|
||||
-- Procedure weer droppen
|
||||
|
||||
DROP PROCEDURE hmod_update_externebedrijven_overige ;
|
||||
|
||||
|
||||
------ 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
|
||||
Reference in New Issue
Block a user