Slyvore Posted February 25, 2016 Share Posted February 25, 2016 Bonjour, Je recherche depuis plusieurs heures comment changer le tri sur le Bon de Livraison d'une boutique. J'ai localisé le template d'affichage du BL, mais pas moyen de faire un tri sur la variable $order_details (c'est un tableau d'objet product? ou un object contenant les info de la commande et une collection (tableau) d'objet product?) Je pense que le code de tri est à rajouter dans pdf/delivery-slip.tpl ici : <!-- PRODUCTS TAB --> <table style="width: 100%"> <tr> <td style="width: 22%; padding-right: 7px; text-align: right; vertical-align: top"> <!-- CUSTOMER INFORMATIONS --> <b>{l s='Order Number:' pdf='true'}</b><br /> {$order->getUniqReference()}<br /> <br /> <b>{l s='Order Date:' pdf='true'}</b><br /> {dateFormat date=$order->date_add full=0}<br /> <br /> <b>{l s='Payment Method:' pdf='true'}</b><br /> <table style="width: 100%;"> {foreach from=$order_invoice->getOrderPaymentCollection() item=payment} <tr> <td style="width: 50%">{$payment->payment_method}</td> <td style="width: 50%">{displayPrice price=$payment->amount currency=$order->id_currency}</td> </tr> {foreachelse} <tr> <td>{l s='No payment'}</td> </tr> {/foreach} </table> <br /> {if isset($carrier)} <b>{l s='Carrier:' pdf='true'}</b><br /> {$carrier->name}<br /> <br /> {/if} <!-- / CUSTOMER INFORMATIONS --> </td> <td style="width: 78%; text-align: right"> <table style="width: 100%"> <tr style="line-height:6px;"> <td style="text-align: left; background-color: #4D4D4D; color: #FFF; padding-left: 10px; font-weight: bold; width: 60%">{l s='ITEMS TO BE DELIVERED' pdf='true'}</td> <td style="background-color: #4D4D4D; color: #FFF; text-align: left; font-weight: bold; width: 20%">{l s='REFERENCE' pdf='true'}</td> <td style="background-color: #4D4D4D; color: #FFF; text-align: center; font-weight: bold; width: 20%">{l s='QTY' pdf='true'}</td> </tr> <!-- -------------------------------------------------------------------------------------------------------------------------------- --> Code de tri ) rajouter? <!-- -------------------------------------------------------------------------------------------------------------------------------- --> {foreach $order_details as $product} {cycle values='#FFF,#DDD' assign=bgcolor} <tr style="line-height:6px;background-color:{$bgcolor};"> <td style="text-align: left; width: 60%">{$product.product_name}</td> <td style="text-align: left; width: 20%"> {if empty($product.product_reference)} --- {else} {$product.product_reference} {/if} </td> <td style="text-align: center; width: 20%">{$product.product_quantity}</td> </tr> {/foreach} </table> </td> </tr> </table> <!-- / PRODUCTS TAB --> Si vous avez une idée, je suis preneur, car je tourne en rond depuis un bon moment. Link to comment Share on other sites More sharing options...
AG261 Posted February 25, 2016 Share Posted February 25, 2016 Bonjour, D'abord faut comprendre que les vues (les .tpl dans notre cas) servent à afficher des valeurs et non à faire des traitements, si besoin de traiter ou re traiter les données, il faut le faire dans les modèles ou dans un moindre mesure dans les contrôleurs. De plus presta est te permet de surcharger facilement les classes de modeles ou de controlleurs. Ceci étant, je suis pas là pour te faire la morale essaye ça pour voir : {* On declare un variable tableau *} {assign var="arrayTemp" value=array()} {* On met les $produit dans le tableau avec le product_name comme clé *} {foreach $order_details as $product} {append var="arrayTemp" value=$product index=$product.product_name} {/foreach} {* On trie le tableau suivant la clé *} {ksort($arrayTemp)} {* On boucle le resultat *} {foreach $arrayTemp as $product} {cycle values='#FFF,#DDD' assign=bgcolor} <tr style="line-height:6px;background-color:{$bgcolor};"> <td style="text-align: left; width: 60%">{$product.product_name}</td> <td style="text-align: left; width: 20%"> {if empty($product.product_reference)} --- {else} {$product.product_reference} {/if} </td> <td style="text-align: center; width: 20%">{$product.product_quantity}</td> </tr> {/foreach} Bon dev 1 Link to comment Share on other sites More sharing options...
Slyvore Posted February 25, 2016 Author Share Posted February 25, 2016 Super!!!! Ca marche! Je me doutais bien qu'il y avait un modèle et un contrôleur derrière, mais comme j'ai pas touché sérieusement de code depuis 3 ans, je suis un peu perdu Ils sont où les modèles pour voir si j'arrive au même résultat dans le modèle en triant directement dans le order_details? En tout cas, merci beaucoup! 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