mise à jour dossier impossible
Publié : mar. nov. 14, 2017 11:35 pm
Bonjour,
C\'est la fin d\'exercice, alors je met à jour phpcompta pour 2014. Les dossiers 2011 et 2013 sont passés nickels mais pas 2012 !
Je peut toujours consulter/modifier ce dossier depuis l\'ancien phpcompta (version 6.6.5330) mais pas depuis la mise à jour (version 6.7.1 5672).
Ci-dessous le code d\'erreur de la mise à jour :
[quote]Configuration
Info
Vous utilisez le domaine
PHP
magic_quotes_gpc:
magic_quotes_runtime:
module PGSQL
module BCMATH
module GETTEXT
module ZIP
php.ini est bien configuré
Base de données
string(6) \"9.1.11\"
Paramètre base de données
La base de données est bien configurée
Mise a jour du systeme
Mise à jour dossier
Patching 29 Restauration :dossier83.bin
Patching 29 Restauration :dossier83.bin from the version 107 to 108 begin;
-- si la fiche utilise le code DEPENSE PRIVEE alors ajout dans QP_DEP_PRIV
create or replace view 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);
update quant_purchase as e set qp_dep_priv=(select qp_price from m where m.qp_id=e.qp_id);
update quant_purchase as e set qp_dep_priv=0 where qp_dep_priv is null;
-- évite les valeurs nulles dans quant_purchase
update quant_purchase set qp_dep_priv = 0 where qp_dep_priv is null;
drop view m;
-- update script insert_quant_purchase
CREATE OR REPLACE FUNCTION comptaproc.insert_quant_purchase(
found a function p_internal text,
p_j_id numeric,
p_fiche text,
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 text,
p_tva_sided numeric)
RETURNS void AS
$BODY$
declare
fid_client integer;
fid_good integer;
account_priv account_type;
fid_good_account account_type;
n_dep_priv numeric;
begin
n_dep_priv := 0;
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
n_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,
n_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
found a function$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\';
alter table menu_ref add me_description_etendue text;
insert into menu_ref(me_code,me_menu,me_file, me_url,me_description,me_parameter,me_javascript,me_type,me_description_etendue)
values
(\'NAVI\',\'Navigateur\',null,null,\'Menu simplifié pour retrouver rapidement un menu\',null,\'ask_navigator()\',\'ME\',\'Le navigateur vous présente une liste de menu auquel vous avez accès et vous permet d\'\'accèder plus rapidement au menu que vous souhaitez rapidement\');
insert into profile_menu (me_code,me_code_dep,p_id,p_order, p_type_display,pm_default)
values
(\'NAVI\',null,1,90,\'M\',0), (\'NAVI\',null,2,90,\'M\',0);
insert into menu_ref(me_code,me_menu,me_file, me_url,me_description,me_parameter,me_javascript,me_type,me_description_etendue)
values
(\'BOOKMARK\',\'Favori\',null,null,\'Raccourci vers vos menus préférés\',null,\'show_bookmark()\',\'ME\',\'Ce menu vous présente un menu rapide des menus que vous utilisez le plus souvent\');
insert into profile_menu (me_code,me_code_dep,p_id,p_order, p_type_display,pm_default)
values
(\'BOOKMARK\',null,1,85,\'M\',0), (\'BOOKMARK\',null,2,85,\'M\',0);
update menu_ref set me_menu=\'Impression Journaux\' where me_code=\'PRINTJRN\';
update menu_ref set me_description=\'Impression des journaux\' where me_code=\'PRINTJRN\';
update menu_ref set me_menu=\'Liste Suivi\' where me_code=\'FOLLOW\';
update menu_ref set me_description=\'Document de suivi sous forme de liste\' where me_code=\'FOLLOW\';
update menu_ref set me_javascript=\'popup_recherche()\' where me_code=\'SEARCH\';
update menu_ref set me_file=null,me_javascript=\'set_preference()\' , me_description_etendue=\'Préférence de l\'\'utilisateur, apparence de l\'\'application pour l\'\'utilisateur, période par défaut et mot de passe\' where me_code=\'PREFERENCE\';
/*
* Vue montrant toutes les possibilités
*/
CREATE OR REPLACE VIEW v_menu_description AS
WITH t_menu AS (
SELECT mr.me_menu, pm.me_code, pm.me_code_dep, pm.p_type_display, pu.user_name, mr.me_file, mr.me_javascript, mr.me_description, mr.me_description_etendue
FROM profile_menu pm
JOIN profile_user pu ON pu.p_id = pm.p_id
JOIN profile p ON p.p_id = pm.p_id
JOIN menu_ref mr USING (me_code)
)
SELECT DISTINCT (COALESCE(v3.me_code || \'/\'::text, \'\'::text) || COALESCE(v2.me_code, \'\'::text)) ||
CASE
WHEN v2.me_code IS NULL THEN COALESCE(v1.me_code, \'\'::text)
WHEN v2.me_code IS NOT NULL THEN COALESCE(\'/\'::text || v1.me_code, \'\'::text)
ELSE NULL::text
END AS code, v1.me_code, v1.me_description, v1.me_description_etendue, v1.me_file, v1.user_name, \'> \'::text || v1.me_menu AS v1menu,
CASE
WHEN COALESCE(v3.me_menu, \'\'::text) \'\'::text THEN \' > \'::text || v2.me_menu
ELSE v2.me_menu
END AS v2menu, v3.me_menu AS v3menu, v3.p_type_display,
coalesce(v1.me_javascript,coalesce(v2.me_javascript,v3.me_javascript)) as javascript
FROM t_menu v1
LEFT JOIN t_menu v2 ON v1.me_code_dep = v2.me_code
LEFT JOIN t_menu v3 ON v2.me_code_dep = v3.me_code
WHERE v1.p_type_display \'P\'::text AND (COALESCE(v1.me_file, \'\'::text) \'\'::text OR COALESCE(v1.me_javascript, \'\'::text) \'\'::text);
COMMENT ON VIEW v_menu_description
IS \'Description des menus\';
CREATE TABLE bookmark
(
b_id serial primary key,
b_order integer default 1,
b_action text,
login text
);
comment on table bookmark is \'Bookmark of the connected user\';
create table tags (
t_id serial primary key,
t_tag text not null,
t_description text
);
create table action_tags
(
at_id serial primary key,
t_id integer references tags(t_id) on delete cascade on update cascade,
ag_id integer references action_gestion(ag_id) on delete cascade on update cascade
); [/quote]
Merci pour l\'aide !
C\'est la fin d\'exercice, alors je met à jour phpcompta pour 2014. Les dossiers 2011 et 2013 sont passés nickels mais pas 2012 !
Je peut toujours consulter/modifier ce dossier depuis l\'ancien phpcompta (version 6.6.5330) mais pas depuis la mise à jour (version 6.7.1 5672).
Ci-dessous le code d\'erreur de la mise à jour :
[quote]Configuration
Info
Vous utilisez le domaine
PHP
magic_quotes_gpc:
magic_quotes_runtime:
module PGSQL
module BCMATH
module GETTEXT
module ZIP
php.ini est bien configuré
Base de données
string(6) \"9.1.11\"
Paramètre base de données
La base de données est bien configurée
Mise a jour du systeme
Mise à jour dossier
Patching 29 Restauration :dossier83.bin
Patching 29 Restauration :dossier83.bin from the version 107 to 108 begin;
-- si la fiche utilise le code DEPENSE PRIVEE alors ajout dans QP_DEP_PRIV
create or replace view 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);
update quant_purchase as e set qp_dep_priv=(select qp_price from m where m.qp_id=e.qp_id);
update quant_purchase as e set qp_dep_priv=0 where qp_dep_priv is null;
-- évite les valeurs nulles dans quant_purchase
update quant_purchase set qp_dep_priv = 0 where qp_dep_priv is null;
drop view m;
-- update script insert_quant_purchase
CREATE OR REPLACE FUNCTION comptaproc.insert_quant_purchase(
found a function p_internal text,
p_j_id numeric,
p_fiche text,
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 text,
p_tva_sided numeric)
RETURNS void AS
$BODY$
declare
fid_client integer;
fid_good integer;
account_priv account_type;
fid_good_account account_type;
n_dep_priv numeric;
begin
n_dep_priv := 0;
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
n_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,
n_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
found a function$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\';
alter table menu_ref add me_description_etendue text;
insert into menu_ref(me_code,me_menu,me_file, me_url,me_description,me_parameter,me_javascript,me_type,me_description_etendue)
values
(\'NAVI\',\'Navigateur\',null,null,\'Menu simplifié pour retrouver rapidement un menu\',null,\'ask_navigator()\',\'ME\',\'Le navigateur vous présente une liste de menu auquel vous avez accès et vous permet d\'\'accèder plus rapidement au menu que vous souhaitez rapidement\');
insert into profile_menu (me_code,me_code_dep,p_id,p_order, p_type_display,pm_default)
values
(\'NAVI\',null,1,90,\'M\',0), (\'NAVI\',null,2,90,\'M\',0);
insert into menu_ref(me_code,me_menu,me_file, me_url,me_description,me_parameter,me_javascript,me_type,me_description_etendue)
values
(\'BOOKMARK\',\'Favori\',null,null,\'Raccourci vers vos menus préférés\',null,\'show_bookmark()\',\'ME\',\'Ce menu vous présente un menu rapide des menus que vous utilisez le plus souvent\');
insert into profile_menu (me_code,me_code_dep,p_id,p_order, p_type_display,pm_default)
values
(\'BOOKMARK\',null,1,85,\'M\',0), (\'BOOKMARK\',null,2,85,\'M\',0);
update menu_ref set me_menu=\'Impression Journaux\' where me_code=\'PRINTJRN\';
update menu_ref set me_description=\'Impression des journaux\' where me_code=\'PRINTJRN\';
update menu_ref set me_menu=\'Liste Suivi\' where me_code=\'FOLLOW\';
update menu_ref set me_description=\'Document de suivi sous forme de liste\' where me_code=\'FOLLOW\';
update menu_ref set me_javascript=\'popup_recherche()\' where me_code=\'SEARCH\';
update menu_ref set me_file=null,me_javascript=\'set_preference()\' , me_description_etendue=\'Préférence de l\'\'utilisateur, apparence de l\'\'application pour l\'\'utilisateur, période par défaut et mot de passe\' where me_code=\'PREFERENCE\';
/*
* Vue montrant toutes les possibilités
*/
CREATE OR REPLACE VIEW v_menu_description AS
WITH t_menu AS (
SELECT mr.me_menu, pm.me_code, pm.me_code_dep, pm.p_type_display, pu.user_name, mr.me_file, mr.me_javascript, mr.me_description, mr.me_description_etendue
FROM profile_menu pm
JOIN profile_user pu ON pu.p_id = pm.p_id
JOIN profile p ON p.p_id = pm.p_id
JOIN menu_ref mr USING (me_code)
)
SELECT DISTINCT (COALESCE(v3.me_code || \'/\'::text, \'\'::text) || COALESCE(v2.me_code, \'\'::text)) ||
CASE
WHEN v2.me_code IS NULL THEN COALESCE(v1.me_code, \'\'::text)
WHEN v2.me_code IS NOT NULL THEN COALESCE(\'/\'::text || v1.me_code, \'\'::text)
ELSE NULL::text
END AS code, v1.me_code, v1.me_description, v1.me_description_etendue, v1.me_file, v1.user_name, \'> \'::text || v1.me_menu AS v1menu,
CASE
WHEN COALESCE(v3.me_menu, \'\'::text) \'\'::text THEN \' > \'::text || v2.me_menu
ELSE v2.me_menu
END AS v2menu, v3.me_menu AS v3menu, v3.p_type_display,
coalesce(v1.me_javascript,coalesce(v2.me_javascript,v3.me_javascript)) as javascript
FROM t_menu v1
LEFT JOIN t_menu v2 ON v1.me_code_dep = v2.me_code
LEFT JOIN t_menu v3 ON v2.me_code_dep = v3.me_code
WHERE v1.p_type_display \'P\'::text AND (COALESCE(v1.me_file, \'\'::text) \'\'::text OR COALESCE(v1.me_javascript, \'\'::text) \'\'::text);
COMMENT ON VIEW v_menu_description
IS \'Description des menus\';
CREATE TABLE bookmark
(
b_id serial primary key,
b_order integer default 1,
b_action text,
login text
);
comment on table bookmark is \'Bookmark of the connected user\';
create table tags (
t_id serial primary key,
t_tag text not null,
t_description text
);
create table action_tags
(
at_id serial primary key,
t_id integer references tags(t_id) on delete cascade on update cascade,
ag_id integer references action_gestion(ag_id) on delete cascade on update cascade
); [/quote]
Merci pour l\'aide !