From e233d7bc369bacef9880b906c8af46e2b9ad4c60 Mon Sep 17 00:00:00 2001 From: sparkyx Date: Wed, 28 Feb 2007 22:40:18 +0000 Subject: [PATCH] Modify insert_account and set the default account from fiche_def_ref --- html/admin/setup.php | 6 +++ html/admin/sql/patch/upgrade25.sql | 67 ++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 html/admin/sql/patch/upgrade25.sql diff --git a/html/admin/setup.php b/html/admin/setup.php index a2a21c957..17d06caa4 100644 --- a/html/admin/setup.php +++ b/html/admin/setup.php @@ -496,6 +496,9 @@ if ( DEBUG=='false' ) ob_start(); if ( GetVersion($db) == 24 ) { ExecuteScript($db,'sql/patch/upgrade24.sql'); } // version + if ( GetVersion($db) == 25 ) { + ExecuteScript($db,'sql/patch/upgrade25.sql'); + } // version if ( DEBUG == 'false') ob_end_clean(); }//for @@ -605,6 +608,9 @@ if (DEBUG == 'false' ) ob_start(); if ( GetVersion($db) == 24 ) { ExecuteScript($db,'sql/patch/upgrade24.sql'); } // version + if ( GetVersion($db) == 25 ) { + ExecuteScript($db,'sql/patch/upgrade25.sql'); + } // version if ( DEBUG == 'false') ob_end_clean(); } diff --git a/html/admin/sql/patch/upgrade25.sql b/html/admin/sql/patch/upgrade25.sql new file mode 100644 index 000000000..4a99abb3e --- /dev/null +++ b/html/admin/sql/patch/upgrade25.sql @@ -0,0 +1,67 @@ +begin; + +create or replace function account_insert (p_f_id integer, p_account poste_comptable) +RETURNS int4 AS +$body$ +declare +nParent tmp_pcmn.pcm_val_parent%type; +sName varchar; +nNew tmp_pcmn.pcm_val%type; +bAuto bool; +nFd_id integer; +nCount integer; +begin + + if length(trim(p_account)) != 0 then + raise notice 'p_account is not empty'; + select * into nCount from tmp_pcmn where pcm_val=p_account; + if nCount !=0 then + raise notice 'this account exists in tmp_pcmn '; + perform attribut_insert(p_f_id,5,to_char(p_account,'999999999999999999999999')); + else + -- account doesn't exist, create it + select av_text into sName from + attr_value join jnt_fic_att_value using (jft_id) + where + ad_id=1 and f_id=p_f_id; + + nParent:=account_parent(p_account); + insert into tmp_pcmn(pcm_val,pcm_lib,pcm_val_parent) + values (p_account,sName,nParent); + perform attribut_insert(p_f_id,5,to_char(nNew,'999999999999999999999999')); + + end if; + else + raise notice 'p_account is empty'; + select fd_id into nFd_id from fiche where f_id=p_f_id; + bAuto:= account_auto(nFd_id); + if bAuto = true then + raise notice 'account generated automatically'; + nNew:=account_compute(p_f_id); + raise notice 'nNew %', nNew; + select av_text into sName from + attr_value join jnt_fic_att_value using (jft_id) + where + ad_id=1 and f_id=p_f_id; + nParent:=account_parent(nNew); + perform account_add (nNew,sName); + perform attribut_insert(p_f_id,5,to_char(nNew,'999999999999999999999999')); + + else + -- if there is an account_base then it is the default + select fd_class_base into nNew from fiche_def join fiche using (fd_id) where f_id=p_f_id; + if nNew is null or length(trim(nNew)) = 0 then + raise notice 'count is null'; + perform attribut_insert(p_f_id,5,null); + else + perform attribut_insert(p_f_id,5,to_char(nNew,'999999999999999999999999')); + end if; + end if; + end if; + +return 0; +end; +$body$ +LANGUAGE 'plpgsql' VOLATILE; +update version set val=26; +commit;