Problème variable en PHP
Résolu
Chris2009
-
Marco la baraque Messages postés 1030 Statut Contributeur -
Marco la baraque Messages postés 1030 Statut Contributeur -
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 ?
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 ?
Configuration: Windows Vista Internet Explorer 6.0
8 réponses
-
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, -
Bonsoir,
Oui. Si une réduc existe, le seul prix qui change est le prix discount apparemment.
Cordialement, -
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 -
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)-
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,
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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) -
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 !! -
-
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