IED Factory Posted December 5, 2016 Share Posted December 5, 2016 (edited) Bonjour et merci d'avance aux contributeurs qui voudront bien aider à trouver une solution... Avec PS 1.6.1.9, lorsque vous éditez une facture client ou client B2B, le numéro de téléphone du client apparaît ; c'est gênant au niveau de la confidentialité du client, surtout si vous devez envoyer la facture par la poste avec une lettre à fenêtre normalisée. Dans cette version de PS, les thèmes des factures sont toujours dans le dossier > pdf et il y a un appel d'un fichier invoice-b2b.tpl (on se sert de celui-ci...) , qui appelle un autre thème (pourquoi faire simple quand on peut faire compliqué !) ,qui s'appelle invoice.addresses-tab.tpl. Dans ce fichier, il y un bout de code que nous avons déjà modifié pour faire disparaître à la fois l'adresse de facturation et aussi le libellé "Adresse de livraison" : <table id="addresses-tab" cellspacing="0" cellpadding="0"> <tr> <td width="33%"><span class="bold"> </span><br/><br/> {if isset($order_invoice)}{$order_invoice->shop_address}{/if} </td> <td width="33%"> </td> <td width="33%"><span class="bold">{l s='' pdf='true'}</span><br/><br/> {$invoice_address} </td> </tr> </table> On voit bien que ce fichier appelle aussi des informations nommées invoice_address (ligne 33), dans lesquelles se trouve le numéro de téléphone du client que nous voulons ne pas faire apparaître. Si vous savez jouer au poupée russes, et nous dire comment trouver cet appel et donc enlever le numéro de téléphone du client dans la facture, je pense que vous rendriez service au personne qui veulent respecter la vie privé de leurs clients ! Merci par avance. Edited December 5, 2016 by IED Factory (see edit history) Link to comment Share on other sites More sharing options...
tuk66 Posted December 5, 2016 Share Posted December 5, 2016 Vous pouvez le modifier dans la définition du format d'adresse à la section Localisation > Pays (pour chaque pays). You can change it in the Address format definition at Localization > Countries (for every country). Link to comment Share on other sites More sharing options...
IED Factory Posted December 5, 2016 Author Share Posted December 5, 2016 (edited) Merci de votre retour. mais ce paramétrage va enlever aussi le téléphone de la page de création de compte, non ? Edited December 5, 2016 by IED Factory (see edit history) Link to comment Share on other sites More sharing options...
IED Factory Posted December 6, 2016 Author Share Posted December 6, 2016 UP ! pas de réponse ? Link to comment Share on other sites More sharing options...
IED Factory Posted December 7, 2016 Author Share Posted December 7, 2016 UP ! Link to comment Share on other sites More sharing options...
Eolia Posted December 7, 2016 Share Posted December 7, 2016 (edited) Prestashop a inventé 2 variables dans la table ps_configuration qui permettent de définir les champs à enlever dans les factures ou les BL PS_INVCE_INVOICE_ADDR_RULES -> {"avoid":[]} et PS_INVCE_DELIVERY_ADDR_RULES -> {"avoid":[]} Sauf qu'ils ont juste oublié de prévoir un endroit où entrer ces données en BO... en ajoutant 'phone' dans les crochets ça devrait le faire: PS_INVCE_INVOICE_ADDR_RULES -> {"avoid":["phone","phone_mobile"]} Edited December 8, 2016 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 Merci Eolia pour ce retour très pointu. J'ai donc fait ce que vous préconisez, rien ne fonctionne, j'ai toujours le numéro de téléphone mobile dans l'adresse de mon client sur sa facture... Par contre id_shop_group et id_shop sont en NULL, cela est peut-êre lié : voir captures Link to comment Share on other sites More sharing options...
Eolia Posted December 8, 2016 Share Posted December 8, 2016 Cela ne modifie pas les factures déjà générées^^ public static function generateAddress(Address $address, $patternRules = array(), $newLine = "\r\n", $separator = ' ', $style = array()) { $addressFields = AddressFormat::getOrderedAddressFields($address->id_country); $addressFormatedValues = AddressFormat::getFormattedAddressFieldsValues($address, $addressFields); $patternRules = array(); $addressText = ''; foreach ($addressFields as $line) { if (($patternsList = preg_split(self::_CLEANING_REGEX_, $line, -1, PREG_SPLIT_NO_EMPTY))) { $tmpText = ''; foreach ($patternsList as $pattern) { if ((!array_key_exists('avoid', $patternRules)) || (is_array($patternRules) && array_key_exists('avoid', $patternRules) && !in_array($pattern, $patternRules['avoid']))) { $tmpText .= (isset($addressFormatedValues[$pattern]) && !empty($addressFormatedValues[$pattern])) ? (((isset($style[$pattern])) ? (sprintf($style[$pattern], $addressFormatedValues[$pattern])) : $addressFormatedValues[$pattern]).$separator) : ''; } } $tmpText = trim($tmpText); $addressText .= (!empty($tmpText)) ? $tmpText.$newLine: ''; } } $addressText = preg_replace('/'.preg_quote($newLine, '/').'$/i', '', $addressText); $addressText = rtrim($addressText, $separator); return $addressText; } Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 OK ! Merci d cette précision. Cette modification est valable pour quelle version de PS ou à partir de laquelle, je suis sur 1.6.1.9 comme déjà précisé, ais je pense que cela peut intéresser d'autre utilisateurs ? Savez-vous aussi (oui, certainement !), comment faire afficher le numéro de suivi du colis ? Merci encore de vos réponses... OK ! Merci de cette précision. Cette modification est valable pour quelle version de PS ou à partir de laquelle, je suis sur 1.6.1.9 comme déjà précisé, mais je pense que cela peut intéresser d'autre utilisateurs ? Savez-vous aussi (oui, certainement !), comment faire afficher le numéro de suivi du colis ? Merci encore de vos réponses... Link to comment Share on other sites More sharing options...
Eolia Posted December 8, 2016 Share Posted December 8, 2016 Tout a commencé là: https://www.prestashop.com/forums/topic/468694-transporteur-et-numeros-de-telephone-manquants-dans-facture-v161/ Pour le n° de suivi colis, vu que l'objet order est envoyé au template ('order' => $this->order), la variable {$order->shipping_number} doit être utilisable dans le corps de la facture Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 Merci je vais voir cela ! Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 Heu, désolé, mais la modife dans la base n'a pas supprimé le numéro de téléphone.. Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 J'ai trouvé, il fallait juste mettre des " au lieu des '. Votre code, certainement tapé de mémoire, avait une erreur de saisie ; je m'en suis aperçu en lisant votre topic. Merci. Je regarde maintenant pour le numéro de suivi... Donc il faut juste mettre : {"avoid":["phone","phone_mobile"]}. Et cela est rétrocompatible sur les commandes déjà passée ! Merci !!!! Link to comment Share on other sites More sharing options...
Eolia Posted December 8, 2016 Share Posted December 8, 2016 Ok désolé pour la faute de typo. Par contre, ils ont effectivement modifié de nouveau le code dans la 1.6.1.10 qui n'enregistre plus les adresses déjà générées dans la table ps_order_invoice. C'est peu-être bien dans votre cas mais c'est une connerie car le snapshot devient caduque (Si vous générez une facture plus tard et que le client a déménagé par exemple). Une facture étant un document comptable, il ne doit jamais être modifié. Un conseil, gardez-en une copie en lieu sûr^^ Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 Quand je lis tout ce que je lis sur le forum, je pense que nous allons rester en 1.6.1.9 et ne plus bouger !!!!!! Merci du conseil, oui je sauvegarde tout !! Je reviens vers vous pour le numéro de suivi dès que j'ai testé, car sur un autre site (PS 1.6.0.14) nous avions un paragraphe intitulé "Livraison" sur la facture avec le poids, le mode de transport et le numéro de suivi et tout cela a disparu... Link to comment Share on other sites More sharing options...
IED Factory Posted December 8, 2016 Author Share Posted December 8, 2016 Si cela peut servir à quelqu'un, j'ai rajouté cela dans le temlate de la facture à mettre à l'endroit que vous désirez : <!-- Livraison rajout --> <p> {foreach from=$order->getShipping() item=shipping name=shippingsLoop} <table style="width: 100%; text-align: center; border: 1px solid #CCC; font-size: 9pt;"> <tr> <td colspan = "3" style="background-color: #CCC; color: #000;"> <b>Livraison</b> </td> </tr> <tr> <td style="width: 33%; background-color: #EEE; color: #000;"> <b>Poids</b> </td> <td style="width: 33%; background-color: #EEE; color: #000;"> <b>Nom du transporteur</b> </td> <td style="width: 34%; background-color: #EEE; color: #000;"> <b>Numéro de suivi</b> </td> </tr> <tr> <td style="width: 33%;"> {$shipping.weight|string_format:"%.3f"} Kg </td> <td style="width: 33%;"> {$shipping.state_name} </td> <td style="width: 34%;"> {$shipping.tracking_number} </td> </tr> </table>{/foreach}</p> Un grand merci à Eolia ! Comme d'habitude, sans vous cela serait la galère ! Link to comment Share on other sites More sharing options...
IED Factory Posted February 1, 2017 Author Share Posted February 1, 2017 Je rouvre ce sujet, car sur un PS 1.6.1.4, j'ai beau modifier la table ps_configuration en modifiant PS_INVCE_INVOICE_ADDR_RULES -> {"avoid":["phone","phone_mobile"]} et aussi PS_INVCE_DELIVERY_ADDR_RULES, rien ne change et les numéros apparaissent toujours. Si Eolia passe par là ! 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