Aide - Recherche - Membres - Calendrier
Version complète : Ecotax Version 1.3 by paddybl (compatible Recupel pour la Belgique)
Forum osCommerce-fr > Adapter OsCommerce MS2 > Contributions
Pages : 1, 2, 3, 4, 5, 6
Thierry_ZT
Bonsoir,

Je viens de m’apercevoir que le module Margin Report fourni dans le pack MAJ ecotax plus ! ne fonctionne pas correctement.
En fait, le seul problème qu’il y a, c’est que je n’ai pas le prix d’achat dans le rapport.
Par contre, en enlevant ce code dans la page catalog/includes/classe/shopping_cart.php vers la ligne 354 :

[codebox]
//debut modif by paddybl for ecotax

if ($products = $pf->loadProduct($products_id, $languages_id)) {

//debut modif by paddybl for ecotax

$ecotax_query = tep_db_query("select products_id, products_price, products_cost, products_tax_class_id, ecotax_rates_id, products_weight from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");

$ecotax=tep_db_fetch_array($ecotax_query);

//fin modif by paddybl for ecotax



//debut modif by paddybl for ecotax

$product_info_ecotax=tep_get_ecotax_description($ecotax['ecotax_rates_id']);

$ecotax_rates_id=($product['ecotax_rates_id']!=$product_info_ecotax[0]['ecotax_id_other']&&$product_info_ecotax[0]['ecotax_id_other']!="")?$product_info_ecotax[0]['ecotax_id_other']:$ecotax['ecotax_rates_id'];



$products_ecotax = $ecotax_rates_id;}



//fin modif by paddybl for ecotax

$products_price = $pf->computePrice($this->contents[$products_id]['qty']);

//debut modif by paddybl for ecotax

// $products_price =tep_add_ecotax($products_price,-1,$this->contents[$products_id]['qty']);

//fin modif by paddybl for ecotax
[/codebox]

Cela fonctionne. Pouvez-vous me dire à quoi sert ce bout de code, est-il indispensable?

Je me suis aperçu aussi que dans le calcul du récapitulatif de la commande, les frais de port sont mentionné en HT et que la TVA sur ces frais n’est pas prise en compte :

1 x Microsoft Internet Keyboard PS/2 : 83,71EUR
Ecotaxe : Catégorie 3.7 [info] : 0,10EUR

--------------------------------------------------------------------------------

Sous-Total HT + Eco-participation HT: 70,07EUR
Sous-Total: 83,81EUR
(Normalement 5,98€ TTC) Frais d'envoi (Forfait): 5,00EUR
TVA 19,6%: 13,74EUR
dont TVA sur l Eco-participation(non déductible): 0,02EUR
Eco-participation Total: 0,10EUR
--------------------------------------------------------------------------------

Total HT (Eco-participation incluse): 80,09EUR
Montant total TTC à régler: 88,81EUR


Et pour finir pour ce soir, il y a aussi un problème sur le calcul du montant total de la commande lors de l’envoi en colissimo :

1 x Microsoft Internet Keyboard PS/2 : 83,71EUR
Ecotaxe : Catégorie 3.7 [info] : 0,10EUR

--------------------------------------------------------------------------------

Sous-Total HT + Eco-participation HT : 70,07EUR
Sous-Total : 83,81EUR
(Normalement 19,49 € TTC) Colissimo Simple (sans assurance) (11 kg) : 16,30EUR
TVA 19,6% : 13,74EUR
dont TVA sur l Eco-participation(non déductible) : 0,02EUR

Eco-participation Total :0,10EUR
--------------------------------------------------------------------------------

Total HT (Eco-participation incluse) : 102,69EUR
Montant total TTC à régler : 100,11EUR


Voilà, est-ce que quelqu'un pourrais me renseigner sur ces questions?
Cela fait 1 semaine que je tourne en rond.

Merci d'avance.

paddybl
bonjour,
je vais tenté de répondre dans l'ordre.
Ecotax plus est fourni avec le fichier categories_margin_reports.php qui doit ètre utilisé à la place de categories.php (comme expliqué dans le fichier install.txt)
Mais attention il ne faut pas utiliser ce fichier si la version incluant l'Ecotax de margin report n'est pas installé.
la contribution s'appelle ecotax pack+ margin report v2.6

pour ce qui est du fichier fichier shopping_cart.php, ce bout de code proviens de l'adaptation de ecotax pack+ quantity price breaks per products v1.2.1 et non pas de la mise à jours Ecotax plus!

il est sans doute necessaire d'ajouter products_cost aux requetes du fichier PriceFormatter.php (car ce sont 2 contributions indépendante)
exemple:
CODE
   $sql = "select pd.products_name, p.products_model, p.products_image, p.products_id," .
   " p.manufacturers_id, p.products_price, p.products_weight, p.products_quantity, " .
   " p.products_price1, p.products_price2, p.products_price3,p.products_price4, " .
     " p.products_price5, p.products_price6, p.products_price7, p.products_price8," .
   " p.products_price1_qty, p.products_price2_qty, p.products_price3_qty, p.products_price4_qty, " .
     " p.products_price5_qty, p.products_price6_qty, p.products_price7_qty, p.products_price8_qty," .
   " p.products_qty_blocks, p.products_tax_class_id,p.ecotax_rates_id, p.products_cost, " .
   " IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price " .
   " from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " .
   " " . TABLE_PRODUCTS_DESCRIPTION . " pd " .
   " where p.products_status = '1'" .
   " and pd.products_id = p.products_id " .
   " and p.products_id = '" . (int)$product_id . "'" .
   " and pd.language_id = '". (int)$language_id ."'";


pour la tva sur les frais de port, ce n'est pas Ecotax qui guère ce calcul. il faut indiquer d'inclure la tva dans "module->expédition-> classe de taxe"

par contre concernant les totaux, il semblerait que la classe order.php ne soit pas à jours. il faudrait re télécharger la version Ecotax Plus! et comparer ou remplacer le fichier. à défaut me l'envoyer en mp

A suivre...
Thierry_ZT
Bonjour, et merci pour votre réponse.

CITATION(paddybl @ 21 Sep 2007, 14:12) [snapback]251916[/snapback]
Ecotax plus est fourni avec le fichier categories_margin_reports.php qui doit ètre utilisé à la place de categories.php (comme expliqué dans le fichier install.txt)
Mais attention il ne faut pas utiliser ce fichier si la version incluant l'Ecotax de margin report n'est pas installé.
la contribution s'appelle ecotax pack+ margin report v2.6

J'ai bien utilisé le fichier categories_margin_reports.php à la place de categories.php. J'ai du coup acheté ecotax pack+ margin report v2.6 sur votre site pour corriger les différence, mais rien n'y fait. J'ai toujours 0.00€ en prix d'achat.

CITATION(paddybl @ 21 Sep 2007, 14:12) [snapback]251916[/snapback]
pour ce qui est du fichier fichier shopping_cart.php, ce bout de code proviens de l'adaptation de ecotax pack+ quantity price breaks per products v1.2.1 et non pas de la mise à jours Ecotax plus!

il est sans doute necessaire d'ajouter products_cost aux requetes du fichier PriceFormatter.php (car ce sont 2 contributions indépendante)

J'ai bien rajouter products_cost aux requêtes du fichier PriceFormatter.php. Mais j'ai le même résultat.

CITATION(paddybl @ 21 Sep 2007, 14:12) [snapback]251916[/snapback]
pour la tva sur les frais de port, ce n'est pas Ecotax qui guère ce calcul. il faut indiquer d'inclure la tva dans "module->expédition-> classe de taxe"

J'ai bien indiqué d'inclure la TVA dans "module->expédition-> classe de taxe". La TVA sur les frais de livraison n'apprait pas sur la page checkout_payment.php mais apparait sur la page checkout_confirmation.php. Du coup je n'est pas le même montant total sur les 2 pages. Ormis que le montant sur la page checkout_confirmation.php soit le bon.

CITATION(paddybl @ 21 Sep 2007, 14:12) [snapback]251916[/snapback]
par contre concernant les totaux, il semblerait que la classe order.php ne soit pas à jours. il faudrait re télécharger la version Ecotax Plus! et comparer ou remplacer le fichier. à défaut me l'envoyer en mp

J'ai vérifier la classe order.php, je n'est pas trouvé d'erreur à priori.

Est-ce qu'il serait possible que je vous transmette la totalité de mon site par MP, pour que vous jetiez un coup d'oeil sur ces différents points?

A suivre...
paddybl
(Tous ce que je vais dire sous entend que celà et sans doute déjà ok.)
CITATION
J'ai bien utilisé le fichier categories_margin_reports.php à la place de categories.php. J'ai du coup acheté ecotax pack+ margin report v2.6 sur votre site pour corriger les différence, mais rien n'y fait. J'ai toujours 0.00€ en prix d'achat.

