Jump to content

[Resolu=>1.4*][Resolu=>1.5*] Facture => afficher le poids de la commande et l'email client


Recommended Posts

Salut !<br><br>J'ai besoin d'afficher le poids de la commande sur la facture...<br><br>Déjà, ou est creer le PDF de la facture ???<br><br>Ensuite, en regardant dans la BDD, j'ai pas trouver l'info du poids total de la commande, elle est aps stockée !<br><br>donc je vais devoir la calculer en fonction de la commande a chaque génération de facture ...???<br><br>Donc autre truc, afficher la tranche de poids utiliser pour le calcul du montant des frais de port !!<br><br>En affichant de "5 a 6 Kg" par exemple !!<br><br>Est ce possible plus facilement ?<br><br>Des pistes ?<br><br>Merci !

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

Salut ,

Salut !

J'ai besoin d'afficher le poids de la commande sur la facture...

Déjà, ou est creer le PDF de la facture ???


/classes/PDF.php

Ensuite, en ragardant dans la BDD, j'ai pas trouver l'info du poids total de la commande, elle est aps stockée !

donc je vais devoir la calculer en fonction de la commande a chaque génération de facture ...???


Effectivement, à chaque fois... Mais pour celà il suffit d'appeler $order->getTotalWeight()

Donc autre truc, afficher la tranche de poids utiliser pour le calcul du montant des frais de port !!

En affichant de "5 a 6 Kg" par exemple !!


Ca je n'ai pas compris ? Le calcul des frais de port est déja fait dans le PDF , on n'y touche plus à postériori.
Tu parles de le configurer ?


Edit : Evite les ?!!! partout , on a l'impression de se faire eng.... ;)
Link to comment
Share on other sites

Salut !

Merci pour la réponse (rapide en plus) ;) !

Bon, j'ai regarder dans classes/PDF.php, ca me semble pas très clair .. mais j'ai cru comprendre que ce que qui m'interesse est vers la ligne 483 ..

L'ideal pour moi est d'écrire Transporteur : La poste (12Kg) dans la facture, donc je va essayer de bidouiller !!!

Je revient si je bloque ... ou si j'y suis arriver.. pour poster la réponse, ca peut servir a d'autres !!

Link to comment
Share on other sites

ooppss !!

v'loi qui est corrigé !

Donc j'ai tenter quelques trucs ..
dont :
ligne 443 de classes/PDF.php (ou 483 en 1.4.x


$pdf->Cell(70, 6, self::l('Carrier:').($order->gift ? ' '.Tools::iconv('utf-8', self::encoding(), $carrier->name) : '').$order->getTotalWeight().'Kg', 'L');
/code]

Mais ca m'affiche :
Transporteur : 18Kg
La poste


Comment faire pour que ca affiche sur une ligne ? :
Transporteur : La poste ( 18Kg)

?
Link to comment
Share on other sites


il y a une raison pour utiliser $order->gift ?


Alors là, faut pas me demander a moi ... c'est le code "d'origine" ...


sinon iconv n'est pas utilse non plus , c'est pour les devises:
$pdf->Cell(70, 6, self::l(‘Carrier: ’).$carrier->name.$order->getTotalWeight().‘Kg’, ‘L’);



Merci !!

Ton code marche avec quelques petites modifs qui donne :
$pdf->Cell(70, 6, self::l('Carrier:').' '.($carrier->name.' ('.$order->getTotalWeight().'Kg)'), 'L'); 

Link to comment
Share on other sites

