Page 1 sur 1

SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 16:07
par miiidooo19
j'ai un souci avec module de paiement 3 fois
le module ne function pas le 30 janvier :) et normalement le 31 aussi :) j'explique pourquoi enfait quand l'utilisateur choisi ce module bah ce dernière calcule la date de 2eme échéance et 3eme automatiquement et quand c'est le 30 ou 31 janvier la première date la 2eme automatiquement est le 30 ou 31 février et le système de la banque n'accepte pas vu que le 30 et 31 n'existe pas dans calendrier :)

le code qui calcule les dates de 2eme et 3eme échéance et le voila
switch ($sNbrEch)
        {
            case 2:
                $sDateEcheance1 = date('d/m/Y');
                $sMontantEcheance1 = number_format($sMontant / $sNbrEch, 2, '.', '');
                $restant = $restant - $sMontantEcheance1;
            
                $sDateEcheance2 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), date('m') + 1));
                $sMontantEcheance2 = $restant;
                
                $sDateEcheance3 = '';
                $sMontantEcheance3 = '';
                
                $sDateEcheance4 = '';
                $sMontantEcheance4 = '';
                break;
            case 3:
                $sDateEcheance1 = date('d/m/Y');
                $sMontantEcheance1 = number_format($sMontant / $sNbrEch, 2, '.', '');
                $restant = $restant - $sMontantEcheance1;
            
                $sDateEcheance2 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), date('m') + 1));
                $sMontantEcheance2 = ($restant > number_format($sMontant / $sNbrEch, 2, '.', '') ? number_format($sMontant / $sNbrEch, 2, '.', '') : $restant);
                $restant = $restant - $sMontantEcheance2;
                
                $sDateEcheance3 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), date('m') + 2));
                $sMontantEcheance3 = $restant;
                
                $sDateEcheance4 = '';
                $sMontantEcheance4 = '';
                break;
            case 4:
                $sDateEcheance1 = date('d/m/Y');
                $sMontantEcheance1 = number_format($sMontant / $sNbrEch, 2, '.', '');
                $restant = $restant - $sMontantEcheance1;
            
                $sDateEcheance2 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), date('m') + 1));
                $sMontantEcheance2 = ($restant > number_format($sMontant / $sNbrEch, 2, '.', '') ? number_format($sMontant / $sNbrEch, 2, '.', '') : $restant);
                $restant = $restant - $sMontantEcheance2;
                
                $sDateEcheance3 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), date('m') + 2));
                $sMontantEcheance3 = ($restant > number_format($sMontant / $sNbrEch, 2, '.', '') ? number_format($sMontant / $sNbrEch, 2, '.', '') : $restant);
                $restant = $restant - $sMontantEcheance3;
                
                $sDateEcheance4 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), date('m') + 3));
                $sMontantEcheance4 = $restant;
                break;
        }
je voulais rajouter une condition if mais ça marche pas :( ça n'affiche rien sur mon site
la ligne que j'ai essayé d'ajouter est la suivante :
if ( ((date('m') == 01) and (date('d')= 30)) or ((date('m') == 01) and (date('d')= 31)) )
					$sDateEcheance2 = date('d/m/Y', mktime(date('H'), date('i'), date('s'), 2,28));
je l'ai ajouter avant calcule de 2eme écheance

Re: SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 16:34
par Shenryu
Salut,

Afin de te protéger de tous les cas, tu devrais utiliser la fonction checkdate
http://php.net/manual/en/function.checkdate.php

Ca te permettra de valider ta date et par exemple de décrémenter le nombre de jours tant qu'elle n'est pas valide.

++

Re: SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 16:40
par miiidooo19
Merci mais le problème ici c'est que j'aurai : date 2eme échéance sera 01/03/2012 et la 3eme c'est 30/03/2012 chose qui est impossible pour une banque faut pas que les deux échéance soient dans le même mois

Re: SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 16:49
par Shenryu
Ca te permettra de valider ta date et par exemple de décrémenter le nombre de jours tant qu'elle n'est pas valide.
Tu décrémentes donc jour = jour -1 ;)

Si le 31 février n'est pas valide, il testera le 30 puis le 29, puis le 28... ;)

Re: SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 17:05
par miiidooo19
Ca te permettra de valider ta date et par exemple de décrémenter le nombre de jours tant qu'elle n'est pas valide.
Tu décrémentes donc jour = jour -1 ;)

Si le 31 février n'est pas valide, il testera le 30 puis le 29, puis le 28... ;)
^^ pas mal ton idée aussi mais j'ai trouvé enfait j'ai utilisé la première condition que j'ai met tt en haut :D si tu regarde bien j'ai juste oublié un = :) du coup ça marche pas mais mtn it's Ok thank you for your helps :)

Re: SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 17:11
par Shenryu
Exact ^^

Il faut que tu prennes en compte qu'une date d'échéance peut provenir d'un achat au mois de décembre et/ou novembre également. Auquel cas, ta date d'échéance 2 peut devenir la 3 ou la 4 ;)

Re: SOS module de paiement 3 fois sous prestashop

Posté : 30 janv. 2012, 17:13
par miiidooo19
Exact ^^

Il faut que tu prennes en compte qu'une date d'échéance peut provenir d'un achat au mois de décembre et/ou novembre également. Auquel cas, ta date d'échéance 2 peut devenir la 3 ou la 4 ;)
oui :) j'ai pris ça en compte aussi :D