85 lines
3.2 KiB
PL/PgSQL
85 lines
3.2 KiB
PL/PgSQL
-- si la fiche utilise le code DEPENSE PRIVEE alors ajout dans QP_DEP_PRIV
|
|
with m as (select qp_id, qp_price from quant_purchase join fiche_detail on (qp_fiche=f_id and ad_id=5) where ad_value in (select p_value from parm_code where p_code='DEP_PRIV'))
|
|
update quant_purchase as e set qp_dep_priv=(select qp_price from m where m.qp_id=e.qp_id);
|
|
-- évite les valeurs nulles dans quant_purchase
|
|
update quant_purchase set qp_dep_priv = 0 where qp_dep_priv is null;
|
|
-- update script insert_quant_purchase
|
|
|
|
CREATE OR REPLACE FUNCTION comptaproc.insert_quant_purchase(p_internal text, p_j_id numeric, p_fiche character varying, p_quant numeric, p_price numeric, p_vat numeric, p_vat_code integer, p_nd_amount numeric, p_nd_tva numeric, p_nd_tva_recup numeric, p_dep_priv numeric, p_client character varying, p_tva_sided numeric)
|
|
RETURNS void AS
|
|
$BODY$
|
|
declare
|
|
fid_client integer;
|
|
fid_good integer;
|
|
account_priv account_type;
|
|
fid_good_account account_type;
|
|
begin
|
|
select p_value into account_priv from parm_code where p_code='DEP_PRIV';
|
|
|
|
select f_id into fid_client from
|
|
fiche_detail where ad_id=23 and ad_value=upper(trim(p_client));
|
|
select f_id into fid_good from
|
|
fiche_detail where ad_id=23 and ad_value=upper(trim(p_fiche));
|
|
select ad_value into fid_good_account from fiche_detail where ad_id=5 and f_id=fid_good;
|
|
|
|
if strpos( fid_good_account , account_priv ) = 1 then
|
|
p_dep_priv=p_price;
|
|
end if;
|
|
|
|
insert into quant_purchase
|
|
(qp_internal,
|
|
j_id,
|
|
qp_fiche,
|
|
qp_quantite,
|
|
qp_price,
|
|
qp_vat,
|
|
qp_vat_code,
|
|
qp_nd_amount,
|
|
qp_nd_tva,
|
|
qp_nd_tva_recup,
|
|
qp_supplier,
|
|
qp_dep_priv,
|
|
qp_vat_sided)
|
|
values
|
|
(p_internal,
|
|
p_j_id,
|
|
fid_good,
|
|
p_quant,
|
|
p_price,
|
|
p_vat,
|
|
p_vat_code,
|
|
p_nd_amount,
|
|
p_nd_tva,
|
|
p_nd_tva_recup,
|
|
fid_client,
|
|
p_dep_priv,
|
|
p_tva_sided);
|
|
return;
|
|
end;
|
|
$BODY$
|
|
LANGUAGE plpgsql;
|
|
|
|
-- ajout code manquant dans parm_code
|
|
create or replace function add_parm_code() returns void as
|
|
$fct$
|
|
declare
|
|
country_code text;
|
|
begin
|
|
select pr_value into country_code from parameter where pr_id='MY_COUNTRY';
|
|
if country_code='FR' then
|
|
insert into parm_code (p_code,p_comment,p_value) values ('DNA','Dépense non déductible','67');
|
|
insert into parm_code (p_code,p_comment,p_value) values ('TVA_DNA','TVA non déductible','');
|
|
insert into parm_code (p_code,p_comment,p_value) values ('TVA_DED_IMPOT','TVA déductible à l''impôt','');
|
|
insert into parm_code (p_code,p_comment,p_value) values ('COMPTE_COURANT','Poste comptable pour le compte courant','');
|
|
insert into parm_code (p_code,p_comment,p_value) values ('COMPTE_TVA','TVA à payer ou à recevoir','');
|
|
end if;
|
|
end;
|
|
$fct$
|
|
language plpgsql;
|
|
|
|
select add_parm_code();
|
|
|
|
drop function add_parm_code();
|
|
|
|
update parm_code set p_value='67' where p_value='6740' and p_code='DNA';
|
|
|