Proposition commerciale = Devis et CGV dans pdf

Bonjour,

Nouvel utilisateur ravi de dolibarr (comment ai-je pu passer à coté depuis si longtemps), et belge de surcroît, il me semble que proposition commerciale se dit plus souvent « devis » chez nous, et n’ayant pas vu de sujet le traitant sur le net, voici donc le propal.lang que je me suis modifié dans ce sens, pour la 3.9.0.

propal.lang.zip (1.67 KB)

En espérant que cela puisse servir à d’autres (et que ce ne soit pas un doublon).


tmaes

2 « J'aime »

Bonjour et merci pour cette contribution,

Je ne suis pas belge (français) mais chez nous, on utilise aussi « Devis » dans de nombreux corps de métiers; la « proposition commerciale » semblant plus à la mode dans d’autres secteurs (plus huppés ?); j’ai aussi un client suisse qui lui parle d’ « offre »…
A la limite, chaque terme des dictionnaires pourrait donner des débats suivant l’entreprise utilisatrice…

Pas forcément simple à gérer donc, sauf à construire un dictionnaire éditable mais ça plomberait les temps de réponse, ou alors un système qui permettrait de générer des fichiers de langues personnalisés, mais ce n’est pas simple non plus.

Pour en revenir à nos Devis, généralement c’est surtout au niveau du document pdf qu’on aimerait utiliser le terme ad-hoc, et ça peut se faire très « simplement » en modifiant le modèle.

Ok, je n’ai pas encore mis la main dans les « modèles » je vais devoir, puisque j’aimerais ajouter des conditions générales à mes documents…
Néanmoins, la modif du fichier .lang change aussi les textes dans les pdfs par défaut, et surtout dans l’interface, ce qui ajoute pas mal de cohérence (à mon sens, je préfère cliquer sur ‹ Nouveau devis › que sur ‹ Nouvelle proposition commerciale › pour créer un devis :wink: , je m’imagine expliquer l’inverse par téléphone :happy: ).

Merci pour le retour!
PS : finalement j’ai remplacé le propal.lang dans le dossier fr_BE par celui qui est joint au premier post.

PS2 : pour les conditions générales, j’ai ajouté: // Par Philippe SAGOT (philazerty) le 21/09/2012 if (file_exists(DOL_DATA_ROOT."/mycompany/cgv/cgv.pdf")) { $pagecount = $pdf->setSourceFile(DOL_DATA_ROOT."/mycompany/cgv/cgv.pdf"); for ($i = 1; $i <= $pagecount; $i++) { $tplidx = $pdf->ImportPage($i); $s = $pdf->getTemplatesize($tplidx); $pdf->AddPage('P', array($s['w'], $s['h'])); $pdf->useTemplate($tplidx); } }

après le pied de page dans azur et crabe (respectivement /dolibarr/htdocs/core/modules/propale/doc/pdf_azur.modules.php et /dolibarr/htdocs/core/modules/facture/doc/pdf_crabe.modules.php).
Il faut ensuite mettre le fichier cgv.pdf dans /dolibarr/documents/mycompany/cgv/ …

tmaes

suite à une mise à jour de mon coté, voici quelques précisions pour l’ajout des conditions générales dans azur et crabe (un peu triviale mais gratuite :wink: merci à philazerty qui avait écrit ces quelques lignes ).
voilà à quoi ressemble la fonction pagefoot après édition (il faut donc mettre le code avant le return de la fonction):

	function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
	{
		$showdetails=0;
	// Par Philippe SAGOT (philazerty) le 21/09/2012 réutilisé par tmaes 08/2016
        if (file_exists(DOL_DATA_ROOT."/mycompany/cgv/cgv.pdf"))
        {
          $pagecount = $pdf->setSourceFile(DOL_DATA_ROOT."/mycompany/cgv/cgv.pdf");
          for ($i = 1; $i <= $pagecount; $i++)
          {
            $tplidx = $pdf->ImportPage($i);
            $s = $pdf->getTemplatesize($tplidx);
            $pdf->AddPage('P', array($s['w'], $s['h']));
            $pdf->useTemplate($tplidx);
          }
        }
	// fin de l'ajout par Philippe SAGOT (philazerty) le 21/09/2012 réutilisé par tmaes 08/2016
		return pdf_pagefoot($pdf,$outputlangs,'PROPOSAL_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
	}

Bonjour

Merci pour le « merci »
Mes modèles tout faits sont toujours dispos et gratuit. J’ai fait un package propale/commande/facture que je vais ajouter.
Le modèle tout prêt c’est Rubis.

Je prépare une version multi langue (pour les cgv) et une facture avec lettre de relance. Faut juste que je termine ça proprement car ça devient « l’Arlésienne »
@+

pas de quoi,
j’avais essayé mon-dolibarr hier à la recherche du rubis ;), mais le site avait l’air down… je vais tester cette solution aussi… est-ce compatible pour les dernières versions de dolibarr?


tmaes

Salut
Il me semble que la version 3.8 fonctionne sur la 3.9
Je vais essayer de packager la dernière realease dans la semaine.
@-

Hello,
J’ai installé sur un 4.0.4 ça a l’air de tenir… merci :wink:

Cela marche parfaitement par contre cela présente un inconvénient majeur, on intercale le fichier pdf importé à la suite du contenu de la proposition et le pied de page vient qui vient lui s’enregistrer sur la dernière page du document pdf.

J’ai adapté ceci en créant une fonction que j’appel juste avant la fermeture de l’objet pdf.
L’avantage étant que le nombre de page sont comptabilisées dans le pied de page

1/L’appel de la fonction
$this->ajoutCGV($pdf,$object); // à ajouter juste avant
$pdf->Close();

2/la fonction à ajouter dans la classe (batie avec le code donné précédemment. Merci encore.)
function ajoutCGV(&$pdf,$object){

    if (file_exists(DOL_DATA_ROOT."/mycompany/cgv/".$this-\>pdf_model_cgv))
    {
      $pagecount = $pdf-\>setSourceFile(DOL_DATA_ROOT."/mycompany/cgv/".$this-\>pdf_model_cgv);
      for ($i = 1; $i <= $pagecount; $i++)
      {
        $tplidx = $pdf-\>ImportPage($i);
        $s = $pdf-\>getTemplatesize($tplidx);
        $pdf-\>AddPage('P', array($s['w'], $s['h']));
        $pdf-\>useTemplate($tplidx);
      }
    }

}

Là dans ce cas pour faciliter la gestion j’ai préféré appeler le fichier cgv à travers une variable (dans mon cas j’ai plusieurs modèles à gérer avec des cgb différentes)
$this->pdf_model_cgv =« CGV.pdf »; //à déclarer dans le début du fichier dans la fonction __construct.