pouc Posted March 13, 2014 Share Posted March 13, 2014 (edited) Bonjour, Je vais essayer d'être le plus claire possible.Je travail sur la Mise en forme d'une facture mise en place par le module m4pdf. je dois réaliser une date de facturation. celle-ci se compose de la date de création de la facture + pour certains clients des jours d'échéances en plus, qui peuvent-être sois de 30 sois de 45 jours. De plus si la date arrive à un nouveau mois l'échéance est repoussé a la fin de ce mois.voila comment ça se présente pour l'instant<tr><td><strong>{l s='Date de facturation' mod='m4pdf'}</strong></td><td>{dateFormatLanguage date=$order [order].invoice_date+$customer [customer].max_payment_days}</td></tr>invoice_date : c'est la date de création de la facture.max_payment_days : c'est le nombre de jour d'échéance.Quelqu'un serait-il comment faire?Merci.Baptiste Edited March 25, 2014 by pouc (see edit history) Link to comment Share on other sites More sharing options...
webpulser Posted March 13, 2014 Share Posted March 13, 2014 En smarty, il y a une fonctionnalité non documenté qui est expliqué ici http://www.smarty.net/forums/viewtopic.php?p=64367 Je ne l'ai jamais utiliser. Sinon tu peux calculer tout ça très facilement en php avec l'objet Date. Link to comment Share on other sites More sharing options...
pouc Posted March 13, 2014 Author Share Posted March 13, 2014 intégrer du php sa irait avec mon script déjà présent? Link to comment Share on other sites More sharing options...
webpulser Posted March 13, 2014 Share Posted March 13, 2014 Oui il suffit d'assigner la bonne date dans ton controller, comme partout sur Prestashop. Link to comment Share on other sites More sharing options...
pouc Posted March 13, 2014 Author Share Posted March 13, 2014 Et qu'est ce que ça donnerais si je voulais utiliser la smarty? parce que je galère un petit peu. Link to comment Share on other sites More sharing options...
pouc Posted March 13, 2014 Author Share Posted March 13, 2014 J'ai un peu avancé, mais je bloque. en entrant le code suivant il ne m'affiche que la date d'aujourd'hui +30 jours et il ne va pas me chercher la valeur de max payment day. {if $customer[customer].max_payment_days="30"} {"+30 days"|date_format:"%d-%m-%Y"} {else} {"+45 days"|date_format:"%d-%m-%Y"} {/if} Tu aurais une solution? Link to comment Share on other sites More sharing options...
pouc Posted March 14, 2014 Author Share Posted March 14, 2014 Je pense que je pourrais régler mon problème si je pouvais rajouter "max_payment_days" dans la table ps_order_detail vu que je n'arrive pas à appeler une autre table dans mon code. Il faudrait donc que dans la table order_detail, le max_payment_days puisse se renseigner par rapport à "l'id customer." Je suppose qu'il faut que je fasse un override de AdminOrder en y ajoutant une requête sql permettant cette fonction. Mais alors comment réaliser cette requête j'en n'ai absolument aucune idée. Quelqu'un aurait-il une idée? Merci Baptiste Link to comment Share on other sites More sharing options...
pouc Posted March 25, 2014 Author Share Posted March 25, 2014 (edited) Enfin j'ai réussi et je remercie Tuk66 développeur du module M4pdf qui m'a donné la solution. {assign var="max_payment_days" value={$order[orders].customer.max_payment_days|intval[spam-filter] {eval assign="payment_deadline" var=$order[orders].invoice_date|add_days:$max_payment_days} {dateFormatLanguage date=$payment_deadline full=0} Voici le code utilisé dans un fichier .tpl qui va me chercher la variable des dates d’échéances de paiement et qui me les traduit en date. Dans le doute je vous donne aussi un petit bricolage sur lequel je bossais et qui me donnait le même résultat. 1- créer une variable "max_payment_days" dans la table ps_orders 2- traduire cette requête sql en requête prestashop : UPDATE ps_ordersSET ps_orders.max_payment_days=(SELECT ps_customer.max_payment_daysFROM ps_customerWHERE ps_customer.id_customer = ps_orders.id_customer) 3- L'introduire dans AdminCustomerController, lors de l'inscription d'un nouveau client. 4- Ecrire se code sur le fichier .tpl : {if $order[orders].max_payment_days == 30} {"+30 days"|date_format:"%d-%m-%Y"} {else} {if $order[orders].max_payment_days == 45} {"+45 days"|date_format:"%d-%m-%Y"}{/if} {if $order[orders].max_payment_days == 0} {"-1 days"|date_format:"%d-%m-%Y"}{/if} {/if} Baptiste Edited March 25, 2014 by pouc (see edit history) 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