<descriptionformat="text/html">Provides a number of PL/SQL scripts that take as input a number of NAV tables that have been copied to the PostgreSQL database. The scripts insert/update the relevant ]project-open[ objects.</description>
------------------------ Update Office and Comany----------------------------------
-- Conver Payment Terms Code
v_payment_days := NULL;
IF row."Payment Terms Code" = ''10_D'' THEN v_payment_days := 10; END IF;
IF row."Payment Terms Code" = ''14_D'' THEN v_payment_days := 14; END IF;
IF row."Payment Terms Code" = ''14_D_D'' THEN v_payment_days := 14; END IF;
IF row."Payment Terms Code" = ''20_D'' THEN v_payment_days := 20; END IF;
IF row."Payment Terms Code" = ''21_D'' THEN v_payment_days := 21; END IF;
IF row."Payment Terms Code" = ''30_D'' THEN v_payment_days := 30; END IF;
IF row."Payment Terms Code" = ''30_D_D'' THEN v_payment_days := 30; END IF;
IF row."Payment Terms Code" = ''45_D'' THEN v_payment_days := 45; END IF;
IF row."Payment Terms Code" = ''45_D_D'' THEN v_payment_days := 45; END IF;
IF row."Payment Terms Code" = ''60_D'' THEN v_payment_days := 60; END IF;
IF row."Payment Terms Code" = ''60_D_D'' THEN v_payment_days := 60; END IF;
IF row."Payment Terms Code" = ''75_D'' THEN v_payment_days := 75; END IF;
IF row."Payment Terms Code" = ''90_D'' THEN v_payment_days := 90; END IF;
IF row."Payment Terms Code" = ''HALF_YEAR'' THEN v_payment_days := 182; END IF;
IF row."Payment Terms Code" = ''2_Y'' THEN v_payment_days := 730; END IF;
IF row."Payment Terms Code" = ''IMM'' THEN v_payment_days := 0; END IF;
IF row."Payment Terms Code" = ''UNDO'' THEN v_payment_days := 10; END IF;
IF row."Payment Terms Code" = ''NEPLATIT'' THEN v_payment_days := 10000; END IF;
-- Add other fields to the "note" field
v_note := NULL;
IF row."Home Page" is not null AND row."Home Page" <> '''' THEN v_note := v_note || ''Home Page='' || row."Home Page" ||'', ''; END IF;
IF row."Registration No_" is not null AND row."Registration No_" <> '''' THEN v_note := v_note || ''Registration No_='' || row."Registration No_" ||'', ''; END IF;
IF row."Invoicing Conditions" is not null AND row."Invoicing Conditions" <> '''' THEN v_note := v_note || ''Invoicing Conditions='' || row."Invoicing Conditions" ||'', ''; END IF;
IF row."Contact Text" is not null AND row."Contact Text" <> '''' THEN v_note := v_note || ''Contact Text='' || row."Contact Text" ||'', ''; END IF;
IF row."Bank Account No_" is not null AND row."Bank Account No_" <> '''' THEN v_note := v_note || ''Bank Account No_='' || row."Bank Account No_" ||'', ''; END IF;
-- Primary contact
select person_id into v_primary_contact_id from persons
where nav_contact_nr = row."Primary Contact No_";
IF v_primary_contact_id is null THEN
IF row."E-Mail" is not null AND row."E-Mail" <> '''' THEN
RAISENOTICE'Skipping User (do not overwrite a non-mnet account): % % (%) % vs. %',row_user."FirstName",row_user."LastName",v_email,v_loginname,v_old_authority_short_name;
continue;
ENDIF;
RAISENOTICE'Processing User #%: First=%, Last=%, Login=%, Email=%, OID=% => %',v_count,row_user."FirstName",row_user."LastName",v_loginname,v_email,row_user."ObjectID",v_user_id;
-- Check that the user does not have a duplicate auth_id/username
-- (auth_id/username are not checked as "primary key", but they
-- are unique).
selectuser_idintov_duplicate_user_id
fromusersu
whereu.user_id!=v_user_idand
u.username=v_unameand
u.authority_id=v_authority_id;
IFv_duplicate_user_idisnotnullTHEN
RAISEWARNING'Skipping User because of duplicate auth/username: % % (%). auth_id=%, username=%',row_user."FirstName",row_user."LastName",v_email,v_authority_id,v_uname;