mirror of
https://github.com/YunoHost-Apps/noalyss_ynh.git
synced 2024-09-03 19:46:20 +02:00
71 lines
1.8 KiB
PL/PgSQL
71 lines
1.8 KiB
PL/PgSQL
begin;
|
|
|
|
drop function if exists comptaproc.get_pcm_tree(account_type);
|
|
|
|
create or replace function comptaproc.get_pcm_tree(source account_type) returns setof account_type
|
|
as
|
|
$_$
|
|
declare
|
|
i account_type;
|
|
e account_type;
|
|
begin
|
|
for i in select pcm_val from tmp_pcmn where pcm_val_parent=source
|
|
loop
|
|
return next i;
|
|
for e in select get_pcm_tree from get_pcm_tree(i)
|
|
loop
|
|
return next e;
|
|
end loop;
|
|
|
|
end loop;
|
|
return;
|
|
end;
|
|
$_$
|
|
language plpgsql;
|
|
|
|
drop table if exists letter_deb;
|
|
drop table if exists letter_cred;
|
|
drop table if exists jnt_letter cascade;
|
|
create table jnt_letter(
|
|
jl_id serial not null,
|
|
jl_amount_deb numeric(20,4),
|
|
constraint jnt_letter_pk primary key (jl_id)
|
|
);
|
|
create table letter_deb (
|
|
ld_id serial,
|
|
j_id bigint not null,
|
|
jl_id bigint not null,
|
|
constraint letter_deb_pk primary key (ld_id),
|
|
constraint letter_deb_fk foreign key (j_id) references jrnx(j_id) on update cascade on delete cascade,
|
|
constraint jnt_deb_fk foreign key (jl_id) references jnt_letter(jl_id) on update cascade on delete cascade
|
|
);
|
|
|
|
create table letter_cred (
|
|
lc_id serial,
|
|
j_id bigint not null,
|
|
jl_id bigint not null,
|
|
constraint letter_cred_pk primary key (lc_id),
|
|
constraint letter_cred_fk foreign key (j_id) references jrnx(j_id) on update cascade on delete cascade,
|
|
constraint jnt_cred_fk foreign key (jl_id) references jnt_letter(jl_id) on update cascade on delete cascade
|
|
);
|
|
|
|
|
|
create or replace function comptaproc.get_letter_jnt(a bigint) returns bigint
|
|
as
|
|
$_$
|
|
declare
|
|
nResult bigint;
|
|
begin
|
|
select jl_id into nResult from jnt_letter join letter_deb using (jl_id) where j_id = a;
|
|
if NOT FOUND then
|
|
select jl_id into nResult from jnt_letter join letter_cred using (jl_id) where j_id = a;
|
|
if NOT found then
|
|
return null;
|
|
end if;
|
|
end if;
|
|
return nResult;
|
|
end;
|
|
$_$ language plpgsql;
|
|
|
|
update version set val=75;
|
|
commit;
|