ok si le fichier (qu'il faut penser à renommer categories.php, mais je pense que c'est fait doit faire apparaitre un champ "Prix d'achat(HT)" qui permet de calculer la marge du produit dans le champ "Marge produit (HT)" et surtout dans le rapport de marge. il faut donc indiquer la valeur d'achat du produit pour que le rapport en tienne compte. (vérifier une fois la valeur indiqué que celle-ci est à nouveau là en ré-éditant le produit.
CITATION
J'ai bien rajouter products_cost aux requêtes du fichier PriceFormatter.php. Mais j'ai le même résultat.

quel est le message d'erreur. En même temp le reste du code est sencé ètre utilisé avec quantity price break...
CITATION
J'ai bien indiqué d'inclure la TVA dans "module->expédition-> classe de taxe". La TVA sur les frais de livraison n'apprait pas sur la page checkout_payment.php mais apparait sur la page checkout_confirmation.php. Du coup je n'est pas le même montant total sur les 2 pages. Ormis que le montant sur la page checkout_confirmation.php soit le bon.

je pense qu'il doit manquer ces lignes au début du fichers sous
require(DIR_WS_CLASSES . 'order.php');
$order = new order;
verifie qu'elles sont présentes:
CODE
  require(DIR_WS_CLASSES . 'shipping.php');
  $shipping_modules = new shipping($shipping);

pour le reste on se contact en mp vu que celà fonctionne déjà pour d'autres personnes.
il faut que je termine order editor 5.06, mais je peux y jeté un ou deux yeux ...
re A suivre...
Thierry_ZT
Bonsoir et merci pour la réponse.

CITATION(paddybl @ 26 Sep 2007, 01:04) [snapback]252390[/snapback]
je pense qu'il doit manquer ces lignes au début du fichers sous
require(DIR_WS_CLASSES . 'order.php');
$order = new order;
verifie qu'elles sont présentes:
CODE
  require(DIR_WS_CLASSES . 'shipping.php');
  $shipping_modules = new shipping($shipping);


Effectivement, en rajoutant ces 2 lignes dans le fichier, j'ai bien la TVA sur les frais de port.
Pourtant dans le fichier checkout_payment.php de la contribution ecotax_v1.3_by_paddybl_1, ces 2 lignes n'apparaissent pas??

Pour le reste: Coût du produit à 0,00, le problème de TVA et le pb de prix lors d'un envoi en colissimo, je vous contacte par MP.

Merci encore.
Thierry_ZT
Bon alors, tout d'abord je voudrais remercier paddybl pour sa grande compêtence et de sa disponibilité.

Tout fonctionne:margin report v2.6, quantity price breaks per products, le problème de TVA et le pb de prix lors d'un envoi en colissimo.

Du coup, je me suis lancé dans l'intégration des contribs: point and rewards v20d, OrderCheck v2.5.2, PayPal IPN v2.2 et pour finir flash discount v3.

Je voudrais aussi remercier la communauté osCommerce pour leur travail ainsi que de leur soutient dans l'intégration des différentes contrib. Longue vie à ce forum.

PS: Si vos produits dépendent de l'ecotax (qui doit-être obligatoirement affichée sur les produits depuis le début d'année), je vous conseille la très bonne contrib de paddybl: ECOTAX VER 1.3 avec la MAJ ECOTAX Plus!. Je ne fais pas de publicité, mais voila, je sais apprécier le travail bien fait.
paddybl
Je vous informe des dernières infos que j'ai réussi à "soutirer" à la répression des fraudes concernants l'éco-participation.
Voici le message que j'ai envoyé à plusieurs instances:


"...Renseignements sur la mise en place de l'écoparticipation concernant les déchets d'équipements électriques et électroniques ménagers (DEEE). Notamment concernant les entreprises commerciales travaillant uniquement par le biais d'Internet.

À savoir si :

- Une mise en place de contrôle et de répression est prévue pour les entreprises commerciales d'Internet.
- Si oui, la date de mise en place du contrôle et de la répression s'ensuivant.
- Le type de sanction si possible plus précise que le décret de juillet 2005 paru au Journal Officiel (titre VI, article 25), soit le montant des amendes pouvant être encouru etc…

Autres facteurs :

- Si un changement ou un allègement est prévu cette année au niveau de la législation faisant suite aux décrets du 22 juillet 2005 et de l'avis du 10 janvier 2007.
- Si la facturation (faisant suite à votre lettre du 9 novembre 2006 suivant la mise en place au 15 novembre 2006) est celle réglementaire à mettre en place.

De même au niveau de l'exportation Européenne et Internationale aucun article ne précise la législation en vigueur.

- Donc si la mise en place d'un système est prévue.
- Et si la facturation prévue pour l'étranger est la même inhérente à la France ou à celle des pays de destination, de plus concernant les pays des DOM-TOM si une exonération est prévue pour ces derniers.

Dans l'attente de vos renseignements, je vous remercie de votre diligence.

Veuillez agréer, Madame, Monsieur, mes salutations distinguées.

Signature...."

Je vous joins donc en Pdf la réponse que j'ai obtenue à ce courrier. réponse répression des fraudes

J'ai trouvé qu'ils s'intéressaient plus à savoir, qui et pourquoi, je leurs posais ces questions qu'à vraiment chercher à me répondre sur les points précis de ma demande. peut ètre que vous aurez plus de chance que moi...
Zohdraz
Bonjour à tous,

Ayant un petit soucis de calculs avec cette contribution, j'ai directement contacté Paddybl pour en discuter avec lui: je vous passe les détails, mais tiens toutefois à souligner que Paddybl est quelqu'un de vraiment sympatique et compétent!

Ce post pour vous annoncer la parution d'un nouveau correctif pour Ecotax. Celui-ci est disponnible sur le site de Paddybl et corrige tous les problèmes de calculs HT et TVA, il est donc plus que souhaitable de le mettre en place!

Un grand merci à toi Paddybl, tiens, je suis tellement content du résultat (ma comptable et mes clients le seront aussi) que je m'en vais de ce pas te faire un dons wink.gif

Cordialement,

Zardhoz
Zohdraz
Petite synthèse des modifs à apporter:

CODE
###################################################
Dans catalog\admin\includes\functions\general.php et catalog\includes\functions\general.php:

***** Rechercher:

        $ecotax_multiplier += $ecotax['ecotax_price'];
      }
      return tep_round($ecotax_multiplier, 2);
    } else {    
    return 0;}
    }
      
***** Remplacer par:

        $ecotax_multiplier += $ecotax['ecotax_price'];
      }
      return $ecotax_multiplier;
    } else {    
    return 0;}
    }

***** Rechercher:

      case 'true':
        
          return floatval($price) + tep_round(($ecotax+tep_calculate_tax($ecotax,$ecotax_taxe_rate)), 2)*$qty;
      case 'false':

          return floatval($price);
          break;

***** Remplacer par:

      case 'true':
        
      return  floatval($price)+($ecotax*((($ecotax_taxe_rate < 10) ? "1.0" . str_replace('.', '', $ecotax_taxe_rate) : "1." . str_replace('.', '', $ecotax_taxe_rate))))*$qty + $tag;
      case 'false':

          return floatval($price) + $ecotax*$qty + $tag;
          break;

***** Rechercher:

  $ecotax_taxable=tep_calculate_tax($ecotax,$ecotax_taxe_rate);

***** Remplacer par:

  $ecotax_taxable=$ecotax*((($ecotax_taxe_rate < 10) ? "1.0" . str_replace('.', '', $ecotax_taxe_rate) : "1." . str_replace('.', '', $ecotax_taxe_rate)))-$ecotax;

###################################################
Dans catalog\includes\classes\order.php:

***** Rechercher:

            $this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));


***** Remplacer par:

            $this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)))+tep_get_ecotax_taxable($this->products[$index]['ecotax_rates_id'])*$this->products[$index]['qty'];


***** Rechercher:

            $this->info['tax_groups']["$products_tax_description"] = $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)))+tep_get_ecotax_taxable($this->products[$index]['ecotax_rates_id'])*$this->products[$index]['qty'];

***** Remplacer par:

            $this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)))+tep_get_ecotax_taxable($this->products[$index]['ecotax_rates_id'])*$this->products[$index]['qty'];

***** Rechercher:

            $this->info['tax_groups']["$products_tax_description"] = ($products_tax / 100) * $shown_price+tep_get_ecotax_taxable($this->products[$index]['ecotax_rates_id'])*$this->products[$index]['qty'];

