Ajouter Projet et titre projet dans facture

Bonjour à tous,

Je suis le développeur du module CustomFields, je vais donner quelques éclairages à ce sujet.

C’est une erreur, CustomFields est compatible avec MyISAM sans aucun problème. Dans le passé, CustomFields avait besoin d’InnoDB pour accepter les champs contraints et quelques autres vérifications d’intégrité, mais ce n’est plus le cas depuis un bon moment. Je vais corriger le README prochainement.

Au sujet de l’utilisation pour le titre projet, oui cela ne devrait pas poser de soucis, par contre il faudra CustomFields Pro qui supporte le module Projet (que la version Free ne supporte pas).

N’hésitez pas si vous avez d’autres questions à me les poser sur le [url=www.dolibarr.fr/forum/t/release-customfields-module-champs-personnalises/11621/1 de discussion dédié à CustomFields[/url].

Bonjour,

J’ai le même problème au sujet du modèle ODT dans lequel je voudrais récupérer les informations du projet lié à la facture. Je m’aperçois que je ne suis pas le seul à avoir cette problématique mais je constate malheureusement qu’il n’existe pas de solution simple.

C’est assez étonnant qu’il faille faire des manipulations de type programmation pour aller récupérer un champ présent dans les informations de la facture.

Je n’ai pas eu le courage de « mettre les mains dans le camboui », car j’ai peur de casser mon installation de dolibarr et je crains d’y passer de longues heures sans résultat.

D’autre part j’ai un autre soucis, j’explique:
Je créé des projets et je les lie à des clients (projets de construction dans le bâtiment).
Je voudrais pouvoir lier à la fois le client (le maître d’ouvrage) et l’architecte. Le but est par la suite de faire soit une recherche par Maître d’ouvrage et d’avoir le total facturé par maître d’ouvrage, soit une recherche par architecte et d’obtenir le total de toutes les affaires liées à un architecte me permettant de connaître le volume total d’honoraires par architecte.

Merci de vos réponses si vous arrivez à comprendre ce que j’essaie de faire.

Bonjour,
Ce que je fais pour mon BE est de créer un projet pour chaque affaire avec un archi. Ensuite, je fais mes propales au MO avec le projet créé en référence. Du coup, je vois depuis la fiche de l’archi tous les projets que j’ai eu avec lui et depuis le projet dans l’onglet « référent » je vois l’archi et le MO. Par contre, pour avoir le total du chiffre fait avec un archi, j’ouvre tous les projets en onglets supplémentaires et fais la somme à la main :unhappy:
Bonne fin de semaine
Olivier

Voici le code que je propose d’insérer juste avant la partie notes publiques de la facture (testé !):

// Show linked project
$sql = "SELECT p.title";
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON f.fk_projet = p.rowid";
$sql.= " WHERE f.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont('','', $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Projet : ".$row->title, 0, 1);
$tab_top = $tab_top+6;
}
2 « J'aime »

un énorme merci ! La modif fonctionne nickel, cela va faciliter ma vie pour ma factu.

j’ai aussi essayé de modifier ce code pour le faire fonctionner avec la propale « azur » mais là je ne sais pas faire. Quelqu’un sait :wink:
merci
olivier

Bonjour,
Je ne suis que simple utilisateur de Dolibarr et j’aimerais savoir où ce code doit être intégré? Est-ce qu’il s’agit de champs qui vont ressortir lorsqu’on utilise la génération de PDF ou est-ce qu’on peut l’intégrer dans un modèle ODT ?
Personnellement, je me suis créé un modèle ODT pour ma facturation et il me manque les infos liées au projet.
Je ne sais pas comment intégrer ce code dans mon ODT.
Pourriez-vous m’aider SVP ?
D’avance merci.

Bonjour,

Dans le fichier « /www/dolibarr/htdocs/core/modules/facture/doc/pdf_crabe.modules.php » (à adapter selon ton arborescence), il faut insérer le code ci-dessus vers la ligne 255 pour la version 3.6.1, juste avant « // Affiche notes ».

Bien sauvegarder avant modif le fichier original en « pdf_crabe.modules.php.original » par exemple.
@+

autoréponse.
Il suffisait d’adapter le code des « factures » avec un code adapté aux « propales » et ça marche.

Pour le modèle azur, après la ligne 334

// Show linked project
$sql = « SELECT p.title »;
$sql.= " FROM ".MAIN_DB_PREFIX.« propal as pr »;
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.« projet as p ON pr.fk_projet = p.rowid »;
$sql.= " WHERE pr.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont(’’,’’, $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Projet : ".$row->title, 0, 1);
$tab_top = $tab_top+6;
}

Bonjour,

Pour ajouter la référrence du projet et le tire, sous la forme « PJ1601-1999 - Mon beau projet » en dessous des adresses, faire :

1)factures
Dans « ./www/dolibarr/htdocs/core/modules/facture/doc/pdf_crabe.modules.php » ajouter au dessus de « //incoterm »
// Show linked project ref and title
$sql = « SELECT p.title,p.ref »;
$sql.= " FROM ".MAIN_DB_PREFIX.« facture as f »;
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.« projet as p ON f.fk_projet = p.rowid »;
$sql.= " WHERE f.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont(’’,’’, $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Projet : ".$row->ref, 0, 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc+30, $tab_top, " - " .$row->title, 0, 1);
$tab_top = $tab_top+6;
}
« //incoterm »

