Mellow Posted December 7, 2012 Share Posted December 7, 2012 (edited) Bonjour, Je partage avec vous cette surcharge de la classe PDF.php qui permet d'avoir des factures et des bons de livraison avec une présentation un peu plus soignée que les originaux générés par Prestashop 1.4 Les modifications ont été faites à partir du fichier PDF.php de PS 1.4.9.0, ça devrait aussi fonctionner avec la plupart des versions 1.4.x, MAIS PAS AVEC PS1.5 Les changements sont les suivants : Gain de place Agrandissement du logo (passage de 18mm à 24mm de hauteur) Déplacement de la date et du n° de commande en haut à droite (sous le n° de facture) Mise en forme des adresses, et ajout d'un cadre autour de l'adresse de facturation Affichage d'une seule adresse de facturation et de livraison (si identique) Replacement des infos Transporteur, Méthode de paiement, Date d'expédition, Emballage cadeau Ajout d'un quadrillage sur la liste des produits Petites modifications dans le pied de page (ponctuation, infos vendeur en gras) Nouvelles modifs : Ajout d'une couleur sur le total TTC pour qu'il soit plus visible Relookage et centrage du tableau des taxes (c'était un peu confus...) Un peu plus d'espace entre en-tête et adresses, et entre adresse et liste de produit Possibilité d'afficher l'écotaxe (si présent) sous le prix unitaire de chaque produit Possibilité d'afficher le prix total HT pour chaque ligne produit Possibilité d'afficher une colonne TVA dans la liste des produits Possibilité d'afficher le total des taxes de la commande (entre total HT et total TTC) Les options ci dessus sont configurable dans la fonction InitCustomValues() au début du fichier Recadrage du tableau produit des bons de livraison au même format que celui des factures Correction d'un bug d'affichage des adresses sur les bons de retour [Edit 18/01/2013] Ajout de la possibilité d'afficher ou non la colonne référence (et d'en régler la taille) Il s'agit d'une surcharge, donc à placer dans "votre-boutique/override/classes/" override-classes-PDF.php.zip 10.5KB 257 downloads override-classes-PDF.php.zip (MAJ 13/12/2013) Pour ceux qui ont des difficultés avec l'override (notamment PS 1.4.4, 1.4.3) voici aussi une version de remplacement de la classe pdf, avec les mêmes modifs. A copier donc dans "votre-boutique/classes/" en prenant soin d'effectuer d'abord une sauvegarde du fichier original. (et sans utiliser le fichier override) remplacement-classes-PDF.php.zip 13.23KB 140 downloads remplacement-classes-PDF.php.zip (MAJ 13/12/2013) (MAJ 13/12/2013) Correction d'erreurs d'affichage avec les produits personnalisés et avec les clients en affichage hors taxe. Une fois le fichier mis en place, il faudra également vous rendre dans votre back office (Outils => Traductions => Traduction des fichiers PDF) et traduire les chaines suivantes : Date: -> Date : Delivery address -> Adresse de livraison Invoicing address -> Adresse de facturation Invoicing and delivery address -> Adresse de facturation et de livraison Gift-wrapped order: -> Emballage cadeau : YES -> OUI NO -> NON include -> dont for ecotax -> d'écotaxe VAT -> TVA Et pendant que vous y êtes vous pouvez aussi (si ce n'est pas déjà fait) corriger une petite coquille : "Numéro d'identification fiscale :" au lieu de "Numéro d'indentification fiscale:" Voila, ce n'est pas une révolution mais je trouve que le résultat est un peu plus "pro" que l'original... Voici en exemple une facture "full options" Facture_améliorée_PS1.4.pdf Si vous voulez ajouter vos CGV à la suite de vos factures, vous pouvez utiliser les versions présentées ici : http://www.prestasho...ost__p__1057704 Edited December 13, 2013 by Mellow (see edit history) 7 Link to comment Share on other sites More sharing options...
Le-cathare Posted December 7, 2012 Share Posted December 7, 2012 Bonjour Super, merci pour ce partage 1 Link to comment Share on other sites More sharing options...
Le-cathare Posted December 7, 2012 Share Posted December 7, 2012 Par contre comment faire pour avoir le trait du cadre adresse plus fin ? Link to comment Share on other sites More sharing options...
laurens Posted December 7, 2012 Share Posted December 7, 2012 Bonjour et merci, la présentation est plus joli , fonctionne nickel ps 1.4.7.3 Link to comment Share on other sites More sharing options...
Mellow Posted December 7, 2012 Author Share Posted December 7, 2012 Par contre comment faire pour avoir le trait du cadre adresse plus fin ? Pour le cadre adresse, ligne 303 $pdf->SetLineWidth(0.3); // passer à 0.2 au lieu de 0.3 (on ne peut pas faire plus fin) J'ai mis quelques commentaires dans le fichier pour repérer d'autres détails qui peuvent être facilement modifiés, comme par exemple la taille du logo ou encore la couleur du texte "Facture n° FAXXXXXX" pour coller à votre charte graphique. Link to comment Share on other sites More sharing options...
Le-cathare Posted December 7, 2012 Share Posted December 7, 2012 Ok, 0,2 sa me va merci. Link to comment Share on other sites More sharing options...
Le-cathare Posted December 7, 2012 Share Posted December 7, 2012 Et pour l'espacement entre la date et le cadre adresse facturation et livraison ? puis entre le cadre adresse et mode de livraison ? Link to comment Share on other sites More sharing options...
Mellow Posted December 7, 2012 Author Share Posted December 7, 2012 Et pour l'espacement entre la date et le cadre adresse facturation et livraison ? puis entre le cadre adresse et mode de livraison ? Ligne 234 $pdf->SetY(30); // 30mm position des adresses. tous ce qui est en dessous bougera avec Ligne 318, juste avant return $addressType; insérer $pdf->Ln(X); // Saut de ligne de Xmm La logique juste avant est un peu bizarre, mais elle existait déjà, j'ai pas vraiment cherché à comprendre Dans cet espace il y a aussi le n° d'identification fiscale qui apparait s'il est présent. Il sera décalé avec le reste des infos (transporteur etc...) Link to comment Share on other sites More sharing options...
Le-cathare Posted December 7, 2012 Share Posted December 7, 2012 Ok merci Mellow, je vais faire la modif sur mon fichier. Link to comment Share on other sites More sharing options...
Mellow Posted December 8, 2012 Author Share Posted December 8, 2012 Nouvelles modifs : Ajout d'une couleur sur le total TTC pour qu'il soit plus visible Relookage et centrage du tableau des taxes (c'était un peu confus...) Un peu plus d'espace entre en-tête et adresses, et entre adresse et liste de produit (merci du retour Le-cathare, c'est mieux comme ça) Le tableau des taxes peut être modifié à la ligne 860 La couleur du total TTC est fixé en ligne 607 et 615 J'ai mis à jour le message initial Bon week-end Link to comment Share on other sites More sharing options...
Le-cathare Posted December 8, 2012 Share Posted December 8, 2012 Derien Cool pour les taxes j'allait te le demandais car j y est pensé cette nuit. C'est le rendu que je recherchais. Si j'ai d'autre idées, je t'en fait part. Link to comment Share on other sites More sharing options...
Le-cathare Posted December 8, 2012 Share Posted December 8, 2012 (edited) Autre idée, Je sais pas si c'est dans ton fichier qui faut faire la modif. Comment rajouter l'éco taxe sous chaque ligne produit (dont éco-taxe : xx €), car la réglementation impose que jusque en février 2013 l'éco taxe soit distincte a chaque produit. sa fait deux an que j'utilise prestashop et sur le forum j'ai poster plusieurs post sans réponse Sur mon logiciel (Batigest) de facturation magasin je peut le faire Aussi j'ai fait une petite modif sur la couleur des ligne du cadre adresse et produit. a la ligne 304 ajouter $pdf->SetDrawColor(150, 150, 150); // Couleur de bordure du tableau . Après pour la couleur c'est a vous de jouer Bon WE Edited December 8, 2012 by Le-cathare (see edit history) Link to comment Share on other sites More sharing options...
francky600 Posted December 9, 2012 Share Posted December 9, 2012 Bonjour, Merci Mellow pour ta contribution ! Croyez vous qu'il serait possible d'avoir dans la description produit le tarif en HT Mais aussi, entre le total HT et le total TTC : le total TVA ? Merci Link to comment Share on other sites More sharing options...
Mellow Posted December 10, 2012 Author Share Posted December 10, 2012 (edited) Autre idée, Je sais pas si c'est dans ton fichier qui faut faire la modif. Comment rajouter l'éco taxe sous chaque ligne produit (dont éco-taxe : xx €), Je viens de mettre une version avec l'écotaxe individuel sous le prix unitaire. Il faudra traduire en plus : include => dont for ecotax => d'écotaxe Dans les jours qui viennent je rajouterais une variable pour choisir d'afficher ou pas l'écotaxe individuel Edited December 10, 2012 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted December 10, 2012 Author Share Posted December 10, 2012 (edited) Croyez vous qu'il serait possible d'avoir dans la description produit le tarif en HT Mais aussi, entre le total HT et le total TTC : le total TVA ? Merci Ok, je regarderais ça aussi Peut-être plutôt mettre le total HT en petit en dessous tu total TTC ? (pour chaque produit) Avec le choix de l'afficher ou pas Qu'en pense-tu ? Edited December 10, 2012 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
Le-cathare Posted December 10, 2012 Share Posted December 10, 2012 Je viens de mettre une version avec l'écotaxe individuel sous le prix unitaire. Il faudra traduire en plus : include => dont for ecotax => d'écotaxe Dans les jours qui viennent je rajouterais une variable pour choisir d'afficher ou pas l'écotaxe individuel Cool Un grand merci Mellow . I happy Link to comment Share on other sites More sharing options...
Mellow Posted December 12, 2012 Author Share Posted December 12, 2012 Hé bien voila, version finale (je pense) : - Possibilité d'afficher ou pas l'écotaxe - Possibilité d'afficher le prix total HT pour chaque ligne produit - Possibilité d'afficher une colonne TVA dans la liste des produits - Possibilité d'afficher le total des taxes de la commande (entre total HT et total TTC) Tout est dans le premier message Link to comment Share on other sites More sharing options...
Le-cathare Posted December 12, 2012 Share Posted December 12, 2012 peut etre ajouter l'affichage du Fabriquant pour les personne qui le souhaite. Pour moi j'ai pas besoins. Link to comment Share on other sites More sharing options...
lennynero Posted December 14, 2012 Share Posted December 14, 2012 (edited) Bonjour, Merci pour cette contribution GRATUITE.... Je rencontre une petit soucis avec mes traductions impossible de traduire certains item qui n'apparaissent pas dans le fichier traduction....pourquoi? une idée? merci à vous Je précise sur ma boutique en PS 1.4.4 Edited December 14, 2012 by lennynero (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted December 14, 2012 Author Share Posted December 14, 2012 Je rencontre une petit soucis avec mes traductions impossible de traduire certains item qui n'apparaissent pas dans le fichier traduction....pourquoi? une idée? Non, je ne vois pas... mais je ne connais pas trop PS 1.4.4, peut-être qu'il y a des petites différences de fonctionnement Pourrais-tu préciser quelles expressions n'apparaissent pas dans la page traduction ? Je regarderais déjà dans quelles fonctions elles sont appelées, ça donnera peut-être une idée... Link to comment Share on other sites More sharing options...
Cateye Posted December 14, 2012 Share Posted December 14, 2012 Je rencontre le même soucis que lennynero. Je n'arrive pas à trouver comment traduire certains chaines. Invoicing and delivery address, Total products (tax excl.), Total products (tax incl.), Total discounts (tax incl.) Ma boutique est en version 1.4.3 Link to comment Share on other sites More sharing options...
lennynero Posted December 14, 2012 Share Posted December 14, 2012 (edited) Merci de ta réponse, voici une copie d'écran Vois tu aussi le décallage à gauche? merci de ton aide Edited December 14, 2012 by lennynero (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted December 14, 2012 Author Share Posted December 14, 2012 Bon ben j'ai téléchargé PS 1.4.3 et 1.4.4 pour comparer, et le PDF.php de PS1.4.9 que j'ai utilisé a subit pas mal de modifications depuis ces versions, c'est pourquoi ça ne colle pas parfaitement. (même entre 1.4.3 et 1.4.4 la classe pdf est différente...) Je ne vous le promet pas pour tout de suite, mais j'installerais ces versions pour voir si ça peut se gérer dans un même fichier. Link to comment Share on other sites More sharing options...
Cateye Posted December 15, 2012 Share Posted December 15, 2012 Merci pour ton implication à résoudre nos problèmes Pas de décalage du tableau Description-Référence-Prix-Quantité... dans mon cas. Merci de ta réponse, voici une copie d'écran Vois tu aussi le décallage à gauche? merci de ton aide Link to comment Share on other sites More sharing options...
lennynero Posted December 15, 2012 Share Posted December 15, 2012 Bonjour Nutrinat, Je me suis mal exprimé tu as le même décalage que moi à gauchecar la largeur du tableau du devis et plus petite que celle de la facture. A+ Link to comment Share on other sites More sharing options...
lennynero Posted December 15, 2012 Share Posted December 15, 2012 Mellow bonjour, peux tu me dire ou se trouve les dimenssions du tableau devis? merci Link to comment Share on other sites More sharing options...
Cateye Posted December 15, 2012 Share Posted December 15, 2012 Aucune idée car je ne réalise pas de devis. Je ne connais pas cette fonctionnalité de Prestashop Est-ce un module additionnel? Bonjour Nutrinat, Je me suis mal exprimé tu as le même décalage que moi à gauchecar la largeur du tableau du devis et plus petite que celle de la facture. A+ Link to comment Share on other sites More sharing options...
Mellow Posted December 15, 2012 Author Share Posted December 15, 2012 Oui effectivement, le fichier d'origine ne gère pas de devis Ce ne serait pas plutôt le tableau produit des bons de livraison ? Si c'est sur les bons de livraison, je recadrerais le tableau au même format que celui des factures Link to comment Share on other sites More sharing options...
Cateye Posted December 16, 2012 Share Posted December 16, 2012 J'entends déjà crier les puristes et experts mais serait-il possible d'écraser ma classe PDF.php actuelle par la version 1.4.9 pour récupérer les chaines manquantes? Link to comment Share on other sites More sharing options...
Mellow Posted December 16, 2012 Author Share Posted December 16, 2012 (edited) Bonjour, Tout à fait, c'est la solution. Mais il faut carrément remplacer la classe ET effectuer les modifs directement dessus, sans passer par l'override. Car le problème vient du fait que certaines versions ne semblent pas gérer les traductions des chaines se trouvant dans les fichiers override. J'ai fait un autre fichier, qui cette fois ci n'est pas un override mais un remplacement de la classe pdf, avec les mêmes modifs. A copier donc dans /classes/ en prenant soin d'effectuer d'abord une sauvegarde du fichier original (pensez aussi à supprimer le précédent override) Voir message original http://www.prestasho...ost__p__1031228 La base c'est toujours la version de PS1.4.9, mais j'ai testé sur PS 1.4.4 et 1.4.3 et tout à l'air de bien fonctionner, les chaines à traduire sont présentes en BO (plus 1 ou 2 autres qui n'existaient pas sur ces versions), et les factures sont générés correctement. Mais on ne peut pas toujours tester tous les cas particuliers alors vous me direz ce que ça donne chez vous... [Édit] Au passage j'ai aussi recadrer le tableau des bons de livraison, et corrigé un pb d'affichage des adresses sur les bons de retour. Edited December 16, 2012 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
lennynero Posted December 16, 2012 Share Posted December 16, 2012 Bonjour, Et désolé de cette méprise mais il était très tard et j'ai confondu devis avec bon de livraison. Toutes mes excuses. Link to comment Share on other sites More sharing options...
lennynero Posted December 16, 2012 Share Posted December 16, 2012 Super Mellow Tout est ok merci pour ces corrections peux tu quand même me donner l'info sur quelle ligne est tu intervenu pour le tableau avec marge de gauche sur BL merci Link to comment Share on other sites More sharing options...
Mellow Posted December 16, 2012 Author Share Posted December 16, 2012 Pas de soucis, voici les infos : lignes 971 et 997 $w = array(120, 30, 10); // Le tableau faisait 160mm (trois cellules 120+30+10) a été remplacé par $w = array(150, 30, 10); ensuite lignes 975, 1085, 1102 if ($delivery) $this->SetX(25); // et avait une marge de gauche de 15mm (début à 25mm) remplacé par if ($delivery) $this->SetX(10); et enfin lignes 1090, et 1109 ($delivery ? 15 : 0) // c'était une compensation pour les 15mm de marge remplacé par ($delivery ? 0 : 0) Link to comment Share on other sites More sharing options...
Cateye Posted December 16, 2012 Share Posted December 16, 2012 Merci pour ton aide Mellow ! C'est ok pour moi aussi. Seul petite ombre au tableau, la colonne TVA : 5,5% ou 19,60% des produits ne s'affiche pas. Une idée ? Link to comment Share on other sites More sharing options...
Mellow Posted December 16, 2012 Author Share Posted December 16, 2012 oups! je pense que j'ai du laisser l'option à 0 par défaut, il faut éditer le fichier et mettre $Show_Vat_Value = 1; en ligne 154 Link to comment Share on other sites More sharing options...
Cateye Posted December 16, 2012 Share Posted December 16, 2012 Bingo !!! Et encore merci pour ce super boulot ! Link to comment Share on other sites More sharing options...
lennynero Posted December 18, 2012 Share Posted December 18, 2012 Bonjour Mellow, Puis je te contacter en MP? Link to comment Share on other sites More sharing options...
Mellow Posted December 18, 2012 Author Share Posted December 18, 2012 @lennynero, Ok, ma messagerie est réactivée Link to comment Share on other sites More sharing options...
leludo54 Posted December 18, 2012 Share Posted December 18, 2012 Ok je l'ai téléchargé et ca marche parfaitement avec ps 1.4.9 Merci beaucoup Link to comment Share on other sites More sharing options...
Cateye Posted December 20, 2012 Share Posted December 20, 2012 (edited) Est-il possible d'agrandir la taille du logo de la boutique sans désorganiser la mise en page? Edited December 21, 2012 by Nutrinat (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted December 21, 2012 Author Share Posted December 21, 2012 Oui. La taille du logo est définit par sa hauteur en millimètres. Dans la fonction "header" il y a 4 lignes de ce type $this->Image(_PS_IMG_DIR_.'/logo_invoice.jpg', 10, 8, 0, 24); // <= 24mm Hauteur du logo Et si nécessaire on peut faire débuter le texte plus bas (à partir des adresses) Au début de la fonction "generateHeaderAddresses" $pdf->SetY(40); // <= 40mm position verticale des adresses Link to comment Share on other sites More sharing options...
Cateye Posted December 22, 2012 Share Posted December 22, 2012 Merci Mellow pour cette réponse précise! Je vais pouvoir editer la facture de mes rêves J'ai tout de même encore un autre question. Est-il possible d'agrandir uniquement la taille de la police de "Total TTC" ? Link to comment Share on other sites More sharing options...
Mellow Posted December 24, 2012 Author Share Posted December 24, 2012 Cherche le commentaire "Couleur texte Total TTC" et juste en dessous, remplace $pdf->Cell($width, 0, self::l('Total').' '.(self::$_priceDisplayMethod == PS_TAX_EXC ? self::l(' (tax excl.)') : self::l(' (tax incl.)')).' : ', 0, 0, 'R'); $pdf->Cell(0, 0, (self::$orderSlip ? '-' : '').self::convertSign(Tools::displayPrice((self::$_priceDisplayMethod == PS_TAX_EXC ? $priceBreakDown['totalWithoutTax'] : $priceBreakDown['totalWithTax']), self::$currency, true)), 0, 0, 'R'); par $pdf->SetFontSize(12); /* nouvelle taille de police */ $pdf->Cell($width, 0, self::l('Total').' '.(self::$_priceDisplayMethod == PS_TAX_EXC ? self::l(' (tax excl.)') : self::l(' (tax incl.)')).' : ', 0, 0, 'R'); $pdf->Cell(0, 0, (self::$orderSlip ? '-' : '').self::convertSign(Tools::displayPrice((self::$_priceDisplayMethod == PS_TAX_EXC ? $priceBreakDown['totalWithoutTax'] : $priceBreakDown['totalWithTax']), self::$currency, true)), 0, 0, 'R'); $pdf->SetFontSize(8); /* retour à la taille initiale */ Toute la documentation de fpdf est ici : http://www.fpdf.org/fr/ Link to comment Share on other sites More sharing options...
Cateye Posted December 24, 2012 Share Posted December 24, 2012 Merci beaucoup pour ton aide! J'ai enfin la facture de mes rêves Link to comment Share on other sites More sharing options...
neastea18 Posted December 25, 2012 Share Posted December 25, 2012 Bonsoir, Bravo pour le travail ! Je voulais savoir si c'était possible d'envisager l'intégration de l'override PDF.php de cette discussion http://www.prestashop.com/forums/topic/193279-envoi-cgv-avec-mail-confirmation-de-commande/ à savoir les CGV à la suite de la facture ? Cordialement, Link to comment Share on other sites More sharing options...
missty66 Posted December 26, 2012 Share Posted December 26, 2012 MERCI BEAUCOUP TT FONCTIONNE SUPER AVEC LA VERSION 1.4.8.2 EN PRENANT LA DEUXIEME FORMULE. Link to comment Share on other sites More sharing options...
Mellow Posted December 27, 2012 Author Share Posted December 27, 2012 (edited) Je voulais savoir si c'était possible d'envisager l'intégration de l'override PDF.php de cette discussion http://www.prestasho...on-de-commande/ à savoir les CGV à la suite de la facture ? Je savais que ces deux discussions se rejoindraient d'une façon ou d'une autre. Alors oui, c'est possible, il faut récupérer le fichier de l'autre discussion, en extraire le code concernant les CGV, et intégrer ce code au(x) fichier(s) de ce sujet. De mémoire, il devrait y avoir deux modifications à faire, une sur la fonction invoice() ou il faudra rajouter une ligne vers la fin, et l'autre sur les fonctions header() et footer() qu'il faudra adapter. Si quelqu'un veut se lancer... Mais sinon je rajouterais ça à la rentrée Edited December 27, 2012 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
ddlink Posted December 28, 2012 Share Posted December 28, 2012 Cette contribution marche t'elle sur la v 1.5.2 ? Merci Link to comment Share on other sites More sharing options...
Mellow Posted December 28, 2012 Author Share Posted December 28, 2012 Cette contribution marche t'elle sur la v 1.5.2 ? Merci C'est précisé dans le premier post, ces modifs ne sont pas du tout compatible avec PS 1.5.x La génération des pdf est totalement différente, par contre PS1.5 possède un système de templates pour personnaliser les documents générés. Link to comment Share on other sites More sharing options...
neastea18 Posted January 3, 2013 Share Posted January 3, 2013 (edited) Bonsoir à tous, j'ai "joué" avec cette modification qui est géniale. Je cherche à mettre un texte comme l'éco-taxe mais sous le texte de la description. (product_name) Voici le code que je souhaite intégrer $this->SetFont(self::fontname(), 'B', 6); for($i=1;$i<$product['product_quantity']+1;$i++){ $sql="SELECT `numero` FROM `"._DB_PREFIX_."numero_de_serie` where `id_product`='".$product['product_id']."' and `id_order`='".self::$order->id."' and `quantite`='".$i."';"; if($result=Db::getInstance()->ExecuteS($sql) and $result[0]['numero']!=''){ $num=array("KL22FFF","KL55555","KL8685","KL96584"); if($delivery) $this->SetX(10); else $this->SetX(10); $this->Cell(50, 4, self::l('Numero de serie').' '.$i." : ".$result[0]['numero'], 'N'); $this->Ln(); } } $this->SetFont(self::fontname(), '', 8); Je pense que je dois insérer ma modification avant ce code (ligne 906) $before = $this->GetY(); $this->MultiCell($w[++$i],6, Tools::iconv('utf-8', self::encoding(), $product['product_name']), 'LRB'); je pense que je dois reprendre ce code mais, quelque chose m'échappe ... if (!$delivery) { // Mellow : Gestion de l'affichage de l'ecotaxe si present if (self::$_priceDisplayMethod != PS_TAX_EXC AND $product['ecotax'] != 0 AND $Show_Value_Ecotax == 1) { // Calcul de l'ecotaxe reelle a partir de $product['ecotax'] et $product['ecotax_tax_rate'] $unit_ecotax = $product['ecotax'] * (1 + $product['ecotax_tax_rate'] / 100); // On ecrit d'abord une case vide pour dessiner les bordures et conserver la structure du tableau $beforeX = $this->GetX(); $beforeY = $this->GetY(); $this->Cell($w[++$i], $lineSize, ' ', 'LRB', 0, 'R'); $afterX = $this->GetX(); $afterY = $this->GetY(); // Retour dans la case vide pour ecrire le prix unitaire (legerement plus haut) $this->SetXY($beforeX, $beforeY -0.9); $this->SetFont(self::fontname(), '', 8); // <= Taille du texte $this->Cell($w[$i], $lineSize, (self::$orderSlip ? '-' : '').self::convertSign(Tools::displayPrice($unit_price, self::$currency, true)), 0, 0, 'R'); // Puis ecriture de l'ecotaxe juste en dessous $this->SetXY($beforeX, $beforeY +1.7); $this->SetFont(self::fontname(), '', 5.5); // <= Taille du texte $this->SetTextColor(0,150,0); // <= Couleur du texte $this->Cell($w[$i], $lineSize, '('.self::l('include').' '.self::convertSign(Tools::displayPrice($unit_ecotax, self::$currency, true)).' '.self::l('for ecotax').')', 0, 0, 'R'); // Et retour en fin de case pour continuer le tableau $this->SetFont(self::fontname(), '', 8); $this->SetTextColor(0,0,0); $this->SetXY($afterX, $afterY); } else $this->Cell($w[++$i], $lineSize, (self::$orderSlip ? '-' : '').self::convertSign(Tools::displayPrice($unit_price, self::$currency, true)), 'LRB', 0, 'R'); } Merci par avance de l'aide possible Edited January 3, 2013 by aPlancon69 (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 4, 2013 Author Share Posted January 4, 2013 Bonjour, Tu ne pourra pas faire la même manip sur les cellules description car elle ne sont pas du même type que les autres (MultiCell au lieu de Cell) La description étant susceptible d'être longue, on utilise MultiCell parce qu'il autorise les retours à la ligne. Seulement, on ne sait pas à l'avance quel sera la hauteur du MultiCell, ça dépendra de la taille de la description. D'ailleurs c'est à partir de cette cellule qu'on va fixer la hauteur des autres cellules pour continuer à tracer le tableau : $before = $this->GetY(); // position avant MultiCell $this->MultiCell(...............................); $lineSize = $this->GetY() - $before; // calcul de la hauteur après MultiCell Donc le plus simple à mon avis, c'est de mettre en forme ton(tes) n° de série dans une chaine, puis de forcer un retour à la ligne supplémentaire à la fin de la description pour afficher cette chaine (si nécessaire) : if (il-y-a-des-numeros-de-serie) { $numeros_de_serie = self::l('Numeros de serie : '); foreach (.........) { $numeros_de_serie .= // <- concaténation des n° dans une chaine } } else $numeros_de_serie = null; // ensuite on ajoute dans le MultiCell si necessaire $before = $this->GetY(); $this->MultiCell($w[++$i],6, Tools::iconv('utf-8', self::encoding(), $product['product_name']) .($numeros_de_serie ? "\n".$numeros_de_serie : ''), 'LRB'); $lineSize = $this->GetY() - $before; Seulement là tu n'aura pas de mise en forme particulière pour le n° de série, il sera au même format que la description. Note l'utilisation des doubles quotes pour "\n" c'est nécessaire car fpdf (ou php, je ne sais pas trop...) n’interprète pas le '\n' avec simples quotes comme un retour à la ligne Link to comment Share on other sites More sharing options...
neastea18 Posted January 4, 2013 Share Posted January 4, 2013 Bonjour Mellow, Merci de ton aide, je vais regarder tout ça Link to comment Share on other sites More sharing options...
D&D Posted January 4, 2013 Share Posted January 4, 2013 Juste un petit mot pour dire un grand merci pour ce partage Mellow ! Link to comment Share on other sites More sharing options...
Mellow Posted January 5, 2013 Author Share Posted January 5, 2013 (edited) Hé bien c'est pas fini voici les mêmes fichiers avec l'ajout des CGV en fin de facture En plus des modifications de mise en forme des factures, ces versions vont aussi récupérer le contenu de la page cms CGV (dans la langue de l'utilisateur) et l'insérer à la suite de la facture. Ainsi le client recevra un exemplaire des CGV avec sa facture dans le mail de confirmation de commande. Ceci pour coller le plus possible aux nouvelles dispositions européennes. cf. http://www.prestasho...on-de-commande/ Le script permet également de proposer les CGV en téléchargement au format pdf, par l'intermédiaire du fichier pdf-cgv.php à placer dans le répertoire racine du site. Il suffira alors de créer un lien de téléchargement en insérant le code suivant à l'endroit souhaité <a href="http://nom-du-site/pdf-cgv.php">Telechargez nos CGV</a> ou <a href="pdf-cgv.php">Telechargez nos CGV</a> Les CGV sont générés en texte brut, sans aucune mise en forme. Seul le titre pourra être formaté, à condition qu'il soit placé dans une balise <h2></h2> (comme le texte CGV par défaut de prestashop) Par défaut le texte des CGV est en taille 6 sur deux colonnes, ça reste très lisible et la plupart des CGV devrait tenir sur 1 ou 2 pages. Mais la taille de police peut être changé dans la fonction InitCustomValues() ainsi que le nombre de colonnes (1 ou 2) Merci à Prestaspirit qui est l'auteur initial de la modif permettant d'insérer les CGV à la suite de la facture. La version override, pour PS 1.4.7.x -> 1.4.9.0 (peut-être 1.4.5.x et 1.4.6.x ?) pdf-cgv.php+override-classes-PDF.php.zip 12.38KB 68 downloads pdf-cgv.php+override-classes-PDF.php.zip (MAJ 13/12/2013) La version remplacement, pour PS 1.4.3.x, 1.4.4.x (peut-être 1.4.x ?) pdf-cgv.php+remplacement-classes-PDF.php.zip 15.19KB 27 downloads pdf-cgv.php+remplacement-classes-PDF.php.zip (MAJ 13/12/2013) Fichier exemple : Facture+CGV.pdf [MAJ] 06/01/2013 Correction d'une petite erreur de code et ajout de la sélection du nombre de colonnes cgv [MAJ] 18/01/2013 Correction d'une erreur sur l'édition des factures multiples (chaque facture était suivi des CGV) (MAJ 13/12/2013) Correction d'erreurs d'affichage avec les produits personnalisés et avec les clients en affichage hors taxe. Edited December 13, 2013 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
vanille69 Posted January 5, 2013 Share Posted January 5, 2013 Bonsoir à tous, j'ai "joué" avec cette modification qui est géniale. Je cherche à mettre un texte comme l'éco-taxe mais sous le texte de la description. (product_name) Voici le code que je souhaite intégrer $this->SetFont(self::fontname(), 'B', 6); for($i=1;$i<$product['product_quantity']+1;$i++){ $sql="SELECT `numero` FROM `"._DB_PREFIX_."numero_de_serie` where `id_product`='".$product['product_id']."' and `id_order`='".self::$order->id."' and `quantite`='".$i."';"; if($result=Db::getInstance()->ExecuteS($sql) and $result[0]['numero']!=''){ $num=array("KL22FFF","KL55555","KL8685","KL96584"); if($delivery) $this->SetX(10); else $this->SetX(10); $this->Cell(50, 4, self::l('Numero de serie').' '.$i." : ".$result[0]['numero'], 'N'); $this->Ln(); } } $this->SetFont(self::fontname(), '', 8); Je pense que je dois insérer ma modification avant ce code (ligne 906) $before = $this->GetY(); $this->MultiCell($w[++$i],6, Tools::iconv('utf-8', self::encoding(), $product['product_name']), 'LRB'); je pense que je dois reprendre ce code mais, quelque chose m'échappe ... if (!$delivery) { // Mellow : Gestion de l'affichage de l'ecotaxe si present if (self::$_priceDisplayMethod != PS_TAX_EXC AND $product['ecotax'] != 0 AND $Show_Value_Ecotax == 1) { // Calcul de l'ecotaxe reelle a partir de $product['ecotax'] et $product['ecotax_tax_rate'] $unit_ecotax = $product['ecotax'] * (1 + $product['ecotax_tax_rate'] / 100); // On ecrit d'abord une case vide pour dessiner les bordures et conserver la structure du tableau $beforeX = $this->GetX(); $beforeY = $this->GetY(); $this->Cell($w[++$i], $lineSize, ' ', 'LRB', 0, 'R'); $afterX = $this->GetX(); $afterY = $this->GetY(); // Retour dans la case vide pour ecrire le prix unitaire (legerement plus haut) $this->SetXY($beforeX, $beforeY -0.9); $this->SetFont(self::fontname(), '', 8); // <= Taille du texte $this->Cell($w[$i], $lineSize, (self::$orderSlip ? '-' : '').self::convertSign(Tools::displayPrice($unit_price, self::$currency, true)), 0, 0, 'R'); // Puis ecriture de l'ecotaxe juste en dessous $this->SetXY($beforeX, $beforeY +1.7); $this->SetFont(self::fontname(), '', 5.5); // <= Taille du texte $this->SetTextColor(0,150,0); // <= Couleur du texte $this->Cell($w[$i], $lineSize, '('.self::l('include').' '.self::convertSign(Tools::displayPrice($unit_ecotax, self::$currency, true)).' '.self::l('for ecotax').')', 0, 0, 'R'); // Et retour en fin de case pour continuer le tableau $this->SetFont(self::fontname(), '', 8); $this->SetTextColor(0,0,0); $this->SetXY($afterX, $afterY); } else $this->Cell($w[++$i], $lineSize, (self::$orderSlip ? '-' : '').self::convertSign(Tools::displayPrice($unit_price, self::$currency, true)), 'LRB', 0, 'R'); } Merci par avance de l'aide possible Bonjour, j'ai découvert cette modification & j'en suis fan ! Nous avons je pense, le module pour les numéro de série mais, personnellement, je souhaite le mettre sous la référence avec le même style que le "Total". Je suis totalement novice en la matière mais, je pense qu'il faut reprendre le code utilisé pour afficher le total + le Total HT ? En pièce jointe, j'ai mis mon idée Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 (edited) Je cherche à mettre un texte comme l'éco-taxe mais sous le texte de la description. (product_name) je pense que je dois reprendre ce code mais, quelque chose m'échappe ... Nous avons je pense, le module pour les numéro de série mais, personnellement, je souhaite le mettre sous la référence avec le même style que le "Total". Je suis totalement novice en la matière mais, je pense qu'il faut reprendre le code utilisé pour afficher le total + le Total HT ? Bonjour, Dans les deux cas il faut refaire une logique. ça peut sembler simple comme ça, mais avec le mode de fonctionnement de fpdf, toute nouvelle mise en forme dans un tableau peut vite devenir un casse tête (en fait, on ne dessine pas vraiment de tableau, on trace des cellules successives qu'on dispose de manière à former un tableau) Mais il se trouve que j'adore ce genre de casse tête alors voici un bout de code qui devrait vous convenir à tous les deux : A insérer dans la fonction ProdTab() à la place de : $before = $this->GetY(); $this->MultiCell($w[++$i],6, Tools::iconv('utf-8', self::encoding(), $product['product_name']), 'LRB'); $lineSize = $this->GetY() - $before; $this->SetXY($this->GetX() + $w[0] + ($delivery ? 0 : 0), $this->GetY() - $lineSize); $this->Cell($w[++$i], $lineSize, ($product['product_reference'] ? Tools::iconv('utf-8', self::encoding(), $product['product_reference']) : '--'), 'LRB'); Nouveau code : /* >>>>>> DEBUT TRAITEMENT NUMERO DE SERIE <<<<<< */ /* Ici il faudra extraire vos numeros de serie */ /* On considere qu'ils sont dans le tableau $results */ $results = array('XXX', 'YYY', 'ZZZ'); // Valeur de test qui sera a supprimer au final ! $Aff = 'desc'; // Emplacement des numeros de serie ('desc' ou 'ref') if (count($results)) { // pour la cellule description on fabriquera une chaine en ligne "Serials : XXX - YYY - ZZZ" if ($Aff == 'desc') { $serials = (count($results) > 1 ? 'Serials : ' : 'Serial : '); $separateur = ' - '; } // pour la cellule reference ce sera une chaine avec des retours a la ligne "XXX\nYYY\nZZZ" else { $serials = ''; $separateur = chr(13).chr(10); // retour a la ligne "\n" } foreach ($results as $key => $result) if ($key == 0) $serials .= $result; // premier numero else $serials .= $separateur.$result; // numeros suivants } else $serials = null; // si il n'y a pas de numero de serie $before = $this->GetY(); /* Ici, dans tous les cas on ecrira la description (sans tracer la ligne du bas de la colonne) */ $this->MultiCell($w[++$i],4, Tools::iconv('utf-8', self::encoding(), $product['product_name']), 'LR'); /* si on affiche les serials sous la description */ if ($serials AND $Aff == 'desc') { $this->SetFont(self::fontname(), '', 6); $this->SetTextColor(140); $this->MultiCell($w[$i],3, $serials, 'LRB'); // serials + ligne du bas $this->SetFont(self::fontname(), '', 8); $this->SetTextColor(0); } /* si il n'y a pas de serials ou pas d'emplacement definit */ elseif (!$serials OR $Aff != 'ref') { // on va tracer la ligne du bas en s'arrangeant pour obtenir un $LineSize de 6 minimum ! // (reserve de hauteur pour ecotaxe et prix HT) $this->MultiCell($w[$i], ($this->GetY() - $before < 6 ? 6 - ($this->GetY() - $before) : 0), '', 'LRB'); } /* hauteur de ligne de la cellue description */ $lineSize = $this->GetY() - $before; $this->SetXY($this->GetX() + $w[0], $before); // on se positionne dans la colonne reference /* Ici, dans tous les cas on va ecrire la reference (sans tracer la ligne du bas de la colonne) */ $this->Cell($w[++$i], 4, ($product['product_reference'] ? Tools::iconv('utf-8', self::encoding(), $product['product_reference']) : '--'), 'LR', 2); /* si on affiche les serials sous la reference */ if ($serials AND $Aff == 'ref') { $this->SetFont(self::fontname(), '', 6); $this->SetTextColor(140); $this->MultiCell($w[$i],3, $serials, 'LR'); // on ecrit les numeros de serie, sans ligne du bas ! $this->SetFont(self::fontname(), '', 8); $this->SetTextColor(0); // si la cellule reference est plus haute que la cellule description on definit le nouveau $lineSize if ($this->GetY() > ($before + $lineSize)) $lineSize = $this->GetY() - $before; // et on trace a la suite les lignes du bas des cellules description et reference $this->SetXY($this->GetX(), $before); // on se repositionne au debut de la cellule description $this->Cell($w[$i-1], $lineSize, '', 'LRB', 0); // bas de cellule desc et on reste sur a meme ligne ! $this->Cell($w[$i], $lineSize, '', 'LRB', 0); // bas cellule ref et on reste sur a meme ligne ! } /* dans tous les autres cas, c'est le $lineSize de la cellule description qui compte */ else { // on l'utilise donc pour tracer le bas de la cellule reference $this->Cell($w[$i], $before + $lineSize - $this->GetY(), '', 'LRB', 0); // ligne du bas } $this->SetXY($this->GetX(), $before); // on se positionne dans la colonne suivante /* >>>>>> FIN NUMERO DE SERIE <<<<<< */ Il y a peut-être plus simple, mais j'en doute quand même. A vous maintenant d'extraire vos numéros de série... Résultats : Edited January 17, 2013 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 (edited) Bonjour, j'ai un petit souci j'ai la facture qui s'affiche bien mais la 2eme page qui doit contenir les cgv est blanche , j'ai du louper quelque chose PS 1.4.7.3 j'ai telecharger la version override du post 54 Merci à vous pour ce super boulot Edited January 6, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 Bonjour, Ben... ça parait évident, mais as-tu bien configuré une page CGV dans les préférences ? et une page contenant du texte... Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 (edited) Bonjour Mellow, dans les cms j'ai bien mes cgv mais la page texte ou faut il la mettre j'ai creer un dossier cgv a la racine avec les cgv au format texte , mais ça n'a pas l'air d'être ça , désolé de mon incompétence dans les préférences les cgv sont cochés OUI avec la page des conditions d'utilisation Edited January 6, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 Non non, on s'est mal compris, il n'y a pas de fichier texte ou dossier supplémentaire à ajouter. Je voulais dire que la page cms cgv doit effectivement contenir du texte, et être configurée dans les préférences du site : Back office => Préférences => activer l'option "Conditions générales de vente", et sélectionner la page cms correspondante. Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 Donc j'ai un probléme car j'ai bien mon texte dans les cgv , de plus si je clique sur accepté les cgv etc (lire) j'ai bien ma page qui s'affiche Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 Ah... effectivement il y a un problème ! Donc tu me dis que la facture s'affiche bien, avec la nouvelle mise en forme, mais avec une deuxième page blanche ! ça veux dire que les deux parties du script s'exécutent bien, puisque la deuxième page est générée, mais pour une raison inconnue il n'arrive pas a trouver la page des cgv (ou il n'arrive pas à en extraire le texte) Tu pourrais essayer de sélectionner une autre page pour les cgv dans tes préférences. Idéalement une nouvelle page avec juste un texte simple sans mise en forme. Si cette page s'affiche dans la facture ça voudra dire qu'il y a quelque chose qui bloque dans le code html de la page cgv. Sinon, c'est que le script ne trouve vraiment pas la bonne page. de mon coté j'essaye également de reproduire ça Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 (edited) Je vient de suivre tes conseils en prenant la page livraison et celle ci s'affiche bien je pense que ça vient que j'ai une apostrophe dans le nom non c'est pas l'apostrophe ça marche avec d'autres pages, mais par contre mes cgv font 3 pages Edited January 6, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 (edited) ok, donc c'est bien le code de la page qui pose problème. Alors la première piste qui me viens à l'esprit c'est le copié/collé depuis Word. On utilise souvent Word pour taper nos textes et les mettre en forme, mais le problème c'est que Word (et d'autres éditeurs aussi) insère un tas de code supplémentaire dans le texte, et lorsqu'on fait un copié/collé tout ce code est reproduit dans la page. La plus part du temps c'est totalement transparent parce que ce code n'est pas interprété par les navigateurs, mais lorsqu'un script essaye de charger ce code ça pose parfois des problèmes... Le mieux pour supprimer ce code parasite, c'est de copier et coller le texte complet dans un éditeur de texte simple (notepad par exemple) Ensuite refaire un copié/collé depuis notepad vers l'éditeur de page cms Et enfin refaire la mise en page directement dans l'éditeur (notepad aura supprimer toute la mise en page) Bien sur c'est moins pratique de travailler trois pages avec l'éditeur de prestashop qu'avec un "vrai" logiciel, mais comme ça tu sera sur d'avoir un code "propre". PS: en parlant d'apostrophe, je me souvient avoir déjà rencontré des pb avec un texte ou les apostrophes normaux ' étaient remplacé par des ` à voir... Si tu as un lien, je pourrais aller jeter un oeil au code de la page... Edited January 6, 2013 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 (edited) Ok j'essai et je vous tient au courant Bon au bout de 3 fois de copier coller , enfin ça marche je te remercie infiniment pour ta patiente Edited January 6, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 Sans vouloir abuser Mellow , j'aurais souhaité qu'il n'y est qu'un seule colonne , que doit-je modifié Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 Pas de problème, content que ça marche finalement. Alors pour passer sur une colonne il faut rechercher les 4 endroits dans le code ou il y a : MultiCell(93 et les remplacer par MultiCell(190 et ensuite remplacer aussi if($this->col<1) par if($this->col<0) C'est vrai que cette option pourrait être rajouté, mais j'ai fait des essais et la ou je gagne le plus de place c'est sur 2 colonnes. Comme j'ai remarqué une petite erreur dans le code je vais mettre à jour les fichiers et j'en profiterais pour rajouter cette option. Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 Merci pour tout , je préfère sur une seule colonne car ça correspond mieux pour moi lors de l'impression à la longueur de mes cgv Link to comment Share on other sites More sharing options...
Mellow Posted January 6, 2013 Author Share Posted January 6, 2013 Ok, ben j'ai mis à jour les fichiers du post #54, et c'est maintenant configurable Link to comment Share on other sites More sharing options...
laurens Posted January 6, 2013 Share Posted January 6, 2013 Super, je vient de configurer pour moi une seule colonne et police à 7 , facture et cgv prennent pile-poil 2 pages recto-verso je te souhaite une bonne soirée et encore Merci Link to comment Share on other sites More sharing options...
oolivvv Posted January 6, 2013 Share Posted January 6, 2013 Dommage que ceci n'est pas compatible 1.5 ca aurais été vraiment très cool Link to comment Share on other sites More sharing options...
petitbiston Posted January 7, 2013 Share Posted January 7, 2013 @ Mellow : salut et merci pour cette superbe contribution, qui plus est gratuite. J'en profite pour souhaiter mes meilleurs voeux Link to comment Share on other sites More sharing options...
ysco Posted January 10, 2013 Share Posted January 10, 2013 Hello mellow, Thanks for this great override pdf , looks really great Just one question, what part to comment out the cms ? I do not want the cms part shown on invoice, i try to comment out in de override file the last part but then it shows a empty page. Hope you can point me in de right direction. Thanks for sharing. Best regards, ysco.. Link to comment Share on other sites More sharing options...
Mellow Posted January 10, 2013 Author Share Posted January 10, 2013 (edited) Hi ysco Just find and comment out this line (at the end of invoice() function) if (!self::$delivery) $pdf->addCgv(); // Ajout CGV a la suite de la facture you will still be able to use the pdf-cgv.php to make a download link for your terms and conditions of use Regards Edited January 10, 2013 by Mellow (see edit history) Link to comment Share on other sites More sharing options...
ysco Posted January 10, 2013 Share Posted January 10, 2013 Hello Mellow, Thanks for your quick reply, will try your suggestion. About pdf.cgv.php , where to put this file ( is this going in de root ? ) I have now only added the override file in classes, i could not find where to put the other file and do not know if it needs to be anywhere Is there a readme how to ? Thanks. Best regards, ysco.. Link to comment Share on other sites More sharing options...
Mellow Posted January 10, 2013 Author Share Posted January 10, 2013 The override file goes to your-shop/override/classes/ (keeping your original file in your-shop/classes/) pdf.cgv.php goes to the root directory of your shop and can be called by http://your-shop/pdf-cgv.php There are explanations at the top of the file, and in the first post of this topic, but in french... Link to comment Share on other sites More sharing options...
ysco Posted January 10, 2013 Share Posted January 10, 2013 (edited) Hello Mellow, Well i comment out with your suggestion and cms is not loaded anymore ( Great ) I already have translated the first topic with google but could not find where to place the pdf.cgv.php ( i thought that i was going to root but wasn't sure ) So i can add in the pdf.cgv.php for example the cms link and can be called by the url ? And if you do not use this the file is not needed in the root then. How should the link be added in that file, is there a example off it ? Sorry for all the trouble Edit: Just added the file in root and when the url is clicked it loads the CMS with terms and conditions automatically. (Cool ) Regards, ysco.. Edited January 10, 2013 by ysco (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 11, 2013 Author Share Posted January 11, 2013 Ok, I see that you managed to make it work pdf-cgv.php is to use in case you want to place somewhere a link to give your customers the ability of downloading your terms and conditions. But if you don't need this feature you can just take the files in the first post. Link to comment Share on other sites More sharing options...
ysco Posted January 11, 2013 Share Posted January 11, 2013 Thanks Mellow, Outstanding Override Any plans for 1.5.x , i m still on 1.4.8.2 and will go to 1.5.x when my template and modules are all compatible with PS 1.5.x and would be nice when your override is also working on the latest version. Thanks again for all, Regards, ysco.. Link to comment Share on other sites More sharing options...
laurens Posted January 11, 2013 Share Posted January 11, 2013 (edited) Bonjour, comment forcer les majuscules dans l'adresse du client car si le client écrit en minuscules le nom apparait en minuscules ainsi que la ville ça fait pas très net Merci Je pense qu'il faudrait mettre que la 1ere lettre en majuscules pour le nom et le prénom car j'ai des client(e)s qui ont inversé les 2 lors de l'inscription Edited January 12, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
laurens Posted January 12, 2013 Share Posted January 12, 2013 (edited) Bonjour, j'ai fait des recherche pour mon problème de majuscules et j'ai trouver ceci mais quand je vais sur le site , page blanche et en back office la liste des clients à disparus quelqu'un a une idée Merci Autant pour moi , j'ai fait une erreur de frappe mais il y a quand même un souci car je me suis inscrit avec un prénom avec un accent ( et oui on est jamais trop prudent) et la , le prénom éric devient Ric Résolu: remplacé $fields['firstname'] = pSQL(Tools::ucfirst(strtolower($this->firstname))); par $fields['firstname'] = pSQL(Tools::ucfirst($this->firstname)); Edited January 12, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 12, 2013 Author Share Posted January 12, 2013 Résolu: remplacé $fields['firstname'] = pSQL(Tools::ucfirst(strtolower($this->firstname))); par $fields['firstname'] = pSQL(Tools::ucfirst($this->firstname)); Bonjour, Je vois que tu as avancé, en effet c'est mieux de faire ça directement sur les classes Customer et Address plutôt que sur la facture. Mais il reste un petit souci. Comme tu as enlevé le strtolower (qui en effet "bouffe" les caractères spéciaux) maintenant si le client à entré son prénom en majuscule il n'y aura aucun changement... Pour que ça soit 100% efficace il faut utiliser la fonction strtolower de la classe Tools de prestashop (qui elle, respecte les caractères spéciaux) Ce qui donne $fields['firstname'] = pSQL(Tools::ucfirst(Tools::strtolower($this->firstname))); Link to comment Share on other sites More sharing options...
laurens Posted January 13, 2013 Share Posted January 13, 2013 Bonjour , le forum est une mine d'or, suffit de chercher bien sur l'avis de pro comme toi est très utile et je t'en remercie. Je ne comprend pas que ce ne soit pas inclus dans presta ça me semble pourtant normal Link to comment Share on other sites More sharing options...
presta'luv Posted January 16, 2013 Share Posted January 16, 2013 Bonjour, Merci pour ce super module ! Du beau travail, c'est vraiment appréciable.. Petite question : mes références sont assez longues, ce qui les fais dépasser de la colonne "Référence" sur la facture. Comment puis-je faire en sorte que celles-ci ne s'affichent pas du tout ou n'afficent qu'un "-" ?! Merci d'avance. Link to comment Share on other sites More sharing options...
Mellow Posted January 16, 2013 Author Share Posted January 16, 2013 Bonjour, @presta'luv Pour le moment tu peux rechercher cette ligne $this->Cell($w[++$i], $lineSize, ($product['product_reference'] ? Tools::iconv('utf-8', self::encoding(), $product['product_reference']) : '--'), 'LRB'); et la remplacer par $this->Cell($w[++$i], $lineSize, '-', 'LRB'); Des que j'aurais le temps, j'ajouterais une option pour afficher ou non la colonne référence (et pourquoi pas même en choisir la taille...) Link to comment Share on other sites More sharing options...
presta'luv Posted January 17, 2013 Share Posted January 17, 2013 @Mellow Merci beaucoup c'est parfait ! Link to comment Share on other sites More sharing options...
Mellow Posted January 18, 2013 Author Share Posted January 18, 2013 Hé bien voila, les fichiers ont été mis à jour avec maintenant la possibilité de régler la taille de la colonne Référence (ou de ne pas l'afficher du tout) Pour les versions avec CGV il y avait un problème lors de l'édition de factures multiples, chaque factures était suivi des CGV. C'est maintenant corrigé, les cgv n'apparaissent que sur les factures individuelles. 1 Link to comment Share on other sites More sharing options...
laurens Posted January 19, 2013 Share Posted January 19, 2013 Bonjour Mellow Petite question je me suis aperçu que c'était la référence du produit qui s'afficher, pourrait on avoir la référence du produit avec la déclinaisons, je m'explique, un produit à une référence par exp: H5476 mais la référence avec déclinaisons peut être H5476 01 ou H5476 02 dans mon exp le 01 ou 02 correspond à une déclinaison 2eme question je ne vois plus ou paramétrer le nb de colonne et la taille de la police pour les cgv et surtout je n'ai plus les cgv à la suite de la facture Merci Link to comment Share on other sites More sharing options...
Mellow Posted January 19, 2013 Author Share Posted January 19, 2013 Bonjour, @laurens, je pense que tu as du télécharger les fichiers du premier post, pour avoir les cgv il faut reprendre ceux du post #54 Pour les références, je regarderais ça... Link to comment Share on other sites More sharing options...
laurens Posted January 19, 2013 Share Posted January 19, 2013 effectivement, je pensais que c'etait dans le premier post , désolé Link to comment Share on other sites More sharing options...
Mellow Posted January 19, 2013 Author Share Posted January 19, 2013 Après vérification, pour la référence c'est normal. On peut attribuer une référence à chaque déclinaisons, et elle est alors affichée sur la facture. Mais si la déclinaison n'a pas sa propre référence, c'est la référence du produit de base qui est affichée Voila Link to comment Share on other sites More sharing options...
laurens Posted January 19, 2013 Share Posted January 19, 2013 (edited) Je te remercie pour toutes tes explications et pour ta patiente à répondre à toutes nos questions edit encore moi tu m'ait dans le post 54 ....Les CGV sont générés en texte brut, sans aucune mise en forme. Seul le titre pourra être formaté, à condition qu'il soit placé dans une balise <h2></h2> (comme le texte CGV par défaut de prestashop) peut tu m'expliquer comment placé les balises Edited January 19, 2013 by laurens (see edit history) Link to comment Share on other sites More sharing options...
Mellow Posted January 21, 2013 Author Share Posted January 21, 2013 Bonjour, La balise h2 correspond à du texte en "Titre 2", comme ceci => C'est vraiment une mise en forme minimale pour détacher le titre du reste du texte. Link to comment Share on other sites More sharing options...
Fink Posted February 3, 2013 Share Posted February 3, 2013 Bonjour, Je souhaiterais inverser l'affichage des coordonnées de facturation et de livraison dans l'entête de facture. J'utilise des enveloppes à fenêtre pour envoyer mes factures et à l'emplacement de la fenêtre (à droite) apparaît l'adresse de facturation, qui n'est pas toujours la bonne adresse pour la livraison ! Et aussi, je souhaiterais supprimer l'impression du n° de téléphone dans l'adresse de livraison. Ce n'est pas terrible en matière de sécurité d'avoir un n° de tél qui apparaît aux yeux de tous les intervenants de la livraison ! Merci par avance si vous pouvez m'éclairer car j'ai beaucoup de mal à tout comprendre, bien que je me soigne, mais lentement ! Link to comment Share on other sites More sharing options...
Mellow Posted February 4, 2013 Author Share Posted February 4, 2013 @Fink Pour inverser les adresses et supprimer les n° de tel : Dans la fonction invoice() remplacer $addressType = array( 'delivery' => array(), 'invoice' => array(), ); $patternRules = array( 'optional' => array( 'address2', 'company'), 'avoid' => array( 'State:iso_code')); par $addressType = array( 'invoice' => array(), //<= 'delivery' => array(), //<= ); $patternRules = array( 'optional' => array( 'address2', 'company'), 'avoid' => array( 'phone', //<= 'phone_mobile', //<= 'State:iso_code')); Dans la fonction generateHeaderAddresses() remplacer if ($addressType['invoice']['addressObject']->id != $addressType['delivery']['addressObject']->id) { $pdf->SetXY($pdf->GetX(), $pdf->GetY() +6); $pdf->SetFontSize(8); $pdf->Cell($width -2.4, 10, self::l('Delivery address'), 0, 'L'); $pdf->SetXY($pdf->GetX(), $pdf->GetY() -6); $pdf->SetFontSize(10); $pdf->Cell($width, 10, self::l('Invoicing address'), 0, 'L'); par if ($addressType['invoice']['addressObject']->id != $addressType['delivery']['addressObject']->id) { $pdf->SetXY($pdf->GetX(), $pdf->GetY() +6); $pdf->SetFontSize(8); $pdf->Cell($width -2.4, 10, self::l('Invoicing address'), 0, 'L'); //<= $pdf->SetXY($pdf->GetX(), $pdf->GetY() -6); $pdf->SetFontSize(10); $pdf->Cell($width, 10, self::l('Delivery address'), 0, 'L'); //<= et if ($type == 'delivery') { if ($addressType['invoice']['addressObject']->id != $addressType['delivery']['addressObject']->id) { par if ($type == 'invoice') { //<= if ($addressType['invoice']['addressObject']->id != $addressType['delivery']['addressObject']->id) { Ensuite si tu veux augmenter un peu la taille de police de l'adresse de livraison remplacer } else { $pdf->SetFontSize(10); $pdf->MultiCell(94, 4, $addressType[$type]['displayed'], 0, 'L', 0); par } else { $pdf->SetFontSize(12); $pdf->MultiCell(94, 5, $addressType[$type]['displayed'], 0, 'L', 0); Link to comment Share on other sites More sharing options...
Fink Posted February 4, 2013 Share Posted February 4, 2013 Merci beaucoup pour ton aide Mellow, je vais essayer ça ! Link to comment Share on other sites More sharing options...
Fink Posted February 4, 2013 Share Posted February 4, 2013 Ça fonctionne impeccable, merci encore Mellow, ça va vraiment me faciliter les envois. Link to comment Share on other sites More sharing options...
Fink Posted February 4, 2013 Share Posted February 4, 2013 Un petit détail, Mellow...histoire d'être perfectionniste : Sur l'édition des adresses d'une facture apparaît les titres suivants : Invoicing address + Delivery address ou Invoicing and delivery address Je ne trouve pas ou je peux traduire ces titres. Si tu as encore quelques temps à me consacrer...je t'en remercie par avance ! Link to comment Share on other sites More sharing options...
Mellow Posted February 4, 2013 Author Share Posted February 4, 2013 Pour les traductions c'est dans le back office => Outils => Traductions => Traductions des fichiers PDF Normalement toutes les expressions utilisées devraient apparaitre à cet endroit Link to comment Share on other sites More sharing options...
Fink Posted February 4, 2013 Share Posted February 4, 2013 Oups, autant pour moi, j'ai regardé mais je ne suis pas descendu jusqu'en bas et c'est là qu'il manquait des traductions. Merci encore et au plaisir, 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