Jump to content

Transporteur Et Numeros De Telephone Manquants Dans Facture V.1.6.1


Recommended Posts

Parmi les joyeusetés des dernière versions 1.6.1 vous avez peut-être remarqué que les transporteurs ont disparu des factures ?
 
Je vous propose donc le patch:
post-241780-0-35803300-1441983494_thumb.png
Vu que le système de génération de celle-ci à changé, il va vous falloir remplacer 3 fichiers et en ajouter 1.
 
Dans votre_boutique/classes/pdf/ remplacer HTMLTemplateInvoice.php
 
Dans votre_boutique/pdf/ remplacer ces 2 fichiers: invoice.tpl et invoice.style-tab.tpl
 
Et ajoutez-y celui-ci : invoice.carrier-tab.tpl
 
Les fichiers ci-dessus sont inclus dans le zip:Ajout_transporteur_facture.zip
 
Pas moyen de faire un PR avec édition de plusieurs fichiers + ajout donc je poste ici.
 
Jérôme, si tu passes par là...

Valable pour la les versions : 1.6.1.1, 1.6.1.2, 1.6.1.3, 1.6.1.4 ...

 

Pour le problème des numéros de téléphone et/ou n° TVA voir le post https://www.prestashop.com/forums/topic/468694-transporteur-manquant-dans-facture-v161/page-2?do=findComment&comment=2235421

Edited by Eolia (see edit history)
  • Like 9
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
  • 2 weeks later...
  • 2 weeks later...

Super...

 

N'y aurait t-il pas une solution pour afficher le téléphone du client ?

 

Si en attendant de faire mieux car il serait préférable de modifier la classe AddressFormat, remplacez le début de la fonction getContent() de classes/pdf/HTMLTemplateInvoice.php  par

    public function getContent()
    {
		$invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true);
		$deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true);

		$invoice_address = new Address((int)$this->order->id_address_invoice);
		$country = new Country((int)$invoice_address->id_country);
		$invoice_phones = '';
		if(isset($invoice_address->phone))
			$invoice_phones .= '<br />'.$invoice_address->phone;
		elseif(isset($invoice_address->phone_mobile))
			$invoice_phones .= '<br />'.$invoice_address->phone_mobile;
		if ($this->order_invoice->invoice_address) {
			$formatted_invoice_address = $this->order_invoice->invoice_address.$invoice_phones;
		} else {
			$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ').$invoice_phones;
		}

		$delivery_address = null;
		$formatted_delivery_address = '';
		$delivery_phones = '';

		if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) {
			$delivery_address = new Address((int)$this->order->id_address_delivery);
			if(isset($delivery_address->phone))
				$delivery_phones .= '<br />'.$delivery_address->phone;
			elseif(isset($delivery_address->phone_mobile))
				$delivery_phones .= '<br />'.$delivery_address->phone_mobile;
			if ($this->order_invoice->delivery_address) { 		
				$formatted_delivery_address = $this->order_invoice->delivery_address.$delivery_phones;
			} else {				
				$formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ').$delivery_phones;
			}
		}
...

;)

