Problème variable en PHP

Résolu/Fermé
Chris2009 - 8 janv. 2009 à 19:40
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 8 janv. 2009 à 21:53
Bonjour,

Je n'arrive pas à solutionner un petit problème dans ce petit bout de script PHP:

// la variable $reduc permet de tester s'il y a une promo
$price = tep_add_tax($products['products_price'], tep_get_tax_rate($products['products_tax_class_id']));

if($special_result['specials_new_products_price'] == '' ) {
$discount_price = '' ;
$regular_price = $price;
$reduc = false;
} else {
// $discount_price = $special_result['specials_new_products_price'];
$discount_price = tep_add_tax($special_result['specials_new_products_price'], tep_get_tax_rate($special_result['products_tax_class_id']));

// $price = tep_add_tax($products['products_price'], tep_get_tax_rate($products['products_tax_class_id']));

$regular_price = $price;
$reduc = true;
}


Si une promo existe le prix normal est le même que le prix barré ??

Y a t'il un programmateur dans la salle ?
A voir également:

8 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
8 janv. 2009 à 21:20
Ok, je comprends mieux.

La solution :
...
} else {
$discount_price = $price;

$regular_price = tep_add_tax($special_result['specials_new_products_price'], tep_get_tax_rate($special_result['products_tax_class_id']));­
$reduc = true;
} 
...


Pourquoi?
Parce qu'en fait, ce qui est stocké dans la base de donnée ($special_result['products_price']), c'est le prix de vente. C'est à dire le prix auquel l'article va être vendu :
- s'il n'y a pas de réduc, c'est le prix de base
- s'il y a une réduc, c'est le prix soldé

Ensuite, pour obtenir le prix originel, il faut rajouter à ce prix la valeur de la démarque/

Cordialement,
1
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
8 janv. 2009 à 19:44
Bonsoir,
Oui. Si une réduc existe, le seul prix qui change est le prix discount apparemment.

Cordialement,
0
Sauf que là le prix Normal ce met au même prix que le prix Barré ??
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > Chris2009
8 janv. 2009 à 20:01
Et bien, si ton prix est barré alors qu'il n'y a pas de réduction (ce qui est un peu bizarre tu m'avoueras), d'après le peu de code qu'on a, je serais enclin à répondre OUI à ta question.

Cordialement,
0
Bonsoir Marco la baraque et merci de te pencher sur mon problème.

Un petit exemple pour mieux expliquer:

Produit 100€ pas de promo

Case 1 = prix de Vente = 100€
Case 2 = prix barré = vide

Produit 100€ avec -20%

Case 1 = prix de Vente = 80€
Case 2 = prix barré = 80€

C'est là que ça marche pas !!
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > Chris2009
8 janv. 2009 à 20:17
Effectivement, ça n'a pas l'air d'être bon.
Cependant, avec le code que tu nous montres, on ne peut pas déterminer d'où vient le problème, ce n'est pas suffisant.

Cordialement,
0
chris-2009 Messages postés 256 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 6 avril 2009 7
8 janv. 2009 à 20:26
Effectivement, je viens de voir que les quelques lignes au dessus vont avec ce code :

$special_query = tep_db_query("SELECT specials_new_products_price , expires_date , specials_date_added FROM " . TABLE_SPECIALS . " WHERE products_id = " . $products['products_id'] . " AND status = '1' limit 1");
$special_result = tep_db_fetch_array($special_query);
if ($special_result['specials_new_products_price'] > 0) $products['products_price'] = $special_result['specials_new_products_price'];

$product_num++;

//calcul des prix
// la variable $reduc permet de tester s'il y a une promo
$price = tep_add_tax($products['products_price'], tep_get_tax_rate($products['products_tax_class_id']));

if($special_result['specials_new_products_price'] == '' ) {
$discount_price = '' ;
$regular_price = $price;
$reduc = false;
} else {
// $discount_price = $special_result['specials_new_products_price'];
$discount_price = tep_add_tax($special_result['specials_new_products_price'], tep_get_tax_rate($special_result['products_tax_class_id']));

// $price = tep_add_tax($products['products_price'], tep_get_tax_rate($products['products_tax_class_id']));

$regular_price = $price;
$reduc = true;
}


Ps: je viens de m'enregistrer, c'est pour ça la petite différence de pseudo
0
chris-2009 Messages postés 256 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 6 avril 2009 7
8 janv. 2009 à 20:30
Et ci joint le code d'origine que j'ai modifié car la TVA n'était pas prise en compte sur les promo:

$special_query = tep_db_query("SELECT specials_new_products_price , expires_date , specials_date_added FROM " . TABLE_SPECIALS . " WHERE products_id = " . $products['products_id'] . " AND status = '1' limit 1");
$special_result = tep_db_fetch_array($special_query);
if ($special_result['specials_new_products_price'] > 0) $products['products_price'] = $special_result['specials_new_products_price'];

$product_num++;

//calcul des prix
// la varaible $reduc permet de tester s'il y a une promo
$price = tep_add_tax($products['products_price'], tep_get_tax_rate($products['products_tax_class_id']));
if($special_result['specials_new_products_price'] == '' ) {
$discount_price = '' ;
$regular_price = $price;
$reduc = false;
} else {
$discount_price = $special_result['specials_new_products_price'];
$regular_price = $price;
$reduc = true;
}

Si tu veux les fichiers complets, je peux aussi mais le problème vient de ces quelques lignes (enfin je pense)
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
8 janv. 2009 à 20:40
Et bien écoute, vu que $price n'est pas modifié lorsque tu as une réduction, et que dans tous les cas $regular_price = $price, je ne comprends pas.

Peut-être est-ce ta fonction $price = tep_add_tax($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])); qui fournit un mauvais résultat...

J'en doute, mais je ne vois que ça...

Cordialement,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chris-2009 Messages postés 256 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 6 avril 2009 7
8 janv. 2009 à 20:55
En commentant cette ligne je me retrouve avec les prix inversés :

// if ($special_result['specials_new_products_price'] > 0) $products['products_price'] = $special_result['specials_new_products_price'];

Le prix barré devient le prix de vente

Le prix de vente devient le prix barré

J'ai l'impression d'avancer mais dans le désordre (amis Turfiste Bonjour)
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
8 janv. 2009 à 21:05
?
Je ne comprends pas... Le prix de vente et le prix barrés sont égaux, comment vois-tu qu'ils sont inversés ?
0
chris-2009 Messages postés 256 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 6 avril 2009 7
8 janv. 2009 à 21:14
En commentant la ligne, j'arrive à avoir le prix Normal et le prix Promo mais pas dans les bonnes cases :

Case 1 = prix barré = 100€ qui devrait être prix de vente
Case 2 = prix de Vente = 80€ qui devrait être prix promo

J'en perds mes sens !!
0
chris-2009 Messages postés 256 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 6 avril 2009 7
8 janv. 2009 à 21:37
Je test et je te fait mon rapport LOL
0
chris-2009 Messages postés 256 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 6 avril 2009 7
8 janv. 2009 à 21:47
Je te remercie beaucoup, je ne vois plus de BUG.

Si tu as du temps libre, j'ai plein de petite co.....eries qui pourrait animer tes soirées.

Encore Merci
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
8 janv. 2009 à 21:53
Euh...
Bah à l'occasion postes tes nouveaux problèmes sur le forum. Si ça me parle je répondrai.
Après des fois ça m'arrive aussi d'avoir des projets pour animer mes soirées ;)

A la prochaine,
0