1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/noalyss_ynh.git synced 2024-09-03 19:46:20 +02:00
noalyss_ynh/sources/html/admin/sql/patch/upgrade20.sql
2015-09-27 00:54:25 +02:00

125 lines
3 KiB
PL/PgSQL

begin;
CREATE or replace FUNCTION insert_quant_sold
(p_internal text,
p_fiche character varying,
p_quant integer,
p_price numeric,
p_vat numeric,
p_vat_code integer,
p_client character varying)
RETURNS void
AS
$body$
declare
fid_client integer;
fid_good integer;
begin
select f_id into fid_client from
attr_value join jnt_fic_att_value using (jft_id) where ad_id=23 and av_text=upper(p_client);
select f_id into fid_good from
attr_value join jnt_fic_att_value using (jft_id) where ad_id=23 and av_text=upper(p_fiche);
insert into quant_sold
(qs_internal,qs_fiche,qs_quantite,qs_price,qs_vat,qs_vat_code,qs_client)
values
(p_internal,fid_good,p_quant,p_price,p_vat,p_vat_code,fid_client);
return;
end;
$body$ LANGUAGE plpgsql;
-- add quick code for contact
insert into attr_min (frd_id,ad_id)
select distinct 16,23
from attr_min
where not exists (select * from attr_min where ad_id=23 and frd_id=16);
insert into jnt_fic_attr (fd_id,ad_id)
select fd_id,23 from fiche_def where frd_id=16
and not exists (select *
from jnt_fic_attr join fiche_def using (fd_id)
where frd_id=16 and ad_id=23);
CREATE or replace FUNCTION update_quick_code(njft_id integer, tav_text text) RETURNS integer
AS $body$
declare
ns integer;
nExist integer;
tText text;
old_qcode varchar;
begin
-- get current value
select av_text into old_qcode from attr_value where jft_id=njft_id;
-- av_text didn't change so no update
if tav_text = upper( trim(old_qcode)) then
return 0;
end if;
tText := trim(upper(tav_text));
tText := replace(tText,' ','');
if length ( tText) = 0 or tText is null then
return 0;
end if;
ns := njft_id;
loop
-- av_text already used ?
select count(*) into nExist
from jnt_fic_att_value join attr_value using (jft_id)
where
ad_id=23 and av_text=tText;
if nExist = 0 then
exit;
end if;
if tText = 'FID'||ns then
-- take the next sequence
select nextval('s_jnt_fic_att_value') into ns;
end if;
tText :='FID'||ns;
end loop;
update attr_value set av_text = tText where jft_id=njft_id;
-- update also the contact
update attr_value set av_text = tText
where jft_id in
( select jft_id
from jnt_fic_att_value join attr_value using (jft_id)
where ad_id=25 and av_text=old_qcode);
update jrnx set j_qcode=tText where j_qcode = old_qcode;
return ns;
end;
$body$
LANGUAGE plpgsql;
update parm_periode set p_end = p_start where p_end is null;
alter table parm_periode alter p_end set not null;
create or replace function drop_it (p_constraint varchar)
returns void as
$body$
declare
-- drop a constraint if it exists
nCount integer;
begin
select count(*) into nCount from pg_constraint where conname=p_constraint;
if nCount = 1 then
execute 'alter table parm_periode drop constraint '||p_constraint ;
end if;
end;
$body$ language plpgsql;
select drop_it('parm_periode_p_start_key');
create unique index x_periode on parm_periode (p_start,p_end);
update version set val=21;
commit;