osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> besoin d'un gourou sql, pour une requete dans ORDERS
licorne
posté 14 Apr 2005, 17:36
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 250
Inscrit : 27-February 05
Membre no 4932



bonjour,

dans le cadre de l'adaptation de la CRELOAD pour supporter la contrib comptes points et parrainage, ICI, j'aurais besoin d'un coup de main SQL pour attaquer la table orders.

le recherche, en francais est la suivante :

j'aurais voulu recuperer les N ( nombre determiné dans l'admin) dernières commandes non annulées passées par le client, et verifier que l'une d'entre elles n'a pas le champs 'paiment info' = Compte Points.

Si il n'y a pas ==> compte points accessible en paiment

si non, lui informer qu'il lui reste N-la position du paiment en compte point avant de pouvoir payer en points...


le but est d'empecher de multiplier le nombre d'affilées de commandes payées par compte point client


merci beaucoup, j'ai besoin d'aide pour avancer, et sql et moi, ben c'est un peu chat et chien ... cry.gif


--------------------
CRE_Loaded_OSC_6.0_SP1.2_RC2 + 4 patchs sur Thema 2, auto_display_tax_V2_0, compte points et parainage adaptée CRELOAD (en cours dév), country-state-selector
Go to the top of the page
 
webistro
posté 14 Apr 2005, 17:53
Message #2


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 104
Inscrit : 8-April 05
Membre no 5428



petite info, la V2 va gérer ce genre de problème. Il y aura les points 'en attente' non utilisables jusqu'au paiment de la commande (chèque et carte) et les points 'validés' utilisables immédiatement.
Je réécrit le code entre deux portes car j'ai bcp de boulot dans ma boutique en ce moment.De plus il faut que je gère les points acquis aussi par le parrainage, donc la base de données va être modifié...


--------------------
Je ne suis pas docteur en PHP, mais si vos symptômes persistent, consultez un spécialiste ...
Go to the top of the page
 
licorne
posté 14 Apr 2005, 19:56
Message #3


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 250
Inscrit : 27-February 05
Membre no 4932



je me demande si je ne peux pas exploiter la boite " historique commandes"...tout simplement rolleyes.gif reste à trouver le fichier et sans inspirer...

EDIT : une piste !

CODE
   $orders_history_query = tep_db_query("select o.orders_id,o.payment_method, o.date_purchased, o.delivery_name, o.delivery_country, o.billing_name, o.billing_country, ot.text as order_total, s.orders_status_name from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_TOTAL . " ot, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$customer_id . "' and o.orders_id = ot.orders_id and ot.class = 'ot_total' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' order by orders_id desc limit ".ANTIFRAUDE_N_ORDER."");


ANTIFRAUDE_N_ORDER est un nombre dans l'admin...

mais avec celle ci provenant de account.php..;les commandes annulées passent ou pas ?


--------------------
CRE_Loaded_OSC_6.0_SP1.2_RC2 + 4 patchs sur Thema 2, auto_display_tax_V2_0, compte points et parainage adaptée CRELOAD (en cours dév), country-state-selector
Go to the top of the page
 
Ryu007
posté 14 Apr 2005, 23:45
Message #4


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1385
Inscrit : 3-June 04
Lieu : Saint-mandé
Membre no 2597



Bonjour,
QUOTE
mais avec celle ci provenant de account.php..;les commandes annulées passent ou pas ? [...]

Ba ... hum ... si tu ne fais pas d'appel sql pour filtrer les commandes selon l'état "annulé" c'est sur qu'elles vont quand même ressurgir ...

Dans ton code cela donnerait ça chez moi (l'état 6 correspond a l'état annulé dans ma configuration) :

QUOTE
$orders_history_query = tep_db_query("select o.orders_id, o.payment_method, o.date_purchased, o.delivery_name, o.delivery_country, o.billing_name, o.billing_country, ot.text as order_total, s.orders_status_name from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_TOTAL . " ot, " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and o.customers_id = '" . (int)$customer_id . "' and s.orders_status_id = '6' and o.orders_id = ot.orders_id and ot.class = 'ot_total'  and s.language_id = '" . (int)$languages_id . "' order by orders_id desc limit " . ANTIFRAUDE_N_ORDER);

ainsi ça affichera que les commandes annulées ...

Tu pourrais aussi améliorer la requete en faisant des left join (ou right join) permettant ainsi a MYSQL de faire son travail plus rapidement
QUOTE
L'ordre de lecture de tables forcé par LEFT JOIN et STRAIGHT JOIN aidera l'optimiseur de jointures (qui calcule l'ordre dans lequel les tables doivent être jointes) à faire son travail plus rapidement, puisqu'il y'aura moins de permutations de tables à vérifier.

Amicalement


--------------------
Image IPB Image IPB
Go to the top of the page
 
licorne
posté 15 Apr 2005, 09:21
Message #5


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 250
Inscrit : 27-February 05
Membre no 4932



merci Ryu007,

ce qui m'inquiete un peu, c'est que chez moi, order_status = '100001' pour une commande annulée ! sad.gif ce qui siginifie que ca peut varier chez les uns ou les autres )...pas gagné encore cette histoire sad.gif


--------------------
CRE_Loaded_OSC_6.0_SP1.2_RC2 + 4 patchs sur Thema 2, auto_display_tax_V2_0, compte points et parainage adaptée CRELOAD (en cours dév), country-state-selector
Go to the top of the page
 
Ryu007
posté 15 Apr 2005, 17:49
Message #6


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1385
Inscrit : 3-June 04
Lieu : Saint-mandé
Membre no 2597



Bonjour licorne,
QUOTE

ce qui m'inquiete un peu, c'est que chez moi, order_status = '100001' pour une commande annulée !  ce qui siginifie que ca peut varier chez les uns ou les autres )...pas gagné encore cette histoire

Je pense que tu as mal interpreter le sens de mon post ...
Tu dis :
QUOTE

order_status = '100001'
Mais 100001 c'est un n° de commande ?! nan ? Moi je te parle de statut de commande vérifiable dans l'admin ...

Amicalement


--------------------
Image IPB Image IPB
Go to the top of the page
 
licorne
posté 15 Apr 2005, 18:57
Message #7


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 250
Inscrit : 27-February 05
Membre no 4932



eh bé non, c'est bien un status ! amuse toi à creer un nouveau status de commande dans admin/localisation/status commande...tu verras la tete du nouveau status dans la table order_status..ce n'est pas 5, ou 6...enfin pas chez moi !

j'en ai créés 2 autres :

livrée et facturée => 10000
annulée ==> 10001

ca doit s'incrementer selon un truc que j'ignore


--------------------
CRE_Loaded_OSC_6.0_SP1.2_RC2 + 4 patchs sur Thema 2, auto_display_tax_V2_0, compte points et parainage adaptée CRELOAD (en cours dév), country-state-selector
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 29th March 2024 - 07:41
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)