Edited by Eolia (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

Bonjour,

 

A quand l'adresse du relais sur la facture, à la place de celle de la cliente, lorsqu'une cliente choisi un envoi en relais?

Actuellement c'est l'adresse du domicile qui apparait, même pour les envois en relais.

J'ai plusieurs clientes qui m'ont fait la remarque que l'envoi est à domicile, comme l'indique pas facture, pas un relais

J'espère qu'il y aura bientôt une solution pour ce problème

Link to comment
Share on other sites

et ton patch lui fonctionne pour cette nouvelle version certainement et il date déjà de septembre pourtant, pourquoi n'a -t-il pas été intégré comme promis ?

Link to comment
Share on other sites

Juste pour info, pour ceux qui désirent avoir les n° de téléphones client et N° de TVA, s'ils existent, sur les factures/bons de livraison:

  • Vous trouverez 2 nouvelles lignes dans la table ps_configuration : PS_INVCE_INVOICE_ADDR_RULES et PS_INVCE_DELIVERY_ADDR_RULES qui déterminent quels sont les champs à ne pas afficher sur les factures/bons de livraison.
  • Ces lignes comportent la valeur suivante: {"avoid":["vat_number","phone","phone_mobile"]}
  • Videz entièrement ces 2 tableaux comme ceci: {"avoid":[]}

Ces nouveaux paramètres ont été introduits (et inscrits en base de données lors de l'install/maj) depuis la 1.6.1.1 mais Prestashop a juste oublié de laisser la possibilité de les configurer...

Edited by Eolia (see edit history)
  • Like 1
Link to comment
Share on other sites

Ces nouveaux paramètres ont été introduits (et inscrits en base de données lors de l'install/maj) depuis la 1.6.1.1 mais Prestashop a juste oublié de laisser la possibilité de les configurer...

Comment c'est déjà la nouvelle religion SEMVER ?

Ah oui aucun changement majeur seulement des correction de bugs sur les mineures.

Bon ben les bugs qui ont plus de 1 an avec leurs PR on n'a pas le temps de les regarder (on est bizi), mais si on ajoutait des nouveaux trucs que personne demande.

Comme https://github.com/PrestaShop/PrestaShop/commit/9be1298b053c24f1fffc7d0a1edaab6818b3350a

Notons le "useless" du commentaire du commit

Link to comment
Share on other sites

Mise à jour sql faite selon Eolia.

Je suis en 1.6.4. Et j'ai bien le tel sur le bon de livraison, mais pas sur la facture.

En attendant une mise à jour du BO pour permettre le choix des champs à afficher.

Normal si vous le faites sur une ancienne commande où l'adresse a déjà été générée 1 fois.

Si vous voulez forcer la re-génération à chaque fois (pratique si le client a fait une erreur ou que l'adresse est modifiée) remplacez ce bloc dans /pdf/HTMLTemplaceInvoice.php

        if ($this->order_invoice->invoice_address) {
            $formatted_invoice_address = $this->order_invoice->invoice_address;
        } else {
            $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
        }

par:

$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');

Idem quelques lignes + bas pour le bon de livraison :

            if ($this->order_invoice->delivery_address) {
                $formatted_delivery_address = $this->order_invoice->delivery_address;
            } else {
                $delivery_address = new Address((int)$this->order->id_address_delivery);
                $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');
            }

par:

$delivery_address = new Address((int)$this->order->id_address_delivery);
                $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');

Enjoy :)

Link to comment
Share on other sites

Oui, d'habitude je poste des trucs qui marchent, c'est plus pratique^^

 

 mais alors tu n'as rien à faire là... ça risque de donner une mauvaise image des personnes responsables payées pour faire ce que tu fais toi gratuitement, c'est pas bien ça !

Link to comment
Share on other sites

Bon, je suis en cours de migration de 1.5.6.2 vers 1.6.1.4 mais je me demande si je continue ou si j'arrête de suite.....

 

J'ai atterri sur fil et je découvre qu'il y a encore énormément de travail à faire, je viens juste de trouver comment corriger les avoirs et je vois qu'il faut aussi modifier les factures !!

 

Merci Eolia pour vos corrections de bug. :)

 

Par contre personne n'a besoin du poids ni du numéro de suivi ? Ils ont également disparus alors qu'ils sont bien présents en 1.5.6.2 !!

 

Je vais regarder, car si j'utilise le template "invoice.tpl" d'une version 1.5.2.6 dans la version 1.6.4.1, on retrouve bien ces informations sur la facture....

Link to comment
Share on other sites

Par contre en 1.6.1.4, le numéro de TVA apparaît, lorsqu'il y en a un, dans l'entête "invoice.summary-tab.tpl" .

 

Du coup en me servant de la proposition d'EOLIA, j'ai créé une deuxième entête carrier-tab.tpl qui se place en dessous du invoice.summary-tab.tpl et qui affiche le nom du transporteur, le poids du colis et le numéro de suivi.

 

Si cela peut servir à quelqu'un je pourrai le mettre à disposition ici :)

Link to comment
Share on other sites

Normal si vous le faites sur une ancienne commande où l'adresse a déjà été générée 1 fois.

Si vous voulez forcer la re-génération à chaque fois (pratique si le client a fait une erreur ou que l'adresse est modifiée) remplacez ce bloc dans /pdf/HTMLTemplaceInvoice.php

        if ($this->order_invoice->invoice_address) {
            $formatted_invoice_address = $this->order_invoice->invoice_address;
        } else {
            $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
        }

par:

$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');

Idem quelques lignes + bas pour le bon de livraison :

            if ($this->order_invoice->delivery_address) {
                $formatted_delivery_address = $this->order_invoice->delivery_address;
            } else {
                $delivery_address = new Address((int)$this->order->id_address_delivery);
                $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');
            }

par:

$delivery_address = new Address((int)$this->order->id_address_delivery);
                $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');

Enjoy :)

 

Bonjour Eolia, merci pour ce retour.

J'ai bien fait les modifications, j'ai eu beau vider le cache mais le numéro de téléphone n'apparait toujours pas sur mes anciennes factures.

Cela marche bien pour les bons de commandes.

 

Je ne sais pas trop quoi faire.

Link to comment
Share on other sites

On est bien d'accord ?

  1. Vous avez vidé ou supprimé (le résultat est le même) les 2 entrées PS_INVCE_INVOICE_ADDR_RULES et PS_INVCE_DELIVERY_ADDR_RULES dans ps_configuration de la base de votre boutique
  2. Vous avez modifié les 2 blocs du fichier /pdf/HTMLTemplaceInvoice.php

Et les n° de téléphone ne s'affichent toujours pas pour vos clients français ?

Link to comment
Share on other sites

Ben non, il faut l'adapter, mais perso j'en ai marre de faire des correctifs qui ne ont pas pris en compte et devoir recommencer à chaque nouvelle version.

Quand Prestashop sera capable de sortir une VRAIE version stable, je me pencherai peut-être sur le problème.

 

Si vous avez le temps, ajoutez au fichier de la 1.6.1.4 les éléments manquants concernant le carrier.

  • Like 2
Link to comment
Share on other sites

  • 3 months later...

Salut,

merci pour ton post, qui m'a bien servi.

Pour info, sur la 1.6.1.5, ils ont rajouté un template invoice.shipping-tab.tpl

Malgré cela je n'avais pas le transporteur qui remontait.

Il m'a donc quand même fallu ajouter dans la surcharge de HTMLTemplateInvoice.php, la ligne :

'carrier' => $debug ? null : $carrier

A priori, ce sera corrigé dans la prochaine version (j ai jeté un oeil à la 1.7 en dév)

Link to comment
Share on other sites

Il se passe que j'ai les pieds sur terre et que j'ai de vrais clients qui vivent de leurs boutiques et ne veulent pas finir dans le mur avec les expérimentations plutôt hasardeuses de l'équipe en cours.

 

Une boutique, c'est un gagne-pain pas un centre aéré avec 3 robes et 2 tee-shirts en promo.

 

Le e-commerce c'est des clients, des produits en masse, des transporteurs, des prix, des retours, des factures, un bilan comptable, des réappros. Tout ça doit fonctionner, rapidement et correctement avec du traffic ou pas.

 

La communauté de contributeurs fr s'est réduite comme peau de chagrin et personne ne s'est demandé pourquoi...

 

Je resterai présent sur ce forum, mais je ne soutiens en aucune façon cette future version apocalyptique.

  • Like 2
Link to comment
Share on other sites

J'entends bien tous tes arguments qui sont tout à fait légitimes.

Mais c'est quoi le souci au juste de la 1.7 ? y a une roadmap où l on peut voir cela ? (j ai voulu voir le changelog mais il n'est pas accessible)

 

Edit :

je viens de lire ça du coup : http://www.creanico.fr/prestashop/prestashopnouveautes-de-prestashop-1-7/

c'est sûr que là c'est plutot la grosse transition en perspective... rien ne sera plus compatible (surtout niveau thème).

de plus, mise en avant commercial des modules omniprésente... menu repensé (et les devs n'ont pas l'air trés contents d'aprés les coms...)

je continue de lire...

je comprends mieux tes remarques... je risque de rester en 1.6 pour un moment aussi :/

 

Bon par contre là on t'a trollé ton post ! ^^

Edited by mattheoh (see edit history)
Link to comment
Share on other sites

Roadmap ? Je crois qu'ils n'ont plus personne capable de faire des powerpoints :D (certains comprendrons)

Et de toute manière, même si ils avaient on a tellement entendu les même arguments vide de sens.

 

Après tant d'années (si si) a demander a ce que le cœur de métier soit corrigé pour répondre à ce pour quoi PrestaShop est censé répondre.

Les seuls résultats sont encore une nouvelle série d'annonce, d'ajouts de fonctionnalités +/ bancales ou encore niaiseries d'informaticiens - un commerçant se moque d'un PSR2/Symfony et tous le monde ne peux pas se prétendre la Pomme et clamer c'est une révolution. Et ne parlons pas des forces lilliputiennes au développement.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Bonjour à tous !

 

un grand merci pour ce post qui me change la vie. Tous les tutos que j'ai lus pour ça me demandaient beaucoup de code. Là, j'ai trouvé la solution en 2 réponses. 

 

Ma version : 1.6.1.4

Mon hébergeur : OVH

 

Le changement sur la bdd est bon.

L'ajout des infos souhaitées par le biais de la config du pays est bonne

Le changement des lignes pour la ré-génération des factures a fonctionné. Il fallait juste que je trouve mon fichier HTMLTemplateInvoice.php

 

Je suis donc un homme heureux et mes collaborateurs aussi. 

 

Bonne journée

Link to comment
Share on other sites

  • 3 weeks later...

Bon, je suis en cours de migration de 1.5.6.2 vers 1.6.1.4 mais je me demande si je continue ou si j'arrête de suite.....

 

J'ai atterri sur fil et je découvre qu'il y a encore énormément de travail à faire, je viens juste de trouver comment corriger les avoirs et je vois qu'il faut aussi modifier les factures !!

 

Merci Eolia pour vos corrections de bug. :)

 

Par contre personne n'a besoin du poids ni du numéro de suivi ? Ils ont également disparus alors qu'ils sont bien présents en 1.5.6.2 !!

 

Je vais regarder, car si j'utilise le template "invoice.tpl" d'une version 1.5.2.6 dans la version 1.6.4.1, on retrouve bien ces informations sur la facture....

 

Bonsoir.

Volontiers s'il est possible d'obtenir les fichiers d'une v.1.5.xx ?

Cdt.

Link to comment
Share on other sites

  • 10 months later...

Ben non, il faut l'adapter, mais perso j'en ai marre de faire des correctifs qui ne ont pas pris en compte et devoir recommencer à chaque nouvelle version.

Quand Prestashop sera capable de sortir une VRAIE version stable, je me pencherai peut-être sur le problème.

 

Si vous avez le temps, ajoutez au fichier de la 1.6.1.4 les éléments manquants concernant le carrier.

 

Bonjour Eolia,

 

Mai 2017, je suis maintenant sur la version PrestaShop 1.6.1.12

 
Je désespère en me rendant compte qu'actuellement, les factures restent en prix unitaire TTC :(
Pas cool pour nos clients à 99,9% particuliers.
 
Aviez vous trouver une solution à l'époque ?
 
Merci beaucoup par avance,
Sébastien
Link to comment
Share on other sites

Je ne comprends pas la question :(

 

Les prix unitaires sont en HT et non en TTC, puis détails des taxes et total TTC comme sur une facture classique (type EDF)

 

Quel est le souci ?

 

Bonjour Eolia,

 

Désolé pour mon manque de précision.

 

En fait, mes clients particuliers ne comprenaient justement pas pourquoi les prix unitaires étaient en HT sans TTC, que le total produit et le total livraison étaient en HT sans TTC et à la fin, on avait un total juste en TTC.

 

Du coup techniquement j'ai réussi à solutionner le truc en allant dans invoice.tpl et remplacer tax_excl par tax_incl par le champ que je voulais voir apparaitre en TTC et non plus en HT.

 

Merci et bon dimanche !

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...