mirror of
https://github.com/YunoHost-Apps/noalyss_ynh.git
synced 2024-09-03 19:46:20 +02:00
125 lines
3 KiB
PL/PgSQL
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;
|