31 lines
958 B
PL/PgSQL
31 lines
958 B
PL/PgSQL
begin;
|
|
CREATE or replace FUNCTION account_compute(p_f_id integer) RETURNS poste_comptable
|
|
AS $$
|
|
declare
|
|
class_base poste_comptable;
|
|
maxcode poste_comptable;
|
|
begin
|
|
select fd_class_base into class_base
|
|
from
|
|
fiche_def join fiche using (fd_id)
|
|
where
|
|
f_id=p_f_id;
|
|
raise notice 'account_compute class base %',class_base;
|
|
select count (pcm_val) into maxcode from tmp_pcmn where pcm_val_parent = class_base;
|
|
if maxcode = 0 then
|
|
maxcode:=class_base;
|
|
else
|
|
select max (pcm_val) into maxcode from tmp_pcmn where pcm_val_parent = class_base;
|
|
end if;
|
|
if maxcode = class_base then
|
|
maxcode:=class_base*1000;
|
|
end if;
|
|
maxcode:=maxcode+1;
|
|
raise notice 'account_compute Max code %',maxcode;
|
|
return maxcode;
|
|
end;
|
|
$$
|
|
LANGUAGE plpgsql;
|
|
|
|
update version set val=27;
|
|
commit;
|