Projet dur à trouver - Tri par ordre alphabétique

Bonjour,

Y a-t-il un moyen de trier les projets par numéro de projet dans les menus déroulants des devis, factures …?

J’utilise un numéro de projet pour chacune de mes affaires. Le nombre de projet grossissant, je commence à avoir un soucis d’utilisation. Lorsque j’affecte un projet à un devis, facture… le menu déroulant me montre mes projets triés selon le champs « Libellé » du projet et non selon son numéro PJXXX-XXXX. Mon libellé contient le nom de client, style M.Dupont… et non un numéro générique, puisque le PJXXXX-XXXX est censé le faire. Le dernier projet ouvert se retrouve à n’importe quelle position dans le menu déroulant. Le menu déroulant laisse de plus voir peu de caractères. Cela commence à être difficile pour retrouver mes projets, il me faut lire toute la colonne et chercher le bon numéro. Y a-t-il un moyen de trier les projets par numéro de projet dans les menus déroulants des devis, factures …?

Bonne journée
Olivier

Hello
le trie sur les projet de la liste s’effectue actuellement sur le titre du projet
pour trier sur la référence il faut modifier le fichier htdocs/lib/project.lib.php
ligne 174 remplacer : « p.title » par « p.ref »
si tu ne souhaites avoir que les projets associés à ton client dans la liste (sachant que les autres projets sont grisés (fonction dont je n’en vois pas l’intérêt au passage), il te faut juste décommenter (enlever // au début de la ligne) la ligne se trouvant juste au dessus…

Super merci !
J’ai aussi changé ASC en DESC et j’ai maintenant les projets classés par PJ et en ordre descendant, comme je le souhaite. Super pratique, le dernier créé apparait en premier.

Question subsidiaire : Quote « (sachant que les autres projets sont grisés (fonction dont je n’en vois pas l’intérêt au passage) »

Cette fonctionnalité est contre-productive et incompatible avec la notion de projet. Je l’avais signalé ici
www.dolibarr.fr/forum/t/projet-chef-de-projet-et-intervenant/10509/1

Y a-t-il moyen de la désactiver ?

Bonne journée

C’est ce que j’explique au bout de la phrase que tu cite : suffit juste de décommenter la ligne au dessus (la 173)
pas bete le coup du desc…

re,
le fait de décommenter cette ligne fait disparaitre les projets grisés. Ce que je souhaite (si c’est possible ?) est que les projets grisés deviennent sélectionnable. Dit autrement, qu’un projet affecté à une société puisse être utilisé avec d’autre société. J’affecte ainsi un projet à mon client principal, mais je peux aussi créer d’autres actions avec d’autres intervenants (sous-traitants etc…).
Merci encore
Olviier

Ok je comprend mieux ta demande, il faut aller vers la ligne 215 et supprimer les lignes suivantes :

if ($socid \> 0 && (! empty($obj-\>fk_soc) && $obj-\>fk_soc != $socid))
{
	$disabled=1;
	$labeltoshow.=' \- '.$langs-\>trans("LinkedToAnotherCompany");
}

Par contre je ne mesure pas l’impact que cela peu avoir en terme de cohérence et de sécurité d’accès …

Une alternative plus élégante serais de pouvoir associer plusieurs tiers a un même projet.

ah… j’avais fait une réponse, mais pas postée sans doute…

D’abord un grand merci pour ta réponse. Enlever ces lignes me permet d’avoir accès à un projet avec divers intervenants. Après une nuit dessus, je réalise qu’en fait il s’agit d’un bug de dolibarr.

Imaginons que je créé un projet de construction de maison pour le futur heureux propriétaire M. Lheureux. Je met donc « M. Lheureux » dans la champ « société » du projet. Dans ce projet, j’ajoute la société « Constructeur » comme intervenant. Et pourtant, quand j’effectue une action (propal, action agenda…)pour « Constructeur », je ne pas pas prendre le projet de M. Lheureux ce qui n’est pas normal. Dans l’onglet « Fiche » du Tiers « Constructeur », on ne voit pas non plus le projet dédié à ce tiers alors qu’on le voit bien pour M. Lheureux. Je vais reporter cette partie de mon past dans la partie « bug ».

Avec ton aide, je peux maintenant commencer à faire de la gestion de projet. le faire et une action sur « Constructeur » apparait bien dans l’onglet « Référents » du projet. Mais on s’en doutait, ne voit pas le projet dans la fiche de « Constructeur ».

Merci encore et bon WE

dans ton cas la société constructeur serai plus à associer en tant que fournisseur que client (d’ailleurs, je doute que tu factures le constucteur :sunglasses:
Ce qu’il manque en fait sur la gestion de projet c’est la notion de prestataire externe…

Bonjour,
est il possible d’avoir le nom du projet au lieu de PJxxxxx, lorsque l’on à plusieurs projet cela deviens ingérable!.
Merci

Capturedcran2012-10-0318.20.08.png

Dolibarr 3.11

MAJ
Le fichier à modifier est maintenant /httpdocs/core/lib/project.lib.php

Bonjour,

J’ai besoin d’aide. La structure du fichier project.lib.php a changé dans la version 3.5 et je ne peux plus faire cette modification. J’en ai vraiment besoin. Help ! J’ai un peu tout essayé, mais je ne comprends pas le php :unhappy:
olivier

en fait le code ligne a été déplacé dans un autre fichier
html.formprojet.class.php
il faut toujours commenter les mêmes lignes mais dans cet autre fichier vers la ligne 121

2 « J'aime »

mille merci defrance. Ouf tout fonctionne. Je revois tous mes projets dans les 2 sens.

Peux-tu encore m’aider, pour clore ce sujet ?

Le tri de mes 260 projets se fait sur le nom. Galère. Tu m’avais aidé pour faire le tri sur le numéro de PJ, voir citation en dessous. Mais dans la 3.5 cela ne fonctionne plus. Il y a un nouveau fichier à modifier ?

Merci
olivier

je m’auto-réponds. la réponse à ma question était toute bête : c’était encore le même fichier :wink:

Aller dans /dolibarr/htdocs/core/class/html.formprojet.class.php

1)Pour classer les projets par ordre de numéro descendant,vers ligne 80 changer
$sql.= " ORDER BY p.title ASC";
en
$sql.= " ORDER BY p.ref DESC";

2)Pour pouvoir utiliser un projet avec n’importe quel tiers, aller ver ligne 121 et décommenter
if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
{
$disabled=1;
$labeltoshow.=’ - '.$langs->trans(« LinkedToAnotherCompany »);
}

Encore un grand merci à defrance
olivier

1 « J'aime »

Si defrance avait la gentillesse de répondre à ce message ? :wink: et le temps sans doute…

Le point 2) ci-dessus ne fonctionne plus.
J’ai fait la mise à jour de la 3.5.0 à 3.6.1. , le fichier ‹ html.formprojet.class.php › a changé. La seule solution que j’ai trouvée pour que cela fonctionne à nouveau est de mettre le fichier ‹ html.formprojet.class.php › de la 3.5.0 dans la version 3.6.1. C’est pas beau comme solution mais je ne sais pas faire mieux. Quelqu’un sait le faire plus proprement ?

merci
olivier

autoréponse

Lors de la mise à jour de mon dolibarr de 3.6.1 en 3.9.3, j’ai dû modifier le fichier /dolibarr/htdocs/core/class/html.formprojet.class.php selon les points ci-dessous. Je ne programme pas en php, j’ai fait simple :

  1. vers ligne 147
    // if ($socid > 0) $sql.= " AND (p.fk_soc=".$socid." OR p.fk_soc IS NULL)";
    // if (!empty($filterkey)) {
    // $sql .= ’ AND p.title LIKE « %’.$this->db->escape($filterkey).’% »’;
    // $sql .= ’ OR p.ref LIKE « %’.$this->db->escape($filterkey).’% »’;
    // }
    // $sql.= " ORDER BY p.ref ASC";
    $sql.= " ORDER BY p.ref DESC";

  2. vers ligne 209
    // else if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
    // {
    // $disabled=1;
    // $labeltoshow.=’ - '.$langs->trans(« LinkedToAnotherCompany »);
    // }

3)vers ligne 381
// else if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
// {
// $disabled=1;
// $labeltoshow.=’ - '.$langs->trans(« LinkedToAnotherCompany »);
// }

Tout à l’air de fonctionner… Un projet n’est plus pieds et poings lié à un seul Tiers.

Je vais tester plus en détail. J’ai maintenant ramené dolibarr sur mon LAN, je ne suis pas trop inquiet si j’ai affaiblit la sécurité du système par ces modifs.

Et tout cela sans déranger defrance qui m’avait bien aidé précédemment :wink:
olivier

autoréponse pour la version 7.0.1 et précédentes après 3.5.0

vers la ligne 160, en dessous de
$sql.= " WHERE p.entity IN (".getEntity(‹ project ›).")";
ajouter
$conf->global->PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY = ‹ all ›;

vers la ligne 175
commenter $sql.= " ORDER BY p.ref ASC";
et ajouter $sql.= " ORDER BY p.ref DESC";

fonctionne toujours sur la 9.0.0, juste avec les modifs ci-dessus

1 « J'aime »