conn#13537

svn path=/Customer/trunk/; revision=13454
This commit is contained in:
Arthur Egberink
2007-11-20 07:39:04 +00:00
parent be47fcb395
commit 2298d9517b
2 changed files with 492 additions and 3 deletions

View File

@@ -1,3 +1,10 @@
-- CONN7
--
--
SET ECHO ON
SPOOL xconn7.lst
PROMPT $Revision: 2 $
CREATE TABLE conn_contactpersonen_error
(
error_key NUMBER(15)
@@ -26,3 +33,6 @@ END;
/
commit;
SPOOL OFF
@conn.sql

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for CONN: Connexxion
-- (c) 2005-2006 Dijkoraad IT bv
-- $Revision: 114 $
-- $Modtime: 19-10-07 12:02 $
-- $Revision: 115 $
-- $Modtime: 5-11-07 15:45 $
--
-- Support: +31 53 4800700
@@ -4656,11 +4656,13 @@ BEGIN
fac.imp_getfield (v_newline, v_fielddelimitor, v_docid);
IF v_check_dec_sign IS NULL THEN
v_kostprijs := REPLACE (SUBSTR (v_kostprijs, 1, 11), ',', '.');
v_kostprijs := REPLACE (SUBSTR (v_kostprijs, 1, 11), ',', '.');
v_btw_bedrag := REPLACE (SUBSTR (v_btw_bedrag, 1, 11), ',', '.');
v_aantal := REPLACE (SUBSTR (v_aantal, 1, 11), ',', '.');
ELSE
v_kostprijs := SUBSTR (v_kostprijs, 1, 11);
v_btw_bedrag := SUBSTR (v_btw_bedrag, 1, 11);
v_aantal := SUBSTR (v_aantal, 1, 11);
END IF;
INSERT INTO conn_imp_factuur
(debiteurnr,
@@ -6008,6 +6010,483 @@ AS
imp_log_omschrijving, imp_log_hint
FROM imp_log;
CREATE OR REPLACE PACKAGE CONN_PARTNERS AS
/*
Tabel OAC_STG_PARTNER alias P:
P.Id p_partner_id
P.Pnr_Type p_bedrijf_type
P.Pnr_partnernummer p_prs_leverancier_nr
P.Pnr_naam p_prs_bedrijf_naam
P.Pnr_telefoon p_prs_bedrijf_telefoon
P.Pnr_mobiel p_prs_bedrijf_telefoon2
P.Pnr_fax p_prs_bedrijf_fax
P.Pnr_email p_prs_bedrijf_email
P.Pnr_Klantnr_Facilitor p_prs_????? RD*****
P.Pnr_Betalingsconditie p_prs_bedrijf_opmerking
P.Pnr_Mutatie_Ind p_stamgegevens (J/N)
P.Pst_Adres p_prs_bedrijf_post_adres
P.Pst_Postcode p_prs_bedrijf_post_postcode
P.Pst_Plaats p_prs_bedrijf_post_plaats
P.Pst_Land p_prs_bedrijf_post_land
P.Pst_Mutatie_ind p_postadres (J/N)
P.Pst_Adres p_prs_bedrijf_bezoek_adres
P.Pst_Postcode p_prs_bedrijf_bezoek_postcode
P.Pst_Plaats p_prs_bedrijf_bezoek_plaats
P.Pst_Land p_prs_bedrijf_bezoek_land
P.Pst_Mutatie_ind p_bezoekadres (J/N)
*/
FUNCTION verwerk_partner
( p_partner_id in number
,p_bedrijf_type in varchar2
,p_prs_leverancier_nr in varchar2
,p_prs_bedrijf_naam in varchar2
,p_prs_bedrijf_telefoon in varchar2
,p_prs_bedrijf_telefoon2 in varchar2
,p_prs_bedrijf_fax in varchar2
,p_prs_bedrijf_email in varchar2
,p_prs_bedrijf_opmerking in varchar2
,p_stamgegevens in varchar2
,p_prs_bedrijf_post_adres in varchar2
,p_prs_bedrijf_post_postcode in varchar2
,p_prs_bedrijf_post_plaats in varchar2
,p_prs_bedrijf_post_land in varchar2
,p_postadres in varchar2
,p_prs_bedrijf_bezoek_adres in varchar2
,p_prs_bedrijf_bezoek_postcode in varchar2
,p_prs_bedrijf_bezoek_plaats in varchar2
,p_prs_bedrijf_bezoek_land in varchar2
,p_bezoekadres in varchar2) return NUMBER;
/*
Tabel OAC_STG_CONTACTPERSOON alias C:
C.Ctn_Functie p_prs_contactpersoon_functie
C.Ctn_Naam p_prs_contactpersoon_naam
C.Ctn_Tussenvoegsel p_prs_contactpersoon_tussenv
C.Ctn_Voornaam p_prs_contactpersoon_voornaam
C.Ctn_Voorletters p_prs_contactpersoon_voorl
C.Ctn_Titel p_prs_contactpersoon_titel
C.Ctn_Aanhef p_prs_contactpersoon_aanhef
C.Ctn_Telefoon p_prs_contactpersoon_tel_1
C.Ctn_Mobiel p_prs_contactpersoon_tel_2
C.Ctn_Fax p_prs_contactpersoon_fax
C.Ctn_Email p_prs_contactpersoon_email
C.Ctn_Mutatie_Ind p_contactpersoon (j/n)
*/
FUNCTION verwerk_contactpersoon
( p_partner_id in number
,p_contactpersoon_id in number
,p_prs_contactpersoon_functie in varchar2
,p_prs_contactpersoon_naam in varchar2
,p_prs_contactpersoon_tussenv in varchar2
,p_prs_contactpersoon_voornaam in varchar2
,p_prs_contactpersoon_voorl in varchar2
,p_prs_contactpersoon_titel in varchar2
,p_prs_contactpersoon_aanhef in varchar2
,p_prs_contactpersoon_tel_1 in varchar2
,p_prs_contactpersoon_tel_2 in varchar2
,p_prs_contactpersoon_fax in varchar2
,p_prs_contactpersoon_email in varchar2
,p_contactpersoon in varchar2) return number;
END CONN_PARTNERS;
/
CREATE OR REPLACE PACKAGE BODY CONN_PARTNERS AS
FUNCTION verwerk_partner
( p_partner_id in number
,p_bedrijf_type in varchar2
,p_prs_leverancier_nr in varchar2
,p_prs_bedrijf_naam in varchar2
,p_prs_bedrijf_telefoon in varchar2
,p_prs_bedrijf_telefoon2 in varchar2
,p_prs_bedrijf_fax in varchar2
,p_prs_bedrijf_email in varchar2
,p_prs_bedrijf_opmerking in varchar2
,p_stamgegevens in varchar2
,p_prs_bedrijf_post_adres in varchar2
,p_prs_bedrijf_post_postcode in varchar2
,p_prs_bedrijf_post_plaats in varchar2
,p_prs_bedrijf_post_land in varchar2
,p_postadres in varchar2
,p_prs_bedrijf_bezoek_adres in varchar2
,p_prs_bedrijf_bezoek_postcode in varchar2
,p_prs_bedrijf_bezoek_plaats in varchar2
,p_prs_bedrijf_bezoek_land in varchar2
,p_bezoekadres in varchar2) return NUMBER
IS
v_partner_id NUMBER(15);
v_bedrijf_type VARCHAR2(30);
v_prs_leverancier_nr prs_bedrijf.prs_leverancier_nr%type;
v_prs_bedrijf_naam prs_bedrijf.prs_bedrijf_naam%type;
v_prs_bedrijf_telefoon prs_bedrijf.prs_bedrijf_telefoon%type;
v_prs_bedrijf_telefoon2 prs_bedrijf.prs_bedrijf_telefoon2%type;
v_prs_bedrijf_fax prs_bedrijf.prs_bedrijf_fax%type;
v_prs_bedrijf_email prs_bedrijf.prs_bedrijf_email%type;
v_prs_bedrijf_opmerking prs_bedrijf.prs_bedrijf_opmerking%type;
v_stamgegevens VARCHAR2(1);
v_prs_bedrijf_post_adres prs_bedrijf.prs_bedrijf_post_adres%type;
v_prs_bedrijf_post_postcode prs_bedrijf.prs_bedrijf_post_postcode%type;
v_prs_bedrijf_post_plaats prs_bedrijf.prs_bedrijf_post_plaats%type;
v_prs_bedrijf_post_land prs_bedrijf.prs_bedrijf_post_land%type;
v_postadres VARCHAR2(1);
v_prs_bedrijf_bezoek_adres prs_bedrijf.prs_bedrijf_bezoek_adres%type;
v_prs_bedrijf_bezoek_postcode prs_bedrijf.prs_bedrijf_bezoek_postcode%type;
v_prs_bedrijf_bezoek_plaats prs_bedrijf.prs_bedrijf_bezoek_plaats%type;
v_prs_bedrijf_bezoek_land prs_bedrijf.prs_bedrijf_bezoek_land%type;
v_bezoekadres VARCHAR2(1);
v_mode VARCHAR(10);
v_count NUMBER(10);
v_prs_bedrijf_key prs_bedrijf.prs_bedrijf_key%type;
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
v_store_prs_bedrijf BOOLEAN;
BEGIN
-- INIT
--commit;
v_mode := '';
v_prs_bedrijf_key := 0;
v_partner_id := p_partner_id;
v_bedrijf_type := UPPER(SUBSTR(p_bedrijf_type,1,30));
v_prs_leverancier_nr := SUBSTR(p_prs_leverancier_nr,1,15);
v_prs_bedrijf_naam := SUBSTR(p_prs_bedrijf_naam||' _ '||v_prs_leverancier_nr,1,60);
v_prs_bedrijf_telefoon := SUBSTR(p_prs_bedrijf_telefoon,1,20);
v_prs_bedrijf_telefoon2 := SUBSTR(p_prs_bedrijf_telefoon2,1,20);
v_prs_bedrijf_fax := SUBSTR(p_prs_bedrijf_fax,1,20);
v_prs_bedrijf_email := SUBSTR(p_prs_bedrijf_email,1,100);
v_prs_bedrijf_opmerking := SUBSTR(p_prs_bedrijf_opmerking,1,320);
v_stamgegevens := UPPER(SUBSTR(p_stamgegevens,1,1));
v_prs_bedrijf_post_adres := SUBSTR(p_prs_bedrijf_post_adres,1,35);
v_prs_bedrijf_post_postcode := SUBSTR(p_prs_bedrijf_post_postcode,1,12);
v_prs_bedrijf_post_plaats := SUBSTR(p_prs_bedrijf_post_plaats,1,30);
v_prs_bedrijf_post_land := SUBSTR(p_prs_bedrijf_post_land,1,30);
v_postadres := UPPER(SUBSTR(p_postadres,1,1));
v_prs_bedrijf_bezoek_adres := SUBSTR(p_prs_bedrijf_bezoek_adres,1,35);
v_prs_bedrijf_bezoek_postcode := SUBSTR(p_prs_bedrijf_bezoek_postcode,1,12);
v_prs_bedrijf_bezoek_plaats := SUBSTR(p_prs_bedrijf_bezoek_plaats,1,30);
v_prs_bedrijf_bezoek_land := SUBSTR(p_prs_bedrijf_bezoek_land,1,30);
v_bezoekadres := UPPER(SUBSTR(p_bezoekadres,1,1));
IF v_stamgegevens = 'J' THEN
-- v_mode?
SELECT count(*)
INTO v_count
FROM prs_v_aanwezigbedrijf
WHERE upper(trim(prs_leverancier_nr)) = upper(trim(v_prs_leverancier_nr));
IF (v_count = 0) THEN
v_mode := 'INSERT';
ELSE
IF (v_count = 1) THEN
v_mode := 'UPDATE';
SELECT prs_bedrijf_key
INTO v_prs_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE upper(trim(prs_leverancier_nr)) = upper(trim(v_prs_leverancier_nr));
END IF;
END IF;
IF v_mode = 'INSERT' THEN
-- RD****** v_bedrijf_type Zie hieronder DECODE statement:
insert into prs_bedrijf
(prs_leverancier_nr
,prs_bedrijf_naam
,prs_bedrijf_telefoon
,prs_bedrijf_telefoon2
,prs_bedrijf_fax
,prs_bedrijf_email
,prs_bedrijf_opmerking
,prs_bedrijf_post_adres
,prs_bedrijf_post_postcode
,prs_bedrijf_post_plaats
,prs_bedrijf_post_land
,prs_bedrijf_bezoek_adres
,prs_bedrijf_bezoek_postcode
,prs_bedrijf_bezoek_plaats
,prs_bedrijf_bezoek_land
,prs_bedrijf_leverancier
,prs_bedrijf_uitvoerende
,prs_bedrijf_contract)
values
(v_prs_leverancier_nr
,v_prs_bedrijf_naam
,v_prs_bedrijf_telefoon
,v_prs_bedrijf_telefoon2
,v_prs_bedrijf_fax
,v_prs_bedrijf_email
,v_prs_bedrijf_opmerking
,DECODE(p_postadres,'J',v_prs_bedrijf_post_adres,null)
,DECODE(p_postadres,'J',v_prs_bedrijf_post_postcode,null)
,DECODE(p_postadres,'J',v_prs_bedrijf_post_plaats,null)
,DECODE(p_postadres,'J',v_prs_bedrijf_post_land,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_adres,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_postcode,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_plaats,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_land,null)
,DECODE(v_bedrijf_type,'CREDITEUR',1,null)
,DECODE(v_bedrijf_type,'CREDITEUR',1,null)
,DECODE(v_bedrijf_type,'CREDITEUR',1,null));
SELECT max(prs_bedrijf_key)
INTO v_prs_bedrijf_key
FROM prs_bedrijf;
ELSE
IF v_mode = 'UPDATE' THEN
UPDATE prs_bedrijf
SET prs_bedrijf_naam = v_prs_bedrijf_naam
,prs_bedrijf_telefoon = v_prs_bedrijf_telefoon
,prs_bedrijf_telefoon2 = v_prs_bedrijf_telefoon2
,prs_bedrijf_fax = v_prs_bedrijf_fax
,prs_bedrijf_email = v_prs_bedrijf_email
,prs_bedrijf_opmerking = v_prs_bedrijf_opmerking
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
IF v_postadres = 'J' THEN
UPDATE prs_bedrijf
SET prs_bedrijf_post_adres = v_prs_bedrijf_post_adres
,prs_bedrijf_post_postcode = v_prs_bedrijf_post_postcode
,prs_bedrijf_post_plaats = v_prs_bedrijf_post_plaats
,prs_bedrijf_post_land = v_prs_bedrijf_post_land
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
END IF;
IF v_bezoekadres = 'J' THEN
UPDATE prs_bedrijf
SET prs_bedrijf_bezoek_adres = v_prs_bedrijf_bezoek_adres
,prs_bedrijf_bezoek_postcode = v_prs_bedrijf_bezoek_postcode
,prs_bedrijf_bezoek_plaats = v_prs_bedrijf_bezoek_plaats
,prs_bedrijf_bezoek_land = v_prs_bedrijf_bezoek_land
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
END IF;
ELSE
-- Onbekende actie
NULL;
END IF;
END IF;
ELSE
-- Geen actie
NULL;
END IF;
v_store_prs_bedrijf := FAC_P_FAC_SAVE_RESTORE.ResetSelectie('PRS_BEDRIJF');
IF v_prs_bedrijf_key >= 0 THEN
v_store_prs_bedrijf := FAC_P_FAC_SAVE_RESTORE.SavePrimaryKey('PRS_BEDRIJF',v_prs_bedrijf_key);
END IF;
RETURN v_prs_bedrijf_key;
EXCEPTION WHEN OTHERS THEN
BEGIN
ORACLE_err_num := SQLCODE;
ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
insert into conn_partners_error
(error_mes
,partner_id)
values
('(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)'
,v_partner_id);
--commit;
RETURN 0;
END;
END;
FUNCTION verwerk_contactpersoon
( p_partner_id in number
,p_contactpersoon_id in number
,p_prs_contactpersoon_functie in varchar2
,p_prs_contactpersoon_naam in varchar2
,p_prs_contactpersoon_tussenv in varchar2
,p_prs_contactpersoon_voornaam in varchar2
,p_prs_contactpersoon_voorl in varchar2
,p_prs_contactpersoon_titel in varchar2
,p_prs_contactpersoon_aanhef in varchar2
,p_prs_contactpersoon_tel_1 in varchar2
,p_prs_contactpersoon_tel_2 in varchar2
,p_prs_contactpersoon_fax in varchar2
,p_prs_contactpersoon_email in varchar2
,p_contactpersoon in varchar2) return number
IS
v_partner_id NUMBER(15);
v_contactpersoon_id NUMBER(15);
v_prs_contactpersoon_functie prs_contactpersoon.prs_contactpersoon_functie%type;
v_prs_contactpersoon_naam prs_contactpersoon.prs_contactpersoon_naam%type;
v_prs_contactpersoon_tussenv prs_contactpersoon.prs_contactpersoon_tussenv%type;
v_prs_contactpersoon_voornaam prs_contactpersoon.prs_contactpersoon_voornaam%type;
v_prs_contactpersoon_voorl prs_contactpersoon.prs_contactpersoon_voorletters%type;
v_prs_contactpersoon_titel prs_contactpersoon.prs_contactpersoon_titel%type;
v_prs_contactpersoon_aanhef prs_contactpersoon.prs_contactpersoon_aanhef%type;
v_prs_contactpersoon_tel_1 prs_contactpersoon.prs_contactpersoon_telefoon_1%type;
v_prs_contactpersoon_tel_2 prs_contactpersoon.prs_contactpersoon_telefoon_2%type;
v_prs_contactpersoon_fax prs_contactpersoon.prs_contactpersoon_fax%type;
v_prs_contactpersoon_email prs_contactpersoon.prs_contactpersoon_email%type;
v_contactpersoon varchar2(1);
v_mode VARCHAR(10);
v_count NUMBER(10);
v_prs_contactpersoon_key prs_contactpersoon.prs_contactpersoon_key%type;
v_prs_bedrijf_key prs_bedrijf.prs_bedrijf_key%type;
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
BEGIN
-- INIT
--commit;
v_prs_contactpersoon_key := 0;
v_partner_id := p_partner_id;
v_contactpersoon_id := p_contactpersoon_id;
v_prs_contactpersoon_functie := SUBSTR(p_prs_contactpersoon_functie,1,30);
v_prs_contactpersoon_naam := SUBSTR(p_prs_contactpersoon_naam,1,30);
v_prs_contactpersoon_tussenv := SUBSTR(p_prs_contactpersoon_tussenv,1,15);
v_prs_contactpersoon_voornaam := SUBSTR(p_prs_contactpersoon_voornaam,1,30);
v_prs_contactpersoon_voorl := SUBSTR(p_prs_contactpersoon_voorl,1,10);
v_prs_contactpersoon_titel := SUBSTR(p_prs_contactpersoon_titel,1,10);
v_prs_contactpersoon_aanhef := SUBSTR(p_prs_contactpersoon_aanhef,1,30);
v_prs_contactpersoon_tel_1 := SUBSTR(p_prs_contactpersoon_tel_1,1,30);
v_prs_contactpersoon_tel_2 := SUBSTR(p_prs_contactpersoon_tel_2,1,30);
v_prs_contactpersoon_fax := SUBSTR(p_prs_contactpersoon_fax,1,30);
v_prs_contactpersoon_email := SUBSTR(p_prs_contactpersoon_email,1,50);
v_contactpersoon := UPPER(SUBSTR(p_contactpersoon,1,1));
v_prs_bedrijf_key := FAC_P_FAC_SAVE_RESTORE.GetPrimaryKey('PRS_BEDRIJF',v_prs_bedrijf_key);
IF v_contactpersoon = 'J' THEN
SELECT COUNT(*)
INTO v_count
FROM PRS_CONTACTPERSOON
WHERE UPPER(trim(prs_contactpersoon_naam)) = UPPER(trim(v_prs_contactpersoon_naam))
AND UPPER(trim(prs_contactpersoon_voornaam)) = UPPER(trim(v_prs_contactpersoon_voornaam))
AND UPPER(trim(prs_contactpersoon_voorletters))= UPPER(trim(v_prs_contactpersoon_voorl));
IF (v_count = 0) THEN
INSERT INTO prs_contactpersoon
(prs_bedrijf_key
,prs_contactpersoon_functie
,prs_contactpersoon_naam
,prs_contactpersoon_tussenv
,prs_contactpersoon_voornaam
,prs_contactpersoon_voorletters
,prs_contactpersoon_titel
,prs_contactpersoon_aanhef
,prs_contactpersoon_telefoon_1
,prs_contactpersoon_telefoon_2
,prs_contactpersoon_fax
,prs_contactpersoon_email)
values
(v_prs_bedrijf_key
,v_prs_contactpersoon_functie
,v_prs_contactpersoon_naam
,v_prs_contactpersoon_tussenv
,v_prs_contactpersoon_voornaam
,v_prs_contactpersoon_voorl
,v_prs_contactpersoon_titel
,v_prs_contactpersoon_aanhef
,v_prs_contactpersoon_tel_1
,v_prs_contactpersoon_tel_2
,v_prs_contactpersoon_fax
,v_prs_contactpersoon_email);
SELECT max(prs_contactpersoon_key)
INTO v_prs_contactpersoon_key
FROM prs_contactpersoon;
ELSE
IF (v_count = 1) THEN
v_mode := 'UPDATE';
SELECT prs_contactpersoon_key
INTO v_prs_contactpersoon_key
FROM PRS_CONTACTPERSOON
WHERE UPPER(trim(prs_contactpersoon_naam)) = UPPER(trim(v_prs_contactpersoon_naam))
AND UPPER(trim(prs_contactpersoon_voornaam)) = UPPER(trim(v_prs_contactpersoon_voornaam))
AND UPPER(trim(prs_contactpersoon_voorletters)) = UPPER(trim(v_prs_contactpersoon_voorl));
UPDATE prs_contactpersoon
SET prs_bedrijf_key = v_prs_bedrijf_key
,prs_contactpersoon_functie = v_prs_contactpersoon_functie
,prs_contactpersoon_tussenv = v_prs_contactpersoon_tussenv
,prs_contactpersoon_titel = v_prs_contactpersoon_titel
,prs_contactpersoon_aanhef = v_prs_contactpersoon_aanhef
,prs_contactpersoon_telefoon_1 = v_prs_contactpersoon_tel_1
,prs_contactpersoon_telefoon_2 = v_prs_contactpersoon_tel_2
,prs_contactpersoon_fax = v_prs_contactpersoon_fax
,prs_contactpersoon_email = v_prs_contactpersoon_email
WHERE prs_contactpersoon_key = v_prs_contactpersoon_key;
END IF;
END IF;
END IF;
--commit;
RETURN v_prs_contactpersoon_key;
EXCEPTION WHEN OTHERS THEN
BEGIN
ORACLE_err_num := SQLCODE;
ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
insert into conn_contactpersonen_error
(error_mes
,partner_id
,contactpersoon_id)
values
('(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)'
,v_partner_id
,v_contactpersoon_id);
--commit;
RETURN 0;
END;
END;
END CONN_PARTNERS;
/
COMMIT;
SPOOL OFF