Oui, et puis tu as mis des ` que mon php aiment pas.. j'ai mis des ' ;)

et j'en ai profiter pour tout mettre sur une seule ligne.. ( plus propre je trouve) et d'ajoute l'email du client sur la facture ;)

Merci en tout cas pour l'aide !!

Pour l'ajout de l'email dans la facture
Ligne 414 pour la 1.3.6 :

       //Ajout de l'email du client
       $pdf->Cell($width, 10, $invoice_customer->email, 0, 'L');
       //Fin ajout email du client



Et le "bloc" sur une ligne avec en plus le poids de la commande :
vers la ligne 447

       //Modif pour inclure le poids dans la facture et mise sur une ligne
       $pdf->Cell(55, 6, self::l('Order #').sprintf('d', self::$order->id), 'LRB', 0);
       $pdf->Cell(50, 6, self::l('Carrier:').' '.($carrier->name.' ('.round($order->getTotalWeight(),2).'Kg)'), 'LRB'); 
       $pdf->Cell(0, 6, self::l('Payment method:').Tools::iconv('utf-8', self::encoding(), $order->payment), 'LRB');
       /*

       $pdf->Ln(5);

       $pdf->Cell(55, 6, (isset($shipping_date) ? self::l('Shipping date:').' '.Tools::displayDate($shipping_date, self::$order->id_lang) : ' '), 'LB', 0);

       $pdf->Cell(70, 6, ($order->gift ? self::l('Gift-wrapped order') : Tools::iconv('utf-8', self::encoding(), $carrier->name)), 'LRB');

       $pdf->Cell(0, 6, Tools::iconv('utf-8', self::encoding(), $order->payment), 'LRB');
       */

       $pdf->Ln(15);



ca peut servir a d'autres ;)

Link to comment
Share on other sites

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

Bonsoir,

Merci pour ces idées.

J'aurais également voulu ajouter une colonne à ma facture avec le poids unitaire de chaque produit.

Ca permet de vérifier que tous les poids des produits sont bien renseignés.

Dans le cas contraire, penser que le poids total est erroné.

 

Merci d'avance pour votre aide.

PS 1.4.3

Link to comment
Share on other sites

  • 2 months later...
  • 8 months later...

Bonjour,

moi aussi je veut ajouter une ligne au dessous dans la colonne Livraison sans gâcher l'ancien affichage de ma facture : j'aurais 5 lignes a la Facturation et 6 à la livraison.

 

le faite que je veux ajouter cette ligne c'est que j'utilise le module relais et dans l'adresse de livraison je n'ai que l'adresse du point relais or je veut ajouter le nom et prénom du client au dessous.

 

une idée ??

merci d'avance

Link to comment
Share on other sites

  • 4 months later...

Salut !

 

Je deterre ce post car avec la version 1.5.2 ca marche plus ..

 

Donc j'ai créé un repertoire themes/montheme/pdf/ avec dedans invoice.tpl pour personnaliser mes factures..

 

j'ai ajouter là où je voulais :

<b>Poids de la commande :{round($order->getTotalWeight(),2)} Kg</b><br />
<b> Transporteur : {$carrier->name}</b><br />

 

mais carrier->name ne retourne rien .. :mellow:

 

en bidouillant, j'ai pu recuperer l'id du carrier ( order->id_carrier )

mais après comment mettre le nom du transporteur ??

 

j'ai tenté un

$carrier = new Carrier($order->id_carrier, $order->id_lang)

sans resultat ( page blanche )

 

Un peu d'aide ?? :wub:

Link to comment
Share on other sites

Salut !

 

comme un grand j'ai trouvé !

 

il faut fait un override de la classe /classes/pdf/HTMLTemplateInvoice.php

(copier ce fichier dans /override/classes/pdf/ )

 

Modifier ce fichier dans la fonction getcontent :

public function getContent()
{
 $country = new Country((int)$this->order->id_address_invoice);
 $invoice_address = new Address((int)$this->order->id_address_invoice);
 $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array(), '<br />', ' ');
 $formatted_delivery_address = '';
 //***/
 $carrier = new Carrier((int)$this->order->id_carrier, (int)$this->order->id_lang);
 if ($this->order->id_address_delivery != $this->order->id_address_invoice)
 {
  $delivery_address = new Address((int)$this->order->id_address_delivery);
  $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');
 }
 $customer = new Customer((int)$this->order->id_customer);
 $this->smarty->assign(array(
  'order' => $this->order,
  'order_details' => $this->order_invoice->getProducts(),
  'cart_rules' => $this->order->getCartRules($this->order_invoice->id),
  'delivery_address' => $formatted_delivery_address,
  'invoice_address' => $formatted_invoice_address,
  'tax_excluded_display' => Group::getPriceDisplayMethod($customer->id_default_group),
  'tax_tab' => $this->getTaxTabContent(),
  'customer' => $customer,
  'carrier' => $carrier
 ));
 return $this->smarty->fetch($this->getTemplateByCountry($country->iso_code));
}

 

supprimer le fichier cache/class_index.php pour les soucis de cache..

et voila, le invoice.tpl permet d'afficher le transporteur avec :

{carrier->name}

 

:)

Link to comment
Share on other sites

  • 8 months later...

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