Aide - Recherche - Membres - Calendrier
Version complète : Probleme de TVA dans le module Promotion
Forum osCommerce-fr > Les Bases d'OsCommerce MS2 > Fonctionnement
Tryphon
Bonjour,

je souhaiterais une aide pour un petit problème que je rencontre sur osCommerce version V2.2 RC2 dans le module Promotion.

Voici mon problème :

Mes prix sont affichés en TTC dans ma boutique.
Lorsque j'active une promotion dans la rubrique Admin sur un produit en TTC avec une TVA à 19,6 %
le prix affiché dans la rubrique promotion est différent que le prix du même produit affiché dans mon panier ou dans mon catalogue produit.

Il semblerait que le module Promotion ne prend pas en compte la TVA lorsque l'on affiche le prix en TTC.

En revanche si dans le module Admi, je sélectionne un affichage en HT le prix est alors identique dans les différentes rubriques. (Promotion, Panier, Facture…)

J'ai li il y a quelque temps qu'il avait un Bug mais impossible de retrouver la solution.

Merci de votre aide si vous connaissez la solution.

Par avance merci
chti_poupon
Bonsoir !
osC permet de vendre TTC ou HT
MAIS
l'admin ne comprend dans la large majorité des cas) que le HT:
Par exemple, on rentre un prix de produit HT ou TTC au choix, en choisissant la TVA ad hoc.
Pour les promos, on rentre le prix de vente promo HT mais le client le voit TTC ==> toujours vérifier ces histoires là avant de lancer en production.
Une règle: ne jamais toucher les réglages généraux de TVA HT et TTC, mais adopter l'entrée HT ou TTC selon l'action en cause. (En principe, c'est HT)

Bon code !
Chti poupon
Tryphon
Merci pour ces explications, je vais suivre tes conseils.

Mais n'existe-t-il pas un code à rajouter dans la page special.php pour forcer le module promotion à etre en TCC.

Bonne journée
Juliettta
Salut Tryphon,

Sinon tu as encore la possibilité de remplacer ton module de promo par celui-ci
http://www.oscommerce-screenshots.com/spec...nced-p-227.html
Perso je sais plus si je l'ai modifier ou pas mais avec la tva cela fonctionne direct sur le ttc
Tryphon
Merci Julietta,
pour ton conseil, cela marche très bien pour le module promotion de l'Admin, les prix sont affichés en TCC.
mais j'ai toujours le problème de TVA dans ma rubrique promotion de la boutique.

Je m'explique :

Dans la page promotion
Le prix barré est bien en TCC mais le nouveau prix en promotion lui reste en HT ( angry.gif prix de la promotion SANS LA TVA?????? 93.65€ smile.gif prix barré sans la promotion avec TVA 140.00€)
En revanche lorsque je clique sur le détail les prix sont bien en TCC conforme à mon attente ( biggrin.gif prix de la promotion avec la TVA 112 € biggrin.gif prix barré sans la promotion avec TVA 140.00€).

Je me demande si il n'y a pas un fragment de code à rajouter dans le fichier special.php. pour tout afficher en TCC.
Je me souviens à voir déjà vu ce problème mais impossible de retrouver la soluition.

Merci pour votre aide

PS : voici le code de la page special.php


<?php
/*
$Id: specials.php 1739 2007-12-20 00:52:16Z hpdl $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright © 2003 osCommerce

Released under the GNU General Public License
*/

////
// Sets the status of a special product
function tep_set_specials_status($specials_id, $status) {
return tep_db_query("update " . TABLE_SPECIALS . " set status = '" . $status . "', date_status_change = now() where specials_id = '" . (int)$specials_id . "'");
}

////
// Auto expire products on special
function tep_expire_specials() {
$specials_query = tep_db_query("select specials_id from " . TABLE_SPECIALS . " where status = '1' and now() >= expires_date and expires_date > 0");
if (tep_db_num_rows($specials_query)) {
while ($specials = tep_db_fetch_array($specials_query)) {
tep_set_specials_status($specials['specials_id'], '0');
}
}
}
?>
Bonbec
Bonjour,
Citation (Tryphon @ 13 Jul 2010, 16:15) *
Dans la page promotion
Le prix barré est bien en TCC mais le nouveau prix en promotion lui reste en HT ( angry.gif prix de la promotion SANS LA TVA?????? 93.65€ smile.gif prix barré sans la promotion avec TVA 140.00€)
En revanche lorsque je clique sur le détail les prix sont bien en TCC conforme à mon attente ( biggrin.gif prix de la promotion avec la TVA 112 € biggrin.gif prix barré sans la promotion avec TVA 140.00€).

Le détail, c'est la page products_info.php, donc regarder dans cette page comment sont récupérer les prix et appliquer la même méthode dans la page specials.php.
De mémoire, il faut faire attention aux variables $product_info['xxxx'] de la page products_info.php doit être modifiée en $specials['xxxx'] dans la page specials.php
Juliettta
Salut,

Bien déjà as-tu vérifié les paramètre dans l'admin de ta boutique ?
Donc configuration / Ma boutique est ce que tes prix sont bien reglé ainsi
Afficher les prix avec taxe
Afficher les prix taxes incluses (true) ou ajouter la taxe ? la fin (false). => Sur true.

Ensuite pour ta page special.php perso ni l'original de la RC2a ni la mienne ne ressemble à ce bout de code... En plus on a pas la liste des contributions que tu as installé... Est-ce la boxe special? est ce le module special? la page special.php dont tu parles

Bon vu tes explications il semblerais que ce soit la page specials.php (celle sous catalog)

En voici une à tester en remplacant ton autre page
CODE
<?php
/*
$Id: specials.php,v 1.49 2003/06/09 22:35:33 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright © 2003 osCommerce
Released under the GNU General Public License
*/
require('includes/application_top.php');
require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_SPECIALS);
$breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SPECIALS));
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title>
Les promotions sur
<?php echo TITLE; ?>
</title>
<meta name="description" content="">
<meta name="keywords" content="">
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<table border="0" summary="" width="100%" cellspacing="3" cellpadding="3">
<tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top">
<table border="0" summary="" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top">
<table border="0" summary="" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
<table border="0" summary="" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading">
<?php echo HEADING_TITLE; ?></td>
</tr>
</table></td>
</tr>
<tr>
<td>
<?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
$specials_query_raw = "select p.products_id, pd.products_name, p.products_price, p.products_tax_class_id, p.products_image, s.specials_new_products_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_SPECIALS . " s where p.products_status = '1' and s.products_id = p.products_id and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and s.status = '1' order by s.specials_date_added DESC";
$specials_split = new splitPageResults($specials_query_raw, MAX_DISPLAY_SPECIAL_PRODUCTS);
if (($specials_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3'))) {
?>
<tr>
<td>
<table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText">
<?php echo $specials_split->display_count(TEXT_DISPLAY_NUMBER_OF_SPECIALS); ?></td>
<td align="right" class="smallText">
<?php echo TEXT_RESULT_PAGE . ' ' . $specials_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td>
<?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
}
?>
<tr>
<td>
<table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
<tr>
<?php
$row = 0;
$specials_query = tep_db_query($specials_split->sql_query);
while ($specials = tep_db_fetch_array($specials_query)) {
$row++;
echo ' <td align="center" width="33%" class="smallText"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $specials['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $specials['products_image'], $specials['products_name']) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $specials['products_id']) . '">' . $specials['products_name'] . '</a><br><s>' . $currencies->display_price($specials['products_price'], tep_get_tax_rate($specials['products_tax_class_id'])) . '</s><br><span class="productSpecialPrice">' . $currencies->display_price($specials['specials_new_products_price'], tep_get_tax_rate($specials['products_tax_class_id'])) . '</span></td>' . "\n";
if ((($row / 3) == floor($row / 3))) {
?>
</tr>
<tr>
<td>
<?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<?php
}
}
?>
<td>
<?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
</table></td>
</tr>
<?php
if (($specials_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3'))) {
?>
<tr>
<td>
<br>
<table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText">
<?php echo $specials_split->display_count(TEXT_DISPLAY_NUMBER_OF_SPECIALS); ?></td>
<td align="right" class="smallText">
<?php echo TEXT_RESULT_PAGE . ' ' . $specials_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table></td>
</tr>
<?php
}
?>
</table></td>
<!-- body_text_eof //-->
<td width="<?php echo BOX_WIDTH; ?>" valign="top">
<table border="0" summary="" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
</table></td>
</tr>
</table>
<!-- body_eof //-->
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
</table>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>



Et surtout quand tu as un problème que normalement d'origine n'existe pas sur la boutique OS reprend le code d'origine...
Cela permet de résoudre pas mal de problème
Bon test
Tryphon
Merci pour tes conseils.

Je vais essayer ce code
Tryphon
Bonjour,

après avoir comparé les deux codes et suite à de nombreux essai j'ai fini par résoudre le problème.

En effet la variable $p_price du fichier special.php dans catalog n'était pas bien configurée.

Voici le bon code :


// ---------- Modif prix promo pour un affichage en TCC

$p_price = '<span class="productSpecialPrice">'.$currencies->display_price($specials['specials_new_products_price'], tep_get_tax_rate($specials['products_tax_class_id'])) .'</span> <br><s>' . $currencies->display_price($specials['products_price'], tep_get_tax_rate($specials['products_tax_class_id'])) . '</s>';

// ----------


Merci à vous tous pour vos conseils
Tryphon
Bonjour,

après avoir comparé les deux codes et suite à de nombreux essai j'ai fini par résoudre le problème.

En effet la variable $p_price du fichier special.php dans catalog n'était pas bien configurée.

Voici le bon code :


// ---------- Modif prix promo pour un affichage en TCC

$p_price = '<span class="productSpecialPrice">'.$currencies->display_price($specials['specials_new_products_price'], tep_get_tax_rate($specials['products_tax_class_id'])) .'</span> <br><s>' . $currencies->display_price($specials['products_price'], tep_get_tax_rate($specials['products_tax_class_id'])) . '</s>';

// ----------


Merci à vous tous pour vos conseils
Huroman
Bonjour, j'ai le même probléme mais avec la version 2.3.1

Le code est different et ma cliente veut voir le prix TTC dans l'admin, aussi.

Avez-vous quelque idée?

Merci en avance.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.