Jump to content

[RESOLU]Transformation d'un nombre en date.Date d'échéance de paiement(facture)


Recommended Posts

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 by pouc (see edit history)
Link to comment
Share on other sites

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

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

  • 2 weeks later...

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_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[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 by pouc (see edit history)
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...