Bonjour vu que c'est la première fois que je réalise un Post sur ce forum je ne sais pas trop dans quel section mettre ce Topic.

Je vais essayer d'être le plus claire possible.

Je travail sur la Mise en forme d'une facture mise en place par prestashop. 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 Smiley orders .invoice_date+$customer Smiley 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
Modifié par pouc22 (25 Mar 2014 - 14:40)
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 Smiley customer .max_payment_days="30"}
{"+30 days"|date_format:"%d-%m-%Y"}
{else}
{"+45 days"|date_format:"%d-%m-%Y"}
{/if}

quelqu'un aurait-il une idée?
Je travail sur une feuille.tpl et le truc c'est que j'arrive pas à declarer de php.

Mais je suis preneur de toute solution.

Baptiste
J'avoue qu'avec les templates je ne sais pas trop non plus. Celà étant je pense que plus de précision serait nécessaire. Ou devront être stocké les données? BDD, simple affichage, etc?
De plus ces variables sont elles fournies par prestashop? Si oui je ne saurais comment les transcrire désolé.
Bonjour,

Les données ne seront pas stockées elle s'afficheront juste sur la facture.
Et oui ce sont des variables fournies par prestashop.Le problème est qu'il ne va pas me chercher les données correspondant à la variable "max_payement_days" puisque celle-ci fait partie d'une table différente que toutes les autres.

Je ne trouve pas de solutions.

Baptiste
Je vais surement essayer d'insérer max_payement_days dans la table ps_order.
Mais du coup il faudrait que je réalise une requête sql qui me permet de récupérer max_payment-days par rapport à l'id_customer.

Mais je ne sais absolument pas comment la créer.

Auriez vous une solution?

Merci.

Baptiste
Enfin j'ai réussi!!

{assign var="max_payment_days" value={$order Smiley orders .customer.max_payment_days|intval}}
{eval assign="payment_deadline" var=$order Smiley 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_orders
SET ps_orders.max_payment_days=
(SELECT ps_customer.max_payment_days
FROM ps_customer
WHERE 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 Smiley orders .max_payment_days == 30}
{"+30 days"|date_format:"%d-%m-%Y"}
{else}
{if $order Smiley orders .max_payment_days == 45}
{"+45 days"|date_format:"%d-%m-%Y"}{/if}
{if $order Smiley orders .max_payment_days == 0}
{"-1 days"|date_format:"%d-%m-%Y"}{/if}
{/if}





Baptiste