sylastenny Posted April 13, 2009 Share Posted April 13, 2009 Bonjour,Est-il possible de rajouter le code EAN sur la facture PDF (juste le code chiffré, pas le code barre) ?Si oui, pouvez-vous m'orienter vers la démarche à suivre.Merci. Link to comment Share on other sites More sharing options...
Michel DONAT Posted April 14, 2009 Share Posted April 14, 2009 Bonjour,En modifiant le fichier /classes/PDF.phpC'est lui qui génère la facture. Link to comment Share on other sites More sharing options...
sylastenny Posted April 15, 2009 Author Share Posted April 15, 2009 :snake: c'est du PHP et je n'y connais rien :red: Une âme charitable pour ce petit bout de code ?Merci. Link to comment Share on other sites More sharing options...
PhiLho Posted April 15, 2009 Share Posted April 15, 2009 Ah, une bonne occasion d'apprendre quelque chose, j'avais pas encore utilisé FPDF.Après quelques tâtonnements, je suis arrivé à quelque chose de potable.Dans la fonction ProdTab, changer les lignes : if ($delivery) $this->SetX(25); $before = $this->GetY(); $this->MultiCell($w[++$i], 5, Tools::iconv('utf-8', self::encoding(), $product['product_name']), 'B'); $lineSize = $this->GetY() - $before; $this->SetXY($this->GetX() + $w[0] + ($delivery ? 15 : 0), $this->GetY() - $lineSize); $this->Cell($w[++$i], $lineSize, $product['product_reference'], 'B'); if (!$delivery) $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($unit_without_tax, self::$currency, true, false)), 'B', 0, 'R'); $this->Cell($w[++$i], $lineSize, $productQuantity, 'B', 0, 'C'); if (!$delivery) { $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($total_without_tax, self::$currency, true, false)), 'B', 0, 'R'); $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($total_with_tax, self::$currency, true, false)), 'B', 0, 'R'); } $this->Ln(); } par les lignes : $this->SetFont(self::fontname(), '', 8); if ($delivery) $this->SetX(25); $before = $this->GetY(); $this->MultiCell($w[++$i], 5, Tools::iconv('utf-8', self::encoding(), $product['product_name'])); $lineSize = $this->GetY() - $before; $this->SetXY($this->GetX() + $w[0] + ($delivery ? 15 : 0), $this->GetY() - $lineSize); $this->Cell($w[++$i], $lineSize, $product['product_reference']); if (!$delivery) $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($unit_without_tax, self::$currency, true, false)), 0, 0, 'R'); $this->Cell($w[++$i], $lineSize, $productQuantity, 0, 0, 'C'); if (!$delivery) { $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($total_without_tax, self::$currency, true, false)), 0, 0, 'R'); $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($total_with_tax, self::$currency, true, false)), 0, 0, 'R'); } $this->Ln(); $this->SetFont(self::fontname(), '', 6); if ($delivery) $this->SetX(25); $before = $this->GetY(); $this->Cell(15, 2, Tools::iconv('utf-8', self::encoding(), self::l('EAN13:')), 'B'); $this->Cell(15, 2, $product['product_ean13'], 'B'); $tw = array_sum($w) - 30; $this->Cell($tw, 2, ' ', 'B'); $this->Ln(); } Sans aucune garantie (peut être moche s'il n'y a pas de code EAN, etc.) ! Link to comment Share on other sites More sharing options...
sylastenny Posted April 16, 2009 Author Share Posted April 16, 2009 Ton code fonctionne et met le code EAN sous le descriptif produit. Cependant, est-il possible de le mettre entre "Description" et "Référence" ? soit une colonne supplémentaire et non une ligne. Link to comment Share on other sites More sharing options...
PhiLho Posted April 16, 2009 Share Posted April 16, 2009 :shut: Arrgh !J'avais fait exprès de choisir l'option la plus difficile !En fait, c'est parce que je trouvais qu'il y avait peu de place entre la description et la référence...Mais bon, la description peut être multiligne, je vais donc réduire son espace.Tant qu'à faire, j'ai ajouté une option pour choisir le placement : pas d'EAN (défaut, comme avant), en bas, ou sur la même ligne.Il faut ajouter dans le fichier config/config.inc.php la ligne : define('_PS_EAN13_ORDER_DISPLAY_', 'none'); // none, inline, below (j'ai mis après le price display precision...)Au passage, j'ai splitté quelques lignes trop longues à mon goût (une manie chez moi... :-)), et j'ai ajouté le nom de la boutique (simplifié) et le préfixe aux fichiers générés, histoire que le client sache ce que sont ces fichiers PDF une fois sur son disque dur...Du coup, c'est un peu long pour montrer dans ce message, le fichier est disponible à :http://www.autohotkey.net/~PhiLho/PhiLhoSoft/PrestaShop/PDF._phpAvec un bon logiciel comme WinMerge, tu peux isoler la gestion de l'EAN13 du reste des modifs, si tu n'en veux pas.Voilà, voilà, un petit exercice intéressant.Le forum a mangé le message que je venais de taper, j'espère que celui-ci sera posté... Link to comment Share on other sites More sharing options...
sylastenny Posted April 17, 2009 Author Share Posted April 17, 2009 Je te remercie pour le travail que tu fournis ;-) J'ai remplacer mon fichier PDF.php par celui que tu donnes et rajouter le bout de code dans config/config.inc.php en dessous de define('_PS_PRICE_DISPLAY_PRECISION_', 2); (ligne 117).Mais cela ne modifie rien :down: aucune ligne ou colonne supplémentaire et pas de trace du code EAN.Aurai-je oublié faire quelque chose ?Heureusement il me reste ton premier code qui fera l'affaire :-) (si jamais je t'embête trop) Link to comment Share on other sites More sharing options...
PhiLho Posted April 17, 2009 Share Posted April 17, 2009 Je suppose que tu as renommé le ._php en .phpPar contre, je devine que tu n'as pas changé l'option : pour que ça marche, à la place de 'none', il faut mettre 'below' (pour le mettre dessous) ou 'inline' (pour le mettre sur la même ligne).Si c'est pas ça, je ne vois pas trop... Link to comment Share on other sites More sharing options...
sylastenny Posted April 19, 2009 Author Share Posted April 19, 2009 J'avais bien renommé le fichier php, mais, effectivement, je n'avais pas modifier l'option.Chose faite mais toujours aucune ligne ou colonne.j'ai aussi essayé en modifiant les guillemets de ton code en les mettant droits et non penchés (comme ils apparaissent dans les messages du forum), mais toujours sans résultat.Peux-tu poster le code modifié de ton fichier config.inc.php, comme ça je n'aurai qu'à faire un copier/coller et si cela ne fonctionne pas, je me contenterai de ton 1er code.1er code qui soit disant entre nous correspond à ma demande principale, je t'embête juste pour une question de présentation. Link to comment Share on other sites More sharing options...
PhiLho Posted April 21, 2009 Share Posted April 21, 2009 Ah, effectivement, le forum essaie de faire de la typographie (mais se plante sur la moitié des apostrophes...), faut que je pense à utiliser le tag code (faudrait un tag tt aussi, pour du code dans une ligne) plus souvent.J'ai changé le message ci-dessus, et je recolle ci-dessous, avec l'option déjà présente dans le fichier : define('_PS_PRICE_DISPLAY_PRECISION_', 2); define('_PS_EAN13_ORDER_DISPLAY_', 'below'); // none, inline, below Je précise que ma modif a été faite sur la version officielle de PrestaShop 1.1.Note que le [tt]_PS_PRICE_DISPLAY_PRECISION_[/tt] est entouré de caractères soulignés ; j'ignore pourquoi, les options de taxes ne l'ont pas, mais j'ai fait pareil... Ah, sans tag CODE, les soulignés disparaissent et mettent le nom en italique ! :-( D'où ton souci, je pense... (j'ai mis le tag tt, il n'existe pas ici, mais curieusement ça désactive les italiques...)Faudra que je mette un []_PS_WEIGHT_DISPLAY_PRECISION_[/], ça fait ballot d'afficher 3 décimales pour un poids en grammes... Link to comment Share on other sites More sharing options...
sylastenny Posted April 21, 2009 Author Share Posted April 21, 2009 Super ça fonctionne nickel !Comment fais-tu pour centrer les désignations sous les titres ?J'ai réussi à trouver comment bouger les titre avec L, C et R mais la désignation en dessous ne bouge pas.Dernière question et promis, j'arrête :-P :Comment faire pour supprimer une colonne (celle de la référence en l'occurrence) ?Merci et encore BRAVO pour ton code Link to comment Share on other sites More sharing options...
PhiLho Posted April 22, 2009 Share Posted April 22, 2009 Comment fais-tu pour centrer les désignations sous les titres ?J'ai réussi à trouver comment bouger les titre avec L, C et R mais la désignation en dessous ne bouge pas. Cherche foreach($products AS $product) c'est la boucle qui affiche les produits, là aussi tu peux mettre L C R dans les Cell()Comment faire pour supprimer une colonne (celle de la référence en l'occurrence) ? Virerarray(self::l('Reference'), 'L'),des deux arrays, remplacer $bInlineEAN ? 25 : 0, 15 par $bInlineEAN ? 40 : 0 et $bInlineEAN ? 40 : 0, 30 par $bInlineEAN ? 70 : 0, virer les lignes avec $product['product_reference'] dedans. En gros... Link to comment Share on other sites More sharing options...
petitbiston Posted May 25, 2012 Share Posted May 25, 2012 (edited) Je remonte ce sujet car le fichier config.inc.php n'est pas (plus) le même sur la V1.4.8.2. Comment fait-on chef ? Edit : je viens d'insérer la ligne, cela fonctionne cool... ! Par contre je souhaiterai que le code barre soit générer Edited May 25, 2012 by petitbiston (see edit history) Link to comment Share on other sites More sharing options...
missty66 Posted March 1, 2013 Share Posted March 1, 2013 Bonjour, existe t'il un module gratuit ou payant déjà fait pour les nuls ? Merci Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now