***** Remplacer par:

            $this->info['tax_groups']["$products_tax_description"] += ($products_tax / 100) * $shown_price+tep_get_ecotax_taxable($this->products[$index]['ecotax_rates_id'])*$this->products[$index]['qty'];

###################################################
Dans catalog\admin\includes\classes\order.php

***** Rechercher:

  $ecotax_ht= tep_round($orders_products['products_ecotax']/(tep_get_ecotax_rate($orders_products['ecotax_rates_id'],oe_get_country_id($order['customers_country']), oe_get_zone_id(oe_get_country_id($order['customers_country']), $order['customers_state']))/100+1),2);

***** Remplacer par:

  $ecotax_ht= tep_round($orders_products['products_ecotax']/(tep_get_ecotax_rate($orders_products['ecotax_rates_id'],tep_get_country_id($order['customers_country']), tep_get_zone_id(tep_get_country_id($order['customers_country']), $order['customers_state']))/100+1),2);

***** Rechercher:

            $this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));

***** Remplacer par:

            $this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)))+$ecotax_taxable*$this->products[$index]['qty'];


Lancer cette requête pour mettre a jour votre base SQL:

CODE
UPDATE `ecotax` SET `ecotax_price` = '10.8695' WHERE ecotax_price = '10.8700';
UPDATE `ecotax` SET `ecotax_price` = '5.0167' WHERE ecotax_price = '5.0200';
UPDATE `ecotax` SET `ecotax_price` = '1.6722' WHERE ecotax_price = '1.6700';
UPDATE `ecotax` SET `ecotax_price` = '0.8361' WHERE ecotax_price = '0.8400';
UPDATE `ecotax` SET `ecotax_price` = '0.4180' WHERE ecotax_price = '0.4200';
UPDATE `ecotax` SET `ecotax_price` = '0.0836' WHERE ecotax_price = '0.0800';
UPDATE `ecotax` SET `ecotax_price` = '6.6889' WHERE ecotax_price = '6.6900';
UPDATE `ecotax` SET `ecotax_price` = '3.3444' WHERE ecotax_price = '3.3400';
UPDATE `ecotax` SET `ecotax_price` = '1.2541' WHERE ecotax_price = '1.2500';
UPDATE `ecotax` SET `ecotax_price` = '0.1672' WHERE ecotax_price = '0.1700';
UPDATE `ecotax` SET `ecotax_price` = '0.2508' WHERE ecotax_price = '0.2500';


Voilà, je crois que je n'ai rien oublié...

Bon code,

Zardhoz
paddybl
Un grand merci à zardhoz, avec qui la collaboration pour essayer de comprendre pourquoi on finissait par avoir des erreurs d'arrondis sur les totaux ou sur la tva a été très agréable.
Pour compléter l'explication, l'utilisation de la fonction tep_calculate_tax (d'origine dans osC) retourne le montant de la tva pour l'ecotax. c'est super c'est exactement ce que j'avais besoin, a un détail pres le montant retourné est un montant arrondi. en apparence celà ne pose pas de problème. mais lorsque on calcul celà sur des 10énes de produits, multiplié par le nombre d'approximation des arrondis, et bien voilà on fini avec un résultat faux...

Maintenant que ce que çà change?
vu que le calculde tva sur l'éco-participation est précis, on ne peut plus utiliser un montant ht sur 2 chiffres après la virgule!
d'ou le correctif de base de données permettant de réactualiser ces tarifs sur 4 chiffres après la virgule.

Malgré tous il yà une légere petite erreur dans le correctif que vous a détaillé zardhoz.

la modification dans catalog\admin\includes\classes\order.php n'est valable que pour ecotax plus!

$ecotax_ht= tep_round($orders_products['products_ecotax']/(tep_get_ecotax_rate($orders_products['ecotax_rates_id'],tep_get_country_id($order['customers_country']), tep_get_zone_id(tep_get_country_id($order['customers_country']), $order['customers_state']))/100+1),2);

Merci à lui, je n'avais pas encore eu le temps de placer ce correctif.

paddybl
Pour commencer, je vous souhaite à tous et à toutes une exéllente année 2008.
Je remonte le post pour vous informer que j'ai enfin réussi à obtenir de plus "ample" information sur la gestion de l'éco-participation sur les sites de ventes en lignes.

la réponse à mon courrier (accés directe)
Les fiches explicatives (accés directe)
Le liens vers tout un tas d'autre infos (le site)

bonne lecture

A suivre...
doudom
Bonjour,

Tout dabord bravo pour cette contrib que je viens d'installer.

Par contre depuis j'ai un message d'erreur sur la box centrale des nouveaux produits.

CITATION
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\catalog\includes\functions\database.php on line 99


Je pense que l'erreur viens de index.php

CITATION
<?php
/*
$Id: index.php,v 1.1 2003/06/11 17:37:59 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');

// the following cPath references come from application_top.php
$category_depth = 'top';
if (isset($cPath) && tep_not_null($cPath)) {
$categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
$cateqories_products = tep_db_fetch_array($categories_products_query);
if ($cateqories_products['total'] > 0) {
$category_depth = 'products'; // display products
} else {
$category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");
$category_parent = tep_db_fetch_array($category_parent_query);
if ($category_parent['total'] > 0) {
$category_depth = 'nested'; // navigate through the categories
} else {
$category_depth = 'products'; // category has no products, but display the 'no products' message
}
}
}

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<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 marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
<tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="0">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<?php
if ($category_depth == 'nested') {
$category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
$category = tep_db_fetch_array($category_query);
?>
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<?php
if (isset($cPath) && strpos('_', $cPath)) {
// check to see if there are deeper categories within the current category
$category_links = array_reverse($cPath_array);
for($i=0, $n=sizeof($category_links); $i<$n; $i++) {
$categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
$categories = tep_db_fetch_array($categories_query);
if ($categories['total'] < 1) {
// do nothing, go through the loop
} else {
$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
break; // we've found the deepest category the customer is in
}
}
} else {
$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
}

$number_of_categories = tep_db_num_rows($categories_query);

$rows = 0;
while ($categories = tep_db_fetch_array($categories_query)) {
$rows++;
$cPath_new = tep_get_path($categories['categories_id']);
$width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';
echo ' <td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n";
if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {
echo ' </tr>' . "\n";
echo ' <tr>' . "\n";
}
}

// needed for the new products module shown below
$new_products_category_id = $current_category_id;
?>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
</tr>
</table></td>
</tr>
</table></td>
<?php
} elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
// create column list
$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

asort($define_list);

$column_list = array();
reset($define_list);
while (list($key, $value) = each($define_list)) {
if ($value > 0) $column_list[] = $key;
}

$select_column_list = '';

for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
switch ($column_list[$i]) {
case 'PRODUCT_LIST_MODEL':
$select_column_list .= 'p.products_model, ';
break;
case 'PRODUCT_LIST_NAME':
$select_column_list .= 'pd.products_name, ';
break;
case 'PRODUCT_LIST_MANUFACTURER':
$select_column_list .= 'm.manufacturers_name, ';
break;
case 'PRODUCT_LIST_QUANTITY':
$select_column_list .= 'p.products_quantity, ';
break;
case 'PRODUCT_LIST_IMAGE':
$select_column_list .= 'p.products_image, ';
break;
case 'PRODUCT_LIST_WEIGHT':
$select_column_list .= 'p.products_weight, ';
break;
}
}

// show the products of a specified manufacturer
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only a specific category
//debut modif by paddybl for ecotax
$listing_sql = "select DISTINCTROW " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.ecotax_rates_id, p.products_tax_class_id,IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (" . TABLE_PRODUCTS . " p) left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";
} else {
// We show them all
//$listing_sql = "select DISTINCTROW " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"; */

$listing_sql = "select DISTINCTROW " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.ecotax_rates_id, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
}
} else {
// show the products in a given categorie
if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory
/* $listing_sql = "select DISTINCTROW " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; */

$listing_sql = "select DISTINCTROW " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.ecotax_rates_id, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
} else {
// We show them all
//$listing_sql = "select DISTINCTROW " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price, p.ecotax_rates_id, p.products_tax_class_id from ((" . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p) left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c) left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
}
//fin modif by paddybl for ecotax
}
if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('[1-8][ad]', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
if ($column_list[$i] == 'PRODUCT_LIST_PRICE') {
$HTTP_GET_VARS['sort'] = $i+1 . 'a';
$listing_sql .= " order by final_price";
break;
}
}
} else {
$sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
$sort_order = substr($HTTP_GET_VARS['sort'], 1);
$listing_sql .= ' order by ';
switch ($column_list[$sort_col-1]) {
case 'PRODUCT_LIST_MODEL':
$listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_NAME':
$listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
break;
case 'PRODUCT_LIST_MANUFACTURER':
$listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_QUANTITY':
$listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_IMAGE':
$listing_sql .= "pd.products_name";
break;
case 'PRODUCT_LIST_WEIGHT':
$listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_PRICE':
//debut modif by paddybl for ecotax
$listing_sql .= "products_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
//fin modif by paddybl for ecotax
break;
}
}
?>
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
<?php
// optional Product List Filter
if (PRODUCT_LIST_FILTER > 0) {
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
} else {
$filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
}
$filterlist_query = tep_db_query($filterlist_sql);
if (tep_db_num_rows($filterlist_query) > 1) {
echo ' <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . '&nbsp;';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
$options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
} else {
echo tep_draw_hidden_field('cPath', $cPath);
$options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
}
echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
while ($filterlist = tep_db_fetch_array($filterlist_query)) {
$options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
}
echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
echo '</form></td>' . "\n";
}
}

