Kearz Posted December 21, 2012 Share Posted December 21, 2012 Bonjour, J'ai un petit problème, je cherche a faire un module (prestashop v1.3.3.0) mais pour cela j'ai besoin de récupérer toutes les commandes d'un statut spécifique. J'ai tenté une requête SQL: SELECT * FROM( SELECT `id_order`, `date_add`, `id_order_state` FROM `ps_order_history` GROUP BY `id_order` ORDER BY `date_add` DESC) as tmp WHERE tmp.`id_order_state`=14 La sous requête me permet de récupérer (normalement) le dernier statut d'une commande. Le problème est que sur certaines commandes il y a un changement de statut dans la même seconde.. Je me retrouve donc avec un choix au "hasard" de MySQL et je récupère pas toutes les commandes que je souhaite. Une idée? Merci d'avance Link to comment Share on other sites More sharing options...
jeckyl Posted December 21, 2012 Share Posted December 21, 2012 Bonjour, pourquoi ne pas utiliser les classes de prestashop ? Order::getOrderIdsByStatus(14); Link to comment Share on other sites More sharing options...
J. Danse Posted December 23, 2012 Share Posted December 23, 2012 (edited) Jeckyl, En 1.3.3.0, cette méthode n'existe pas. Par contre, si ça peut aider Kearz, en voici le code: public static function getOrderIdsByStatus($id_order_state) { $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT id_order FROM '._DB_PREFIX_.'orders o WHERE '.(int)$id_order_state.' = ( SELECT id_order_state FROM '._DB_PREFIX_.'order_history oh WHERE oh.id_order = o .id_order ORDER BY date_add DESC, id_order_history DESC LIMIT 1 ) ORDER BY invoice_date ASC'); $orders = array(); foreach ($result AS $order) $orders[] = (int)($order['id_order']); return $orders; } Edited December 23, 2012 by J. Danse (see edit history) 1 Link to comment Share on other sites More sharing options...
Kearz Posted December 24, 2012 Author Share Posted December 24, 2012 (edited) @Jeckyl: J'utilise prestashop depuis 3 mois et je code des modules que depuis deux semaines. (Alors que j'avais jamais fait de PHP5, juste du 4) Je connais quasiment aucune classe.. (Mais j'ai cherché, elle y est pas dans ma version) Y aurait pas une documentation style javadoc? (J'ai trouver des documentations mais c'est de l'ordre de quelques pages, c'est light) @J Danse: c'est parfait! Merci EDIT: Merci, ça peut être pratique Edited December 24, 2012 by Kearz (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted December 24, 2012 Share Posted December 24, 2012 Je pense qu'il existe une doc, non officielle et réalisé par quelqu'un de la communauté., mais le lien n'a jamais été vraiment publique (surement pour en mesurer l'audience). En attendant, j'ai ceci: http://www.prestaedit.com/ressources/libs/PrestaShop_1.5.2.0.lib Cela permet de voir l'ensemble des classes & méthodes disponibles sur cette version. 1 Link to comment Share on other sites More sharing options...
CorentinDav Posted May 6, 2013 Share Posted May 6, 2013 Bonjour, Est ce que quelqu'un sait pourquoi cette méthode getOrderIdsByStatus est déprecated ? Si oui, y a t'il une méthode de remplacement ? Link to comment Share on other sites More sharing options...
J. Danse Posted May 6, 2013 Share Posted May 6, 2013 Cette méthode n'était utilisée qu'à un endroit et est désormais remplacée par OrderInvoice::getByStatus(). 1 Link to comment Share on other sites More sharing options...
CorentinDav Posted May 7, 2013 Share Posted May 7, 2013 Merci, Savez vous pourquoi cette méthode est deprecated ? Link to comment Share on other sites More sharing options...
J. Danse Posted May 7, 2013 Share Posted May 7, 2013 Aucune idée précise, même si je dirais que - étant donné qu'elle n'était utilisée que là - elle a été remise à une place plus cohérente, surement 1 Link to comment Share on other sites More sharing options...
joseantgv Posted May 19, 2014 Share Posted May 19, 2014 Cette méthode n'était utilisée qu'à un endroit et est désormais remplacée par OrderInvoice::getByStatus(). Cette méthode retourne seulement des ordres marqués comme "Payé". Link to comment Share on other sites More sharing options...
J. Danse Posted May 19, 2014 Share Posted May 19, 2014 Il vous faut passer un argument à la méthode, qui est l'ID du statut souhaité. Link to comment Share on other sites More sharing options...
joseantgv Posted May 19, 2014 Share Posted May 19, 2014 Il vous faut passer un argument à la méthode, qui est l'ID du statut souhaité. Pas d'importance. Si l'ordre n'a pas encore généré la facture, ne trouvez pas l'ordre. 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