Jump to content

Supprimer le téléphone client sur les factures


Recommended Posts

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 by IED Factory (see edit history)
Link to comment
Share on other sites

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 by Eolia (see edit history)
Link to comment
Share on other sites

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 capturespost-712800-0-89576100-1481184279_thumb.jpgpost-712800-0-20249900-1481184281_thumb.jpg

Link to comment
Share on other sites

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

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

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

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

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

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

  • 1 month later...

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...