// Get the right image for the top-right
$image = DIR_WS_IMAGES . 'table_background_list.gif';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
$image = tep_db_fetch_array($image);
$image = $image['manufacturers_image'];
} elseif ($current_category_id) {
$image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
$image = tep_db_fetch_array($image);
$image = $image['categories_image'];
}
?>
<td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>
</tr>
</table></td>
<?php
} else { // default page
?>
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_default.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="main"><?php echo tep_customer_greeting(); ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_MAIN; ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
</tr>
<?php
include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?>
</table></td>
</tr>
</table></td>
<?php
}
?>
<!-- body_text_eof //-->
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="0">
<!-- 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 //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>


Merci pour votre aide
doudom
J'a itrouvé mon erreur, qui d'ailleurs n'etait pas dans ce ficgier la lol
Zohdraz
ATTENTION: POST CORRIGE !

Salut à tous,

J'ai débusqué un petit bug, une erreur d'arrondi du prix ht d'un produit commandé x fois.

Ces modifs ne sont valables que pour la version Ecotax Plus !

Dans le fichier catalog/admin/orders.php:

Rechercher:
CODE
   '        <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_round($order->products[$i]['price'],2)*$order->products[$i]['qty']+tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty']+$price_options, true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .

Remplacer par:
CODE
   '        <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['price']*$order->products[$i]['qty']+tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty']+$price_options, true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .


Dans le fichier catalog/admin/edit_orders.php:

