mirror of
https://github.com/YunoHost-Apps/noalyss_ynh.git
synced 2024-09-03 19:46:20 +02:00
141 lines
5.7 KiB
MySQL
141 lines
5.7 KiB
MySQL
|
begin;
|
||
|
-- Function: proc_check_balance()
|
||
|
|
||
|
CREATE OR REPLACE FUNCTION proc_check_balance()
|
||
|
RETURNS "trigger" AS
|
||
|
$BODY$
|
||
|
declare
|
||
|
diff numeric;
|
||
|
tt integer;
|
||
|
begin
|
||
|
if TG_OP = 'INSERT' then
|
||
|
tt=NEW.jr_grpt_id;
|
||
|
diff:=check_balance(tt);
|
||
|
if diff != 0 then
|
||
|
raise exception 'balance error %',diff ;
|
||
|
end if;
|
||
|
return NEW;
|
||
|
end if;
|
||
|
end;
|
||
|
$BODY$
|
||
|
LANGUAGE plpgsql VOLATILE;
|
||
|
|
||
|
|
||
|
-- Function: check_balance(p_grpt text)
|
||
|
|
||
|
DROP FUNCTION check_balance(text);
|
||
|
|
||
|
CREATE OR REPLACE FUNCTION check_balance(p_grpt integer)
|
||
|
RETURNS "numeric" AS
|
||
|
$BODY$
|
||
|
declare
|
||
|
amount_jrnx_debit numeric;
|
||
|
amount_jrnx_credit numeric;
|
||
|
amount_jrn numeric;
|
||
|
begin
|
||
|
select sum (j_montant) into amount_jrnx_credit
|
||
|
from jrnx
|
||
|
where
|
||
|
j_grpt=p_grpt
|
||
|
and j_debit=false;
|
||
|
|
||
|
select sum (j_montant) into amount_jrnx_debit
|
||
|
from jrnx
|
||
|
where
|
||
|
j_grpt=p_grpt
|
||
|
and j_debit=true;
|
||
|
|
||
|
select jr_montant into amount_jrn
|
||
|
from jrn
|
||
|
where
|
||
|
jr_grpt_id=p_grpt;
|
||
|
|
||
|
if ( amount_jrnx_debit != amount_jrnx_credit )
|
||
|
then
|
||
|
return abs(amount_jrnx_debit-amount_jrnx_credit);
|
||
|
end if;
|
||
|
if ( amount_jrn != amount_jrnx_credit)
|
||
|
then
|
||
|
return -1*abs(amount_jrn - amount_jrnx_credit);
|
||
|
end if;
|
||
|
return 0;
|
||
|
end;
|
||
|
$BODY$
|
||
|
LANGUAGE plpgsql VOLATILE;
|
||
|
|
||
|
-- add quick_code to the vw_client view
|
||
|
drop view vw_client;
|
||
|
|
||
|
|
||
|
create view vw_client as
|
||
|
SELECT a.f_id, a.av_text AS name, a1.av_text as quick_code,b.av_text AS tva_num, c.av_text AS poste_comptable, d.av_text AS rue, e.av_text AS code_postal, f.av_text AS pays, g.av_text AS telephone, h.av_text AS email
|
||
|
FROM ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 1) a
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 13) b USING (f_id)
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 23) a1 USING (f_id)
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 5) c USING (f_id)
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 14) d USING (f_id)
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 15) e USING (f_id)
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 16) f USING (f_id)
|
||
|
inner JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 17) g USING (f_id)
|
||
|
LEFT JOIN ( SELECT jnt_fic_att_value.jft_id, fiche.f_id, fiche_def.frd_id, fiche.fd_id, fiche_def.fd_class_base, fiche_def.fd_label, fiche_def.fd_create_account, fiche_def_ref.frd_text, fiche_def_ref.frd_class_base, jnt_fic_att_value.ad_id, attr_value.av_text
|
||
|
FROM fiche
|
||
|
JOIN fiche_def USING (fd_id)
|
||
|
JOIN fiche_def_ref USING (frd_id)
|
||
|
JOIN jnt_fic_att_value USING (f_id)
|
||
|
JOIN attr_value USING (jft_id)
|
||
|
WHERE jnt_fic_att_value.ad_id = 18) h USING (f_id)
|
||
|
WHERE a.frd_id = 9;
|
||
|
|
||
|
|
||
|
|
||
|
update version set val=11;
|
||
|
commit;
|