diff --git a/html/admin/sql/patch/upgrade26.sql b/html/admin/sql/patch/upgrade26.sql index 171fd8096..10620029c 100644 --- a/html/admin/sql/patch/upgrade26.sql +++ b/html/admin/sql/patch/upgrade26.sql @@ -27,5 +27,67 @@ end; $$ LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION account_insert(p_f_id integer, p_account poste_comptable) RETURNS integer + AS $$ +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(p_account,'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; +$$ + LANGUAGE plpgsql; + update version set val=27; commit;