Rechercher:
CODE
        Echo("                      <TD align=\"right\" valign=\"top\" style=\"border: none; font-family: verdana; font-size: 10pt;\">".$currencies->format((tep_round($order->products[$i]['final_price'], $currencies->currencies[DEFAULT_CURRENCY]['decimal_places'])-$order->products[$i]['products_ecotax'])* $order->products[$i]['qty']+(tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty']), true, $order->info['currency'], $order->info['currency_value'])."</TD>\n");

Remplacer par:
CODE
        Echo("                      <TD align=\"right\" valign=\"top\" style=\"border: none; font-family: verdana; font-size: 10pt;\">".$currencies->format((tep_round($order->products[$i]['final_price'],4)-$order->products[$i]['products_ecotax'])* $order->products[$i]['qty']+(tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty']), true, $order->info['currency'], $order->info['currency_value'])."</TD>\n");


Dans le fichier catalog/admin/invoice.php:

Rechercher:
CODE
   '        <td class="dataTableContent" align="center" valign="top"><b>' . $currencies->format(tep_round($order->products[$i]['price'],2)*$order->products[$i]['qty']+tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty']+$price_options, true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .

Remplacer par:
CODE
   '        <td class="dataTableContent" align="center" valign="top"><b>' . $currencies->format(tep_round($order->products[$i]['price'],4)*$order->products[$i]['qty']+tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty']+$price_options, true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .


Bon code,

Zardhoz
paddybl
salut et merci ce correctif que tu indiques ne concernera que les personne ayant installer Ecotax Plus! avec le dernier correctif, je me demande s'il l'arrondi est encore utile :
fonction tep_round($order->products[$i]['price'],4)
si ca se trouve celà fonctionnerai tout aussi bien avec uniquement
$order->products[$i]['price']

mais encore merci de l'info

Zohdraz
Salut Paddybl,

Je vais essayer avec uniquement $order->products[$i]['price'] pour voir mais tu dois avoir raison, je corrigerai mon post précédent si c'est le cas.

EDIT: effectivement, ça fonctionne wink.gif J'ai trouvé 2 derniers petits bugs, je corrige mon post précédent.

Zardhoz
doudom
Je viens d'installer PDF invoice.

Lorsque je regarde la facture "pdf" et non celle d'origine qui est entiere, j'ai remarqué que la seule information présente concernant l'ecotaxe est 'dont tva ecotax', il ne figure pas la colonne individuelle Ecotax.

De plus j'ai des problemes de calcul de prix.

Ex : Facture oscommerce

Prix (ht) Prix (ttc) Total (ht) Total (ttc)
1 x Red Corner 2.1 DVD-REDC 19.6% 0.84EUR 32.00EUR 38.27EUR 32.84EUR 39.27EUR

Avec ma facture PDf j'ai :

Prix (ht) Prix (ttc) Total (ht) Total (ttc)
1 x Red Corner 33.00EUR 39.47EUR 33.00EUR 39.47EUR

Les lignes du dessous par contre sont correcte !!

Je pense qu'il faut inclure l'ecotax dans le fichier pdfinvoice.php ?

Merci de votre aide, j'ai presque plus d'ongles lol


paddybl
salut de mon coté, je n'ai pas encore essayé cette contribution. mais en effet il sera necessaire d'adapter celle-ci( et toutes celles qui utilise les prix + éco-participation)
je propose déjà des contribes connues sur mon site,(les plus dur à adapter...) mais la tache est énorme sans vraiment de retombé...

A suivre...
doudom
Merci de ta reponse. wink.gif

As ton avis quels sont les fichiers a modifier pour obtenir le meme resultat que la facture originale ?

et encore bravo pour ta contrib.

Si qulequ'un as une piste merci wink.gif

infini
Salut Paddybl

Je suis en train d'installer ta contrib sur une boutique et j'ai un problème que je n'arrive pas à résoudre.

Lorsque j'ajoute un produit, je sélectionne l'écotaxe, remplis mes champs et enregistre le tout.

Je vais côté catalog et procède à un test, tout fonctionne à merveille.

Par contre si je vais modifier le produit, le menu déroulant de l'ecotaxe revient systématiquement sur Choisissez. Donc si je ne fais pas attention, l'ecotaxe est supprimée.

J'ai vérifié plusieurs fois l'installation et je ne vois pas ou se trouve le bug.

Merci pour ton aide

Infini
paddybl
Non ce problème ne se produit sur aucune version, que je sache.

verifie que tu as bien ce code vers ligne 406
CODE
    if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {
//debut modif by paddy for cotax
      $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.ecotax_rates_id,c.ecotax_class_id, p.manufacturers_id from ((" . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd) left join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on (p.products_id = p2c.products_id)) left join " . TABLE_CATEGORIES . " c on ( p2c.categories_id = c.categories_id ) where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");
//fin modif by paddybl for ecotax
      $product = tep_db_fetch_array($product_query);

      $pInfo->objectInfo($product);
    } elseif (tep_not_null($HTTP_POST_VARS)) {
      $pInfo->objectInfo($HTTP_POST_VARS);
      $products_name = $HTTP_POST_VARS['products_name'];
      $products_description = $HTTP_POST_VARS['products_description'];
      $products_url = $HTTP_POST_VARS['products_url'];
      //debut modif by paddybl for ecotax
      $ecotax_rates_id = $HTTP_POST_VARS['ecotax_rates_id'];
      $ecotax_class_id = $HTTP_POST_VARS['ecotax_class_id'];
      //fin modif by paddybl for ecotax
    }


vérifie aussi qu'il n'y ai pas d'erreur javascript qui pourrait empéché le lancement des script de mise à jours.
tu peux placer aussi une vérification de l'id (doit etre différent de 0)
sur ces lignes
CODE
            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_ecotax_rate_pull_down('name="ecotax_rates_id" style="font-size:10px" onchange="updateGross()"',$pInfo->ecotax_class_id,$trInfo); ?></td>

ajoute en dessous temporairement ceci
CODE
<?php echo 'id de ecotax est:['.$pInfo->ecotax_rates_id.']';


sinon revérifié

A suivre...
infini
Ok j'ai trouvé mon erreur

CITATION
'name="ecotax_rates_id" style="font-size:10px" onchange="updateGross()"'


J'ai supprimé le style et rajouté une ' juste après name="ecotax_rates_id".

Donc forcément ça ne fonctionnait pas.

Merci pour ton aide

Infini
francois21
Bonsoir
j'ai essaye d'installer ecotax "ecotax_v1.3_by_paddybl_1" sur une rc1.
cote admin, sur categories, j'ai

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\admin\includes\functions\database.php on line 99

une idee sur cette erreur?.

merci d'avance

Francois
paddybl
Bonsoir, oui j'ai bien une idée...
dans l'immédiat je n'ai pas encore proposé de version pour la RC1.
j'attends le feux vert des habitués et des personnes qui participent au débuggage pour me lancer sur une version stable.
j'essai de suivre les évolutions, mais je n'ai encore eu le temps d'installer c'est version.
donc sur ce coup, je vais pas encore pouvoir t'aider.

je passe la main pour l'instant...
francois21
Bonsoir
merci pour la reponse, mais aucune piste a proposer???

Francois
Travis
Bonsoir,

J'ai moi aussi installé cette trés bonne contribution sur la MS2RC1,
que j'ai du légerement modifié pour qu'elle fonctionne mais j' ai encore quelques soucis
à régler.
Je cherche à afficher le montant de l'écotaxe dans le module product_listing.
Code
case 'PRODUCT_LIST_PRICE':
             $lc_align = 'right';
             if (tep_not_null($listing['specials_new_products_price'])) {
               $lc_text = '<span style="color:#000000;font-size:11px"><s>' .  $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</s></span>
<span style="color:#FF0000;font-size:12px">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</span>';
             } else {
               $lc_text = '<span style="font-size:14px">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</span>';
             }
             break;

J'ai bien le prix tenant compte de la TVA et de l'écotaxe mais j'aimerais que le montant de l'écotaxe apparaisse.
Je tourne un peu en rond
paddybl
essai avec ce code.
Code
case 'PRODUCT_LIST_PRICE':
             $lc_align = 'right';
             if (tep_not_null($listing['specials_new_products_price'])) {
               $lc_text = '<span style="color:#000000;font-size:11px"><s>' .  $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</s></span>
<span style="color:#FF0000;font-size:12px">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</span><br><small>Eco-participation: '.$currencies->display_price(tep_get_ecotax_price_value($listing['ecotax_rates_id']),tep_get_ecotax_rate($listing['ecotax_rates_id']), 1).'</small>';
             } else {
               $lc_text = '<span style="font-size:14px">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</span>><br><small>Eco-participation: '.$currencies->display_price(tep_get_ecotax_price_value($listing['ecotax_rates_id']),tep_get_ecotax_rate($listing['ecotax_rates_id']), 1).'</small>';
             }
             break;
Travis
Salut paddybl,

Merci de prendre de ton temps pour le suivi de cette contribution.

J'ai lu les 23 pages de ce topic ce qui m' a permis de corriger quelques petits bug et
de faire tourner cette contribution sur la MS2RC1 mais un petit problème persiste côté admin
dans admin/orders.php: Prix HT= Prix TTC et total HT= total TTC sur la ligne du produit

(dans admin/invoice.php même problème)



Sinon, pour product_listing j'ai essayé ton code,
mais le montant affiché par l'écotaxe est faux et lorsqu' aucune écotaxe n'est appliquée à un produit
ca affiche "Eco-participation: Nous contacter".
Faudrait que je mette une nouvelle condition pour que rien ne soit affiché par défaut.

Voila ce que ca me donne



Alors que le montant de l'écotaxe pour le produit de droite est de 13 euros et que celle de gauche n'en a pas.

Si tu peux m'éclairer,
Cordialement
paddybl
salut, désolé mais je ne vois pas tes capture d'écran celà me demande un mot de passe.
pour l'affichage sur listing:
ilf aut placer une condition:
Code
case 'PRODUCT_LIST_PRICE':
             $lc_align = 'right';
             if (tep_not_null($listing['specials_new_products_price'])) {
               $lc_text = '<span style="color:#000000;font-size:11px"><s>' .  $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</s></span>
<span style="color:#FF0000;font-size:12px">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</span>';
if($listing['ecotax_rates_id']!=0)$lc_text .='<br><small>Eco-participation: '.$currencies->display_price(tep_get_ecotax_price_value($listing['ecotax_rates_id']),tep_get_ecotax_rate($listing['ecotax_rates_id']), 0).'</small>';
             } else {
               $lc_text = '<span style="font-size:14px">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']),$listing['ecotax_rates_id']) . '</span>';
if($listing['ecotax_rates_id']!=0)$lc_text .='<br><small>Eco-participation: '.$currencies->display_price(tep_get_ecotax_price_value($listing['ecotax_rates_id']),tep_get_ecotax_rate($listing['ecotax_rates_id']), 0).'</small>';
             }
             break;


pour le reste désolé, mais tant que je n'installerai pas la RC1, il va m'etre difficile de répondre.
Travis
J'avais un ht.access que j'avais oublié de retirer, c'est désormais fait.

Pour product_listing c'est super, c'est exactement ce que je voulais faire. smile.gif

Tu devrais pouvoir désormais voir l'image de l'admin qui génere encore une petite erreur,
c'est le dernier bug pour la RC1 si tu as une idée.

Je cherche de mon côté.
Merci encore
paddybl
salut, c'est difficile à dire comme çà...
quelles sont les valeurs juste (si en à), fausse.
as tu appliqué les modifications à la classe orders.php et currencies.php de l'administration?
revois aussi l'intégration du fichier general.php

A suivre...
Travis
En fait, il s'agit juste d'une petite modif dans admin/orders.php et admin/invoice.php
pour qu' ecotax fonctionne avec la RC1
il faut remplacer
Code
'        <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price']-$order->products[$i]['products_ecotax'], $order->products[$i]['tax']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
    '        <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['price']*$order->products[$i]['qty']+tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
            '      
            
             <td class="dataTableContent" align="right" valign="top"><b>' .$currencies->format(tep_add_tax($order->products[$i]['final_price']-$order->products[$i]['products_ecotax'], $order->products[$i]['tax'])* $order->products[$i]['qty']+($order->products[$i]['products_ecotax']* $order->products[$i]['qty']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n";


par
Code
'        <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price']-$order->products[$i]['products_ecotax'], $order->products[$i]['tax'], true), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
    '        <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['price']*$order->products[$i]['qty']+tep_get_ecotax_price_value($order->products[$i]['ecotax_rates_id'])*$order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
            '      
            
             <td class="dataTableContent" align="right" valign="top"><b>' .$currencies->format(tep_add_tax($order->products[$i]['final_price']-$order->products[$i]['products_ecotax'], $order->products[$i]['tax'], true)* $order->products[$i]['qty']+($order->products[$i]['products_ecotax']* $order->products[$i]['qty']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n";


et les prix s'affichent correctement.
Il ne me reste plus qu' un petit souci avec l'affichage du pop-up dans l'admin et tout sera ok.

Merci encore à paddybl.
groover
Bonjour,

je cherche le petit bout de code à insérer dans product_info.php pour avoir le prix de l'article en TTC avec ecotax mais sans la devise c'est à dire sans $currencies->
c'est pour la calculette de 1euro.com

Merci pour votre réponse
groover
je me reponds à moi même. après quelques recherches, voici le code que j'ai adapté.

Code
$ecotax=tep_get_ecotax_price_value($product_info['ecotax_rates_id'])+tep_get_ecotax_taxable($product_info['ecotax_rates_id']);

              if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
              
          $eurocom =  tep_add_tax($new_price, tep_get_tax_rate($product_info['products_tax_class_id']));
          $eurocom += $ecotax;
           } else {
           $eurocom = tep_add_tax($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
           $eurocom += $ecotax;
            }


La valeur pour la calculette étant $eurocom
Sabin
Bonjour,

Puis-je vous demander votre avis, je suis bêtement bloqué à l'exécution du "ecotax.sql" au début de l'installation de la contribution ecotax sad.gif
Même en lançant juste le premier paragraphe d'opérations SQL, phpmyadmin me répond toujours
Code
#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'collate latin1_general_ci NOT NULL,
   `ecotax_description` var


Voici le premier paragraphe sql, qui suffit à faire échouter l'opération :
Code
DROP TABLE IF EXISTS `ecotax`;
CREATE TABLE `ecotax` (
  `ecotax_rates_id` int(11) NOT NULL auto_increment,
  `tax_zone_id` int(11) NOT NULL,
  `ecotax_class_id` int(11) NOT NULL,
  `tax_rate` decimal(7,4) NOT NULL,
  `code_ecotax` varchar(50) collate latin1_general_ci NOT NULL,
  `ecotax_description` varchar(255) collate latin1_general_ci NOT NULL,
  `ecotax_price` decimal(15,4) NOT NULL,
  `last_modified` datetime default NULL,
  `date_added` datetime NOT NULL,
  PRIMARY KEY  (`ecotax_rates_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=177;


Pourtant, d'habitude, aucun souci. On est sur un serveur mutualisé OVH 90 plan, SQL5, encodage UTF8 semble-t-il.

Et, étrangement, si j'exécute la version pour sql4, là ça fonctionne... mais on est bel et bien en SQL5 !

A votre avis, est-ce possible d'utiliser la version pour SQL4 alors que votre bdd tourne sous SQL5, ou est-ce que ça ne va pas marcher à l'usage ? - merci si vous pouvez me dire !

Signé un Sabin médusé mellow.gif
paddybl
Salut aucun soucis à exécuter la version mysql 4. il sagit de l'encodage qui n'est pas prit correctement en compte (latin1_general_ci )
l'essentiel c'est d'avoir une version installé.

A suivre...
Sabin
D'accord, merci de la confirmation smile.gif

J'ai encore un petit peu testé, et après l'installation finale de ecotax, j'ai constaté que dans mon interface d'admin, tous les champs issus de l'import du fichier sql de la contribution écotaxe, avaient les caractères accentués remplacés par de la soupe ascii. Comme de juste quand on a un conflit d'encodage, notre boutique est en utf-8, on a importé des données en latin-...

Je donne le "truc" si cela peut aider des gens confrontés au même problème, on a trouvé comment circonvenir cela.

On part du principe que cela concerne des gens pour lesquels par défaut la bdd et phpmyadmin sont en UTF8, des gens comme nous, et pour qui l'import du fichier d'installation pour sql 5 a échoué.
- Ouvrir phpmyadmin, cliquer l'onglet SQL dans la colonne de droite, copier-coller le contenu du .sql d'installation pour SQL 4
- Dans firefox (je ne sais pas où ça sera sous IE), faire Affichage > Encodage des caractères > cliquer Occidental (ISO 8859-1).
- cela recharge la page, et les accents dans le texte collé deviennent de la soupe ascii, c'est normal
- appliquer ces requêtes SQL
- puis c'est fini. Quand vous chargez l'admin de votre site, vous verrez que les accents sont de nouveaux normaux, tout en utf-8.

C'est franchement du bricolage, mais comme c'est un "truc" qui a fonctionné pour se sortir de l'embarras, je le partage tout de même smile.gif
delux
Bonjour Paddy,

Avant tout merci pour ta superbe contribution et tout ces efforts smile.gif

Voila j'ai installer la version la plus récente de ta contribution tout semble fonctionner correctement a part que j'ai un espece de bug au niveau du prix dans ma fiche produit que j'affiche en TTC.

Apres avoir installer ta contribution je n'arrivais pas a obtenire le prix que je désirais dans ma fiche produit
exemple :

je vends une casserolle 29.90 € TTC
j'ai essayer d'y appliquer une écotaxe mais je doit admettre que c'était un vraie bordel, l'écotaxe s'appliquait mais ou bien en "plus" du prix TTC ou bien cela s'enlevait du prix TTC ca dépend si je tape mon prix avant ou apres la selection de l'écotaxe.

donc je n'arrivais pas a obtenire le prix TTC que je désirais
donc j'ai supprimé l'écotaxe pour ce produit pour re-tester comme avant et je n'arrive meme plus a avoir un prix correcte
par exemple si je met 30 € dans l'admin et bien dans ma fiche produit j'obtient 28.01 € je ne comprend vraiment plus rien si tu pouvait éclairer ma lanterne ce serait tres sympa
merci par avance
paddybl
Bonjour,
Ton problème se situe depuis le départ sur le fichier categories.php (mais peut ètre pas seulement).
En effet le calcul s'effectue "dynamiquement" en javascript par rapport au prix hors taxe de ton produit en ajoutant l' ecotax HT+ la tva de la zone concerné (Eco-participation pour la france recupel pour la belgique= tva différente)
si le calcul était faux il peut y avoir plusieurs raisons.
la 1ere qui me vient a l'esprit est evidemment que le code à ajouter au fichier n'est pas ajouté correctement. (à vérifier)
la seconde (un classique) la zone de taxe spécifier dans les taux d'écotax est vide ou n'est pas la bonne (revenir en arrière dans ce poste j'expliquais comment réactualiser sa base en 1 fois pour tous les taux)
les autres plus vicieuses:
-le calcul des tarifs ne se fait pas sur le bon nombre de décimales (configuration -> Nb de décimale-> mini 3)
-Le taux d'ecotax créé n'est pas calculé sur 3 décimales (ex: 1€ ttc / 19.6 de tva ne fait pas 0.80 ht mais bien 0.8361 ! celà commence à se remarquer sur 1000 pièces, non?)

maintenant si ton résultat continue à ètre faux, replace une sauvegarde. mais pour info, vu la liste des contributions que tu indiques, j'ai noté que pas mal nécessite une adaptation pour pouvoir gérer l'éco-participation. Celà ne viens pas d'Ecotax en lui même mais bien du fait qu'il sagisse d'une somme que l'on ajoute au prix de base, qui je le rappel est calculé sur du HT

A suivre...
delux
Bonjour paddy,

Merci pour ta réponse et ta disponibilité, j'ai hier re mis ma sauvegarde donc je vais recommencer toute l'installation.
Effectivement j'ai du adapter ton code par moment car j'ai installer pas mal de contribution.
je vais recommencer en suivant tes conseille (si ca marche pour les autres y'a pas de raison que ca marche pas pour moi) mais comme la contribution est tres longue a installer je me suis dit que ce serait plus rapide de te demander ou peut etre l'erreure... je vais recommencer l'installation en prenant plus mon temps par contre paddy (just pour etre sure) peux tu me donner un lien pour telecharger la derniere version celle qui a reçu le plus de correctife et celle qui est la plus a jour je vais aller voir su ton iste en attendant.
quant j'en aurai fini avec l'écotaxe je ne manquerait pas de te fair un don wink.gif car vue le travaille fournit et ta disponibilité je pense que c'est plus que mérité !

Bon courage !

PS : pour info j'avais installer la 1.3
delux
salut Paddy,

Et bien écoute j'ai fait la ré-installation et je doit dire que ca marche nikel maintenant, le prix qui s'affiche est un peu plus logique qu'avant. le seul probleme cette fois c'est que le prix de l'écotaxe s'ajoute a celui du prix, exemple :
je vend un produit 29.90 si je lui applique une écotaxe a 13 € ttc le prix de mon produit passe a 42.90 € (surement normale d'ailleur) dois-je désactiver l'ajout du prix de l'écotaxe au prix du produit dans l'admin ?

Parce que moi ce que je voulais c'est en fait vendre mon produit a 29.90 € avec les 13 € d'écotaxe inclus dans le prix mais je ne voit pas comment fair...

si qu'lqu'un pouvait m'aider ce serait tres sympa smile.gif

merci par avance
delux
je comprend pas ca a fini par marcher....j'ai pas fait grand chose pour mais bon je ocntinue mes test !
paddybl
salut, je profite e mon insomnie pour te répondre.
En effet Ecotax n'est pas simple à installé. Surtout si tu as beaucoup de contributions.
A l'origine j'avais commenté mon code pour situé les modifs, donc avec un bon comparateur cà aide.
MAintenant concernant le fonctionnement tu as 2 solutions. mais il faut bien à un moment que l'Eco-participation apparaisse quelques part...
solution 1 :
tes prix se réajuste en ajoutant l'Ecotax. donc si produit à 29,90 et ecotax à 0.10 total 30,00
évidemment ton prix n'est plus de 29,90. seul solution resaisir 29,90 dans le champ ttc pour que le calcul se refasse pour le montant ht.
mais dans ce cas on va dire que c'est toi qui paye l'ecotax...
tu auras peut ètre déjà remarqué qu'en éditant la catégorie parente de ton produit, tu as un champ "appliquer l'ecotax à cette catégorie" qui te permet d'appliquer la même éco-participation à tous les produits de cette catégorie. c'est pratique surtout si tu as beaucoup de produit.

solution 2:
le prix affiché reste le même mais l'éco-participation est ajouté au moment du paiement (panier). Celà se règle dans l'administration du module.

maintenant concernant les mise à jours et les upgrades. hélas faute de temps, je n'ai pas encore regardé la RC1 d'osCommerce donc ECOTAX reste dans sa version "stable" pour ms2.2. Je sais que certains fidèles du forum ont regardé est réussi la migration. si ils ont le temp peut ètre qu'ils posteront un additif sur le site. je trouverais sa super, car je ne me réserve pas du tous l'exclusivité de cette version. Concernant les upgrades Ecotax plus!, la version export et les versions CRELOADED, je ne me permettrais pas dans parler plus ici vu que ces contribes ou versions ne sont pas "libre" au même titre qu'ECOTAX 1.3. un mp si besoin...

Maintenant dans un ordre plus général, ca me fait toujours chaud au coeur quand je tombe sur un site ou je reconnais Ecotax wub.gif
Je sais que c'est un vrai gros boulot de concevoir, corrigé et suivre une contribution, mais j'invite vraiment tous ceux qui n'ont pas encore franchit le pas à se lancer! chacun à sa mesure: une traduction, une évolution, une aide même minime pour corriger et remonter les bugs... c'est çà l'esprit communautaire.hélas parfois je trouve qu'il se perd, comme le faisait remarqué shoprun et d'autres habitués. Allez j'arrète là...

A suivre...
delux
salut Paddy,

Non ne t'inquiete pas tout fonctionne a merveille pour l'écotaxe, je me suis toutefois retoruvez confrontez a certains petit problemes sans gravité toutefois. j'avais installer la contribution product_listing_col et j'ai réussit a modifier pour que le prix s'affiche avec l'écotaxe incluse, j'ai modifier le module product_new ca c'est nikel, par contre pour le module also purchase product j'avais jamais fait gaffe mais le prix ne s'affiche pas dans ce module heureusement car je n'aurais pas su modifié le code. le gros soucis c'est la contribution "related product" qui permet de fair de la vente croisé pour reprendre le bon exemple de os commerce fr "vous achetez les fixations ? achetez les skis qui vont avec" la par contre j'ai pas réussit a modifier l'affichage du prix, j'ai un prix qui s'affiche sans l'écotaxe alors la seul solution que j'ai trouvé c'est de ne pas afficher le prix. sinon j'ai également remarquer (mais peut-etre aucun rapport avec l'écotaxe) que lors d'une comment dans la page checkout_payment j'ai les frais de port qui s'affiche en HT sur cette page la uniquement et la je ne comprend pas...

sinon la contribution marche nickel Paddy on en avait vraiment besoin d'une ocntribution qui gere l'écotaxe de maniere pro et propre, sinon j'ai remarquer un bug sur la facture conçernant le tableaux d'information sur l'écotaxe j'ai essayer de changer le positionnement du tableau mais en vain j'ai du alors carrément mettre la position en dure directement dans le code et ca a marché !

donc voila j'ai juste le probleme avec le related product, Paddy je te met le code ici si tu pouvait essayer d'y jetter un oeil ce serait sympa de ta part (et meme si ta pas le temps t'es "sympa" quant meme wink.gif )
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
</head>

<body>
<?php

/*
  $Id: optional_related_products.php, ver 1.0 02/05/2007 Exp $

  Copyright (c) 2007 Anita Cross (http://www.callofthewildphoto.com/)

  Part of Contribution: Optional Related Products Ver 4.0

  Based on code from Optional Relate Products, ver 2.0 05/01/2005
  Copyright (c) 2004-2005 Daniel Bahna (daniel.bahna@gmail.com)

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

  Released under the GNU General Public License
*/

  $orderBy = 'ORDER BY ';
  $orderBy .= (RELATED_PRODUCTS_RANDOMIZE)?'rand()':'pop_order_id, pop_id';
  $orderBy .= (RELATED_PRODUCTS_MAX_DISP)?' limit ' . RELATED_PRODUCTS_MAX_DISP:'';
  $attributes = "
         SELECT
         pop_products_id_slave,
         products_name,
         products_model,
         products_price,
         products_quantity,
         products_tax_class_id,
         products_image
         FROM " .
         TABLE_PRODUCTS_RELATED_PRODUCTS . ", " .
         TABLE_PRODUCTS_DESCRIPTION . " pa, ".
         TABLE_PRODUCTS . " pb
         WHERE pop_products_id_slave = pa.products_id
         AND pa.products_id = pb.products_id
         AND language_id = '" . (int)$languages_id . "'
         AND pop_products_id_master = '".$HTTP_GET_VARS['products_id']."'
         AND products_status='1' " . $orderBy;
  $attribute_query = tep_db_query($attributes);

  if (mysql_num_rows($attribute_query)>0) {
  $count = 0;
?>
<tr>
  <td>
    <table class="productlisting2" border="0" cellspacing="0" cellpadding="0" width="100%">
      <!--DWLayoutTable-->
    <tr>
      <td width="20" height="20" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="/images/infobox/thema/1/french/corner_left_news.gif">
        <!--DWLayoutTable-->
        <tr>
          <td width="20" height="20">&nbsp;</td>
            </tr>
      </table></td>
      <td width="935" align="center" valign="middle" class="productListing-heading2"> <?php echo TEXT_RELATED_PRODUCTS ?> </td>
    <td width="20" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <tr>
        <td width="20" height="20" valign="top"><img src="/images/infobox/thema/1/french/corner_right_news.gif" width="20" height="20" alt="" /></td>
        </tr>
    </table></td>
    </tr>
    <tr>
      <td height="21" colspan="3" align="center" valign="top" class="productListing-data2">
        <table border="0" cellspacing="0" cellpadding="8" width="100%" align="center">
          <tr>
            <?php
    while ($attributes_values = tep_db_fetch_array($attribute_query)) {
      $products_name_slave = ($attributes_values['products_name']);
      $products_model_slave = ($attributes_values['products_model']);
      $products_qty_slave = ($attributes_values['products_quantity']);
      $products_id_slave = ($attributes_values['pop_products_id_slave']);
      if ($new_price = tep_get_products_special_price($products_id_slave)) {
        $products_price_slave = $currencies->display_price($new_price, tep_get_tax_rate($attributes_values['products_tax_class_id']));
      } else {
        $products_price_slave = $currencies->display_price($attributes_values['products_price'], tep_get_tax_rate($attributes_values['products_tax_class_id']));
      }
      echo '<td class="productListing-data" align="center">' . "\n";
      // show thumb image if Enabled
      if (RELATED_PRODUCTS_SHOW_THUMBS == 'True') {
        echo '<table width="140" border="0" cellpadding="0" cellspacing="15" background="images/bckgimg.gif">
  <!--DWLayoutTable-->
  <tr>
    <td width="110" height="140" align="center" valign="middle"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_id_slave) . '">' . "\n"
             . tep_image(DIR_WS_IMAGES . $attributes_values['products_image'], $attributes_values['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="" vspace=""').'</a></td>
  </tr>
</table>' . "\n";
      }
      $caption = '';
      if (RELATED_PRODUCTS_SHOW_NAME == 'True') {
        $caption .= '<p>' . $products_name_slave;
        if (RELATED_PRODUCTS_SHOW_MODEL == 'True') {
          $caption .= sprintf(RELATED_PRODUCTS_MODEL_COMBO, $products_model_slave);
        }
        $caption .= '</p>' . "\n";
      } elseif (RELATED_PRODUCTS_SHOW_MODEL == 'True') {
        $caption .=  '<p>' . $products_model_slave . '</p>' . "\n";
      }
      if (RELATED_PRODUCTS_SHOW_PRICE == 'True') {
        $caption .= '<p>' . sprintf(RELATED_PRODUCTS_PRICE_TEXT, $products_price_slave) . '</p>' . "\n";
      }
      if (RELATED_PRODUCTS_SHOW_QUANTITY == 'True') {
        $caption .= '<p>' . sprintf(RELATED_PRODUCTS_QUANTITY_TEXT, $products_qty_slave) . '</p>' . "\n";
      }
      echo '<a href="'
                        . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_id_slave) . '">'
                        . $caption . '</a>' . "\n";
      if (RELATED_PRODUCTS_SHOW_BUY_NOW== 'True') {
        echo '<a href="'
                        . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action'))
                        . 'action=rp_buy_now&rp_products_id=' . $products_id_slave) . '">'
                        . tep_image_button('button_rp_buy_now.gif', IMAGE_BUTTON_RP_BUY_NOW) . '</a>';
      }
      echo '</td>' . "\n";
      $count++;
      if ((RELATED_PRODUCTS_USE_ROWS == 'True') && ($count%RELATED_PRODUCTS_PER_ROW == 0)) {
        echo '</tr><tr>' . "\n";
      }
    }
?>
            </tr>
        </table></td>
    </tr>
    </table>
  </td>
</tr>
<?php
}
?>
</body>
</html>


Merci par avance Paddy
paddybl
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
</head>

<body>
<?php

/*
  $Id: optional_related_products.php, ver 1.0 02/05/2007 Exp $

  Copyright (c) 2007 Anita Cross (http://www.callofthewildphoto.com/)

  Part of Contribution: Optional Related Products Ver 4.0

  Based on code from Optional Relate Products, ver 2.0 05/01/2005
  Copyright (c) 2004-2005 Daniel Bahna (daniel.bahna@gmail.com)

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

  Released under the GNU General Public License
*/

  $orderBy = 'ORDER BY ';
  $orderBy .= (RELATED_PRODUCTS_RANDOMIZE)?'rand()':'pop_order_id, pop_id';
  $orderBy .= (RELATED_PRODUCTS_MAX_DISP)?' limit ' . RELATED_PRODUCTS_MAX_DISP:'';
  $attributes = "
         SELECT
         pop_products_id_slave,
         products_name,
         products_model,
         products_price,
         ecotax_rates_id,
         products_quantity,
         products_tax_class_id,
         products_image
         FROM " .
         TABLE_PRODUCTS_RELATED_PRODUCTS . ", " .
         TABLE_PRODUCTS_DESCRIPTION . " pa, ".
         TABLE_PRODUCTS . " pb
         WHERE pop_products_id_slave = pa.products_id
         AND pa.products_id = pb.products_id
         AND language_id = '" . (int)$languages_id . "'
         AND pop_products_id_master = '".$HTTP_GET_VARS['products_id']."'
         AND products_status='1' " . $orderBy;
  $attribute_query = tep_db_query($attributes);

  if (mysql_num_rows($attribute_query)>0) {
  $count = 0;
?>
<tr>
  <td>
    <table class="productlisting2" border="0" cellspacing="0" cellpadding="0" width="100%">
      <!--DWLayoutTable-->
    <tr>
      <td width="20" height="20" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="/images/infobox/thema/1/french/corner_left_news.gif">
        <!--DWLayoutTable-->
        <tr>
          <td width="20" height="20">&nbsp;</td>
            </tr>
      </table></td>
      <td width="935" align="center" valign="middle" class="productListing-heading2"> <?php echo TEXT_RELATED_PRODUCTS ?> </td>
    <td width="20" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <tr>
        <td width="20" height="20" valign="top"><img src="/images/infobox/thema/1/french/corner_right_news.gif" width="20" height="20" alt="" /></td>
        </tr>
    </table></td>
    </tr>
    <tr>
      <td height="21" colspan="3" align="center" valign="top" class="productListing-data2">
        <table border="0" cellspacing="0" cellpadding="8" width="100%" align="center">
          <tr>
            <?php
    while ($attributes_values = tep_db_fetch_array($attribute_query)) {
      $products_name_slave = ($attributes_values['products_name']);
      $products_model_slave = ($attributes_values['products_model']);
      $products_qty_slave = ($attributes_values['products_quantity']);
      $products_id_slave = ($attributes_values['pop_products_id_slave']);
      if ($new_price = tep_get_products_special_price($products_id_slave)) {
        $products_price_slave = $currencies->display_price($new_price, tep_get_tax_rate($attributes_values['products_tax_class_id']),$attributes_values['ecotax_rates_id']);
      } else {
        $products_price_slave = $currencies->display_price($attributes_values['products_price'], tep_get_tax_rate($attributes_values['products_tax_class_id']),$attributes_values['ecotax_rates_id']);
      }
      echo '<td class="productListing-data" align="center">' . "\n";
      // show thumb image if Enabled
      if (RELATED_PRODUCTS_SHOW_THUMBS == 'True') {
        echo '<table width="140" border="0" cellpadding="0" cellspacing="15" background="images/bckgimg.gif">
  <!--DWLayoutTable-->
  <tr>
    <td width="110" height="140" align="center" valign="middle"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_id_slave) . '">' . "\n"
             . tep_image(DIR_WS_IMAGES . $attributes_values['products_image'], $attributes_values['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="" vspace=""').'</a></td>
  </tr>
</table>' . "\n";
      }
      $caption = '';
      if (RELATED_PRODUCTS_SHOW_NAME == 'True') {
        $caption .= '<p>' . $products_name_slave;
        if (RELATED_PRODUCTS_SHOW_MODEL == 'True') {
          $caption .= sprintf(RELATED_PRODUCTS_MODEL_COMBO, $products_model_slave);
        }
        $caption .= '</p>' . "\n";
      } elseif (RELATED_PRODUCTS_SHOW_MODEL == 'True') {
        $caption .=  '<p>' . $products_model_slave . '</p>' . "\n";
      }
      if (RELATED_PRODUCTS_SHOW_PRICE == 'True') {
        $caption .= '<p>' . sprintf(RELATED_PRODUCTS_PRICE_TEXT, $products_price_slave) . '</p>' . "\n";
      }
      if (RELATED_PRODUCTS_SHOW_QUANTITY == 'True') {
        $caption .= '<p>' . sprintf(RELATED_PRODUCTS_QUANTITY_TEXT, $products_qty_slave) . '</p>' . "\n";
      }
      echo '<a href="'
                        . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_id_slave) . '">'
                        . $caption . '</a>' . "\n";
      if (RELATED_PRODUCTS_SHOW_BUY_NOW== 'True') {
        echo '<a href="'
                        . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action'))
                        . 'action=rp_buy_now&rp_products_id=' . $products_id_slave) . '">'
                        . tep_image_button('button_rp_buy_now.gif', IMAGE_BUTTON_RP_BUY_NOW) . '</a>';
      }
      echo '</td>' . "\n";
      $count++;
      if ((RELATED_PRODUCTS_USE_ROWS == 'True') && ($count%RELATED_PRODUCTS_PER_ROW == 0)) {
        echo '</tr><tr>' . "\n";
      }
    }
?>
            </tr>
        </table></td>
    </tr>
    </table>
  </td>
</tr>
<?php
}
?>
</body>
</html>


d'habitude je ne le fait pas ,mais pour une fois...
delux
Merci beaucoup Paddy je vais tester et je te tiens au jus smile.gif
audioshop
salut et merci pour cette contrib,

moi je rencontre un petit souci au niveau du fichier product_info.php

j'ai installé dernièrement HeaderTags_SEO_V_3.0.7 et les deux contrib on un changement à faire pour la même ligne!

je m'explique!

en installant ecotax je vois que je dois modifier cette ligne du fichier catalog/product_info.php:

Code
--------------------------------
vers ligne 102 trouvez
--------------------------------
            <td class="pageHeading" align="right" valign="top"><?php echo $products_price; ?></td>
--------------------------------  
remplacer par
--------------------------------
            <!-- debut modif by paddybl for ecotax-->
            <td  align="right" valign="top"><?php echo '<div class="pageHeading">'.$products_price.'</div>'; ?>




le probleme est que pour moi cette ligne correspond à celle-ci:

Code
<?php /*** Begin Header Tags SEO ***/ ?>
            <td valign="top"><h1><?php echo $products_name; ?></h1></td>
            <td align="right" valign="top"><h1><?php echo $products_price; ?></h1></td>
            <?php /*** End Header Tags SEO ***/ ?>



ce qui veut dire que cette ligne pour moi est deja modifier par headerTags !

si on regarde de près il n'y as pas une grande différence entre ta modification du code et celle de headerTags

il il y as les balises <div> en plus! ce que je souhaiterais savoir c'est comment adapter ce petit bout de code pour que les deux contrib fonctionne?

par défaut je vais choisir de laisser cette ligne comme elle est actuellement et on verra bien ce qui ce passe!

je suppose qu'il y auras un petit bug dans les infos produits!


voila si vous passer par là et que vous pouvez m'aider smile.gif

merci a tous bon samedi
audioshop
bon en faite j'ai modifier cette ligne:

Code
<td align="right" valign="top"><h1><?php echo $products_price; ?></h1></td>



qui me pose probleme ! en ça:

Code
<td align="right" valign="top"><h1><?php echo '<div class="pageHeading">'$products_price.'</div>'; ?></h1>
</td>



vous pouvez me dire si ça va fonctionner?

merci smile.gif
audioshop
oauis en faite ta contrib n'est carrément pas compatible avec headerTags SEO!

sa fais déjà 5 fois que j'interfère avec le code d'headerTags SEO !

je vais testé jusqu'à la fin mais je doute que ça fonctionne !

tu n'aurais pas fais une contrib compatible avec headerTags?

je m'étonne que personne est rencontrer de problème avec ces deux contrib , j'ai beau faire des recherche sur le forum je ne trouve rien !

vu le monde qui ont installer ces 2 contrib il devrais y avoir quelques chose, à croire que je suis un cas isolé blink.gif


ok! bon j'ai réussis à l'installer sans trop d'erreur !

pour mon premier problème j'ai tout compte fais supprimer le code de header tag et laisser celui de cette contrib, sinon j'avais deux fois le prix qui s'affichais sur la page produit !

rico76
Bonjour,
Moi j'ai aucun problème de cohabitation avec les deux contributions d'installées cool.gif
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.