2)pour les propales
Dans « ./www/dolibarr/htdocs/core/modules/propale/doc/pdf_azur.modules.php » ajouter au dessus de « //incoterm »
// Show linked project ref and title
$sql = « SELECT p.title,p.ref »;
$sql.= " FROM ".MAIN_DB_PREFIX.« propal as pr »;
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.« projet as p ON pr.fk_projet = p.rowid »;
$sql.= " WHERE pr.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont(’’,’’, $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Projet : " .$row->ref, 0, 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc+30, $tab_top, " - " .$row->title, 0, 1);
$tab_top = $tab_top+6;
}
ajouter au dessus de « //incoterm »

Fait sur dolibarr 3.9.3.
Bonne journée
Olivier

2 « J'aime »

pour les factures fournisseurs, dans « /var/www/dolibarr/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php » ajouter au dessus de « //incoterm »

// Show linked project ref and title
$sql = « SELECT p.title,p.ref »;
$sql.= " FROM ".MAIN_DB_PREFIX.« facture_fourn as fo »;
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.« projet as p ON fo.fk_projet = p.rowid »;
$sql.= " WHERE fo.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont(’’,’’, $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Projet : ".$row->ref, 0, 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc+30, $tab_top, " - " .$row->title, 0, 1);
$tab_top = $tab_top+6;
}
ajouter au dessus de « //incoterm »

1 « J'aime »

A noter que j’en ai déduit le code pour les commandes client (pdf_einstein.module.php):

// Show linked project ref and title
$sql = "SELECT p.title,p.ref";
$sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON c.fk_projet = p.rowid";
$sql.= " WHERE c.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{					
$row = $this->db->fetch_object($resql);
$pdf->SetFont('','', $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Projet : ".$row->ref, 0, 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc+30, $tab_top, " - " .$row->title, 0, 1);
$tab_top = $tab_top+6;
}

Par contre il faut pour chaque masque plutôt placer le code après celui qui génère les commentaires, avant les lignes suivantes:

 
				$iniY = $tab_top + 7;
				$curY = $tab_top + 7;
				$nexY = $tab_top + 7;

Sinon les notes publiques s’inscrivent sur la ligne N° de projet / titre :wink:

Par contre quel est le code pour les commandes fournisseur? j’ai essayé co mais ça marche pas sur muscadet dans Dolibarr 7.03

1 « J'aime »

Bonjour,
Personne ne connais le code pour les commandes fournisseur? J’ai essayé co mais ça marche pas :unhappy:

Toujours a la recherche du code qui va bien pour les commandes fournisseurs, j’ai par contre trouvé celui pour les fiches d’expédition modèle rouget, que j’ai renommé en bon de livraison:

// Show linked project ref and title
$sql = "SELECT p.title,p.ref";
$sql.= " FROM ".MAIN_DB_PREFIX."expedition as sh";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON sh.fk_projet = p.rowid";
$sql.= " WHERE sh.rowid = ".$object->id;
$resql=$this->db->query($sql);
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont('','', $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "Affaire : ".$row->ref, 0, 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc+30, $tab_top, " - " .$row->title, 0, 1);
$tab_top = $tab_top+6;
}						

Si quelqu’un a la solution pour les commandes fournisseur modèle muscadet :dry:

Moi aussi je suis nouveau, mais je trouve que l’outil n’est pas mal du tout. Un peu d’aide ne sera pas de refus.

Bonjour,
A noter que, sans vouloir lui faire de pub, le module infraS pack plus permet facilement ces fonctionnalités.
Le module est très suivi par son créateur et du coup marche très bien avec toutes les versions de dolibarr pour un prix plus que raisonnable. J’ai abandonné la modification des modèles pour ce pack qui permet l’affichage du commercial dans les notes et la référence + désignation de projet sur tous les documents de dolibarr.

Bonjour,
Si la facture est liée à un projet, alors vous pouvez utiliser les tags {object_project_ref} et {object_project_title}, qui vous afficheront respectivement la référence et l’intitulé du projet.
Il y a même le tag {object_project_description} si une information que vous voulez faire apparaître se trouve dans la description du projet.

Bonjour,

Ces échanges ont été précieux pour moi, je souhaitais les faire figurer aussi sur les commandes fournisseurs afin de les retrouver dans leur bon de livraison.

J’ai cela
Show linked project ref and title
$sql.= " FROM ".MAIN_DB_PREFIX.« propal as pr »;
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.« projet as p ON pr.fk_projet = p.rowid »;
$sql.= " WHERE pr.rowid = ".$object->id;
if ($resql)
{
$row = $this->db->fetch_object($resql);
$pdf->SetFont(’’,’’, $default_font_size - 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, "N/Réf. Affaire à reporter sur votre commande avec le n° de devis : " .$row->ref, 0, 1);
$pdf->writeHTMLCell(190, 3, $this->posxdesc+50, $tab_top, " - " .$row->title, 0, 1);
$tab_top = $tab_top+6;
}

Pour ce résultat:
N/Réf Affaire à reporter sur vos BL et factures avec le n° de commande : RéfProjet

J’aurais souhaitez simplifier et avoir RéfProjet / N° de la commande PO…

Je ne suis pas arrivé à insérer la ref commande après la ref projet
Auriez vous des pistes.
Merci

1 « J'aime »

Dans le code j’ai bien la variable ref qui est utilisé pour stocker le n° de la propal, je ne sais pas la récupérer…

Je continue d’y travailler si j’y parviens je transmettrai le code :wink: