THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 test isPaid()

(18-05-2015 12:39:19)


Bonjour,

je me trouve avec un bug que je ne comprends pas
j'ai plusieurs module que doivent se declancher au changement de status de la commande

le module ATOS
au changement de status (payee)

        
if ($order->isPaid() && $atos->isPaymentModuleFor($order)){
.....
}

fonctionne l'email part

le deuxieme module doit envoyer des fichiers recapitulatifs seulement quand ca passe a  'payee'

      
if ($order->isPaid(true)) {
.....
}

cela ne marche pas
j'ai mis un tlog avant le if -> je le retrouve dans les logs
un tlog dans le if  -> rien

la condition retourne false

je ne comprends pas pourquoi
une idee ?

j'ai bien dans Model/Order.php

    public function isPaid($exact = true)
    {
        return $this->hasStatusHelper(
            $exact ?
            OrderStatus::CODE_PAID :
            [ OrderStatus::CODE_PAID, OrderStatus::CODE_PROCESSING, OrderStatus::CODE_SENT ]
        );
    }

thelia v 2.1.2

Offline

#2 Re: test isPaid()

(18-05-2015 14:03:39)


isPaid(true) retourne false quand le statut de la commande n'est pas OrderStatus::CODE_PAID


OpenStudio Toulouse

Offline

#3 Re: test isPaid()

(18-05-2015 14:56:27)


Je suis d'accord avec toi ROADSTER31
mais la commande vient de passer a 'payee'
dans les logs je vois bien
le module ATOS se declencher
puis mon module mais il bloque au if
hors la commande vient de passer a 'payee' donc OrderStatus::CODE_PAID
cela devrait retourner true

l'envoie de l'email avec les fichiers attaches doit se faire seulement a l'etat 'payee' pas les autres
d'ou if ($order->isPaid(true))

Offline

#4 Re: test isPaid()

(18-05-2015 16:15:29)


Y'a pas a tortiller, tu lis le code comme moi. Si ça retourne false, c'est que le statut N'EST PAS OrderStatus::CODE_PAID. Je ne vois pas quoi te dire d'autre.


OpenStudio Toulouse

Offline

#5 Re: test isPaid()

(18-05-2015 16:43:53)


ne comprenant pas pourquoi
j'ai modifie la priorite de l'event 120 au lieu de 128
malgres que dans les logs le module s'execute apres Atos

je continue a prospecter

Offline

#6 Re: test isPaid()

(19-05-2015 07:52:59)


Peux t on lister les modules rattaches a un evenement ?
si oui comment ?

je pense avoir un probleme a ce niveau
certains modules ne s'executent pas pour l'event TheliaEvents::ORDER_UPDATE_STATUS

Merci

Offline

#7 Re: test isPaid()

(19-05-2015 08:20:49)


si oui comment ?

cd local/modules
find . -type f -print | xargs grep ORDER_UPDATE_STATUS


OpenStudio Toulouse

Offline

#8 Re: test isPaid()

(19-05-2015 15:50:48)


Merci Roadster31

je pense avoir trouve mon erreur, enfin je verrai a la prochaine commande

Offline

#9 Re: test isPaid()

(19-05-2015 21:19:01)


A l'occasion, tu nous diras quel était la cause du problème.


OpenStudio Toulouse

Offline

#10 Re: test isPaid()

(21-05-2015 09:38:58)


ce que je pense avoir compris

1- je n'avais pas modifie tous les isPaid() suite au PR#1283 du changement de la valeur par defaut function isPaid($exact = true) voir les modifs completes faites par Lunika PR #1289

2- ce qui est bizarre
si le client payait par ATOS je n'avais pas d'erreur mais les modules devant se declencher avec l'event ORDER_UPDATE_STATUS ne s'executait pas
apres avoir fait les modifs en 1, un client a paye via Paypal la j'ai eu l'erreur, j'avais malencontreusement efface le template de l'email qui me renvoie les fichiers de la commande pour un traitement par l' AS400 - j'ai rajoute une Exception

3- j'avais un probleme sur l'ordre des priorites des modules
ce serait bien de pouvoir lister les modules pour un event donne avec l'ordre d'execution (priorite) - un module peut etre... wink

maintenant tout fonctionne correctement tongue