Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Contributions _ [Astuce] Ajouter le montant Total HT

Écrit par : M&M's 14 Dec 2005, 13:30

Apparemment il est obligatoire de faire apparaître le montant Total HT sur les factures (même pour les particuliers). Aillant choisi d’afficher mes prix en TTC sur le site, le total HT n’apparaissait ni dans checkout_confirmation.php ni dans la facture ni dans account_history_info.php. Une astuce existe déjà sur le forum mais l’adition du total HT avec la TVA n’est pas toujours égale au total TTC. Pour parer à ce problème j’ai soustrait la TVA au total TTC. Les modifications sont très simples et restent compatibles avec la contribution TVA intracommunautaire et les modules de paiement (penser à laisser tout de même le total TTC en dernier dans l’ordre d’affichages des modules dans l’admin).

Si vous souhaitez également faire de même voici la procédure à suivre :

Editer le fichier : includes/classes/order.php

Rechercher :

CODE
     if (DISPLAY_PRICE_WITH_TAX == 'true') {
       $this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost'];
     } else {
       $this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
     }

Remplacer par :
CODE
     if (DISPLAY_PRICE_WITH_TAX == 'true') {
       $this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost'];
     } else {
       $this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
     }
    $this->info['totalHT'] = $this->info['total'] - $this->info['tax'];

Créer un fichier ot_total_ht.php à placer dans includes/modules/order_total/
CODE
<?php
/*
 $Id: ot_total.php,v 1.7 2003/02/13 00:12:04 hpdl Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 class ot_total_ht {
   var $title, $output;

   function ot_total_ht() {
     $this->code = 'ot_total_ht';
     $this->title = MODULE_ORDER_TOTAL_HT_TOTAL_TITLE;
     $this->description = MODULE_ORDER_TOTAL_HT_TOTAL_DESCRIPTION;
     $this->enabled = ((MODULE_ORDER_TOTAL_HT_TOTAL_STATUS == 'true') ? true : false);
     $this->sort_order = MODULE_ORDER_TOTAL_HT_TOTAL_SORT_ORDER;

     $this->output = array();
   }

   function process() {
     global $order, $currencies;

     $this->output[] = array('title' => $this->title . ':',
                             'text' => '<b>' . $currencies->format($order->info['totalHT'], true, $order->info['currency'], $order->info['currency_value']) . '</b>',
                             'value' => $order->info['totalHT']);
   }

   function check() {
     if (!isset($this->_check)) {
       $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_ORDER_TOTAL_HT_TOTAL_STATUS'");
       $this->_check = tep_db_num_rows($check_query);
     }

     return $this->_check;
   }

   function keys() {
     return array('MODULE_ORDER_TOTAL_HT_TOTAL_STATUS', 'MODULE_ORDER_TOTAL_HT_TOTAL_SORT_ORDER');
   }

   function install() {
     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Affichage du total', 'MODULE_ORDER_TOTAL_HT_TOTAL_STATUS', 'true', 'Voulez-vous montrer le total de la commande HT ?', '6', '1','tep_cfg_select_option(array(\'true\', \'false\'), ', now())");
     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ordre de tri', 'MODULE_ORDER_TOTAL_HT_TOTAL_SORT_ORDER', '4', 'Ordre de tri pour l\'affichage (Le plus petit nombre est montr&eacute; en premier).', '6', '2', now())");
   }

   function remove() {
     tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
   }
 }
?>

Créer un fichier ot_total_ht.php à placer dans includes/languages/French/modules/order_total/
CODE
<?php
/*
 $Id: ot_total.php,v 1.1 2002/04/03 23:09:49 hpdl Exp $

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

 Copyright (c) 2002 osCommerce

 Released under the GNU General Public License
 Translated by Gunt - Contact : webmaster@webdesigner.com.fr
*/

 define('MODULE_ORDER_TOTAL_HT_TOTAL_TITLE', 'Total HT');
 define('MODULE_ORDER_TOTAL_HT_TOTAL_DESCRIPTION', 'Total HT Commande');
?>

Enfin installer le module dans l’admin, puis trier les modules en fonction de l’ordre souhaité.

Écrit par : thireg 14 Feb 2006, 00:19

Bonjour,

pardonne moi mon ignorance , mais....commetn fait-on ensuite pour installer ce module dans l'admin ! j'ai bô fouiller, je trouve pas ..... confused.gif

Merci ++++

Écrit par : M&M's 14 Feb 2006, 17:14

Salut,

Après avoir placé le fichier ot_total_ht.php dans includes/modules/order_total/

arrow.gif tu ouvre l'admin de ton site et dans Modules > Total commande tu doit avoir "Total HT" il et ne te reste plus alors qu'à le sélectionner, l'installer, le mettre sur True et lui dire dans quel ordre tu souhaite le voir s'afficher ...

Voila blush.gif

Écrit par : Ryu007 14 Feb 2006, 18:53

Très sympa ton code et félicitation pour l'"astuce" !
Mais pourquoi ne pas faire directement une contribution ?

Petit bemol, pour ceux qui ont des commandes sur leur site ?
Je suppose que ça n'affiche pas le total HT dans l'historique client ni dans l'administration ? Vu que c'est enregistrer dans la base de donnée ?

Cordialement

Écrit par : marine77 22 Feb 2006, 15:55

Bonjour et merci pour cette astuce que je viens de mettre en place, suite à la demande de ma comptable...
Sans compter que pour mes stats de vente, je vais gagner du temps à avoir le montant total HT déjà tout calculé !

Mais voilà : j'utilise les prix TTC sur mon site ET je facture les frais de port au forfait, ce qui implique que je ne facture pas de TVA sur les frais de transport...
J'ai donc modifié les lignes suivantes :

Dans le fichier includes/classes/order.php :

REMPLACER :

CITATION
if (DISPLAY_PRICE_WITH_TAX == 'true') {
$this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost'];
} else {
$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
}
$this->info['totalHT'] = $this->info['total'] - $this->info['tax'];



PAR :
CITATION
if (DISPLAY_PRICE_WITH_TAX == 'true') {
$this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost'];
} else {
$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
}

$this->info['totalHT'] = $this->info['subtotal'] - $this->info['tax'];



Ensuite, j'ordonne l'affichage tel que suit : (dans l'admin, module Total commande)
1 Total HT
2 TVA
3 Sous-total TTC
4 Coupons de réduction
5 Chèque cadeau
6 Expédition
7 Total TTC

Et là tout devient très clair pour tout le monde ! Mon client, moi et ma comptable ;o))

En espérant que cela sera utile à d'autres ;o)

Marie-Aude

Écrit par : M&M's 22 Feb 2006, 21:50

Bonsoir Marine77,

CITATION
j'utilise les prix TTC sur mon site ET je facture les frais de port au forfait, ce qui implique que je ne facture pas de TVA sur les frais de transport...

Je facture également les frais de port au forfait, cependant après avoir recherché sur différents site du gouvernement, demandé à plusieurs experts comptables, appelé mon commissaire au compte ainsi qu'au centre des impôts, j'ai constaté que personne n'était d'accord. Aussi, par précaution j'ai décidé d'appliquer une TVA à 19,6 sur les frais de port. Le http://www.oscommerce-fr.info/forum/index.php?showtopic=20017&view=findpost&p=106637 résume bien ces différentes possibilités

excl.gif La modification que tu presente permet d'afficher le soustotal HT et non le total HT pense à le modifier sur tes factures wink.gif

Écrit par : Maverick 23 Feb 2006, 09:38

Salut à tous

facturant le frais de port TTC (Chronopost) j'ai fait la meme modif que marine, sans l'avoir vue... laugh.gif
On obtient ainsi le montant HT des produits commandés (ce qui nous importe le plus), puis viennent se rajouter les autres modules.

Sinon, j'avais le montant des produits HT+montant HT des frais de port comme montant Total HT, ce qui n'était pas très compréhensible pour le client.

Ce qui donne par exemple:

CITATION
Total HT des produits commandés: 111.20€
Sous Total TTC: 133.00€
Chronopost (0.44Kg, emballage compris, montant TTC, pour une livraison en France): 12.56€
Total TTC: 145.56€
dont TVA 19.6%: 23.86€


wink.gif

Écrit par : pl3x 19 May 2006, 10:26

super tuto smile.gif
Par contre à la compta, ils me demande de bien vouloir mettre le Total Hors Taxes dans la facture.

Ce tuto affiche cela mais lors du passage de la commande et ne modifie pas l'affichage du invoice.php généré dans l'admin.
J'ai regardé un peu le code qui gère ca dans le invoice.php et blink.gif blink.gif blink.gif blink.gif je pige rien pour l'instant lol

Quelqu'un aurais un idée s'il vous plait ?
Je ne trouve pas les bons fichiers sad.gif

Écrit par : djiibii 24 May 2006, 18:02

Bonjour à tous !

Voilà j'utilise le module total HT. L'affichage dans checkout_confirmation marche super mais lorsque je confirme ma commande, il m'affiche l'erreur suivante :

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\includes\languages\french\modules\order_total\ot_total_ht.php:3) in c:\program files\easyphp1-8\www\includes\functions\general.php on line 29

Qqun a-t-il déjà rencontré ce problème ? idea.gif

Pour info le module total HT desinstallé, checkout_process fonctionne parfaitement.

Merci par avance si qqun à une piste !!! biggrin.gif

Écrit par : lateralus 23 Jun 2006, 23:31

CITATION(djiibii @ 24 May 2006, 12:02) [snapback]176152[/snapback]

ot_total_ht.php:3)


Pourquoi tu as php:3 en plus ????
Pb avec l'extension du fichier???

Écrit par : Gnidhal 24 Jun 2006, 09:38

non il me semble que c'est le N° de ligne où le début de page est initié (output started)
= "output started dans fichier.php à la ligne 3"

pour le problème regarde ce qui se dit dans la faq au sujet de "headers allready sent". C'est souvent un problème de fichier mal fermé, voir mal transmis.

Écrit par : lateralus 3 Jul 2006, 13:13

Super l'astuce!!!

question.gif Mais est-ce que vous avez remarqué des problèmes avec certaines contributions?

Je suis en train d'installer "http://www.oscommerce.com/community/contributions,1435/category,all/search,Order+Editor" (pour modifier presque tous les aspects des factures) et j'avais de nombreux problèmes liés au sous-total HT et à MZMT (module de livraison multizone et multi table). Ces problèmes sont en partie dû au fait qu'il y a des incompatibilités avec les différents taux de TVA :
- Pb de calcul du total TTC
- Pb du calcul du montant de la TVA sur les frais d'expédition
- Pb avec le javascript qui rafraichit automatiquement le calcul de la facture

idea.gif Et bien tous ces problèmes sont résolus par le concepteur de la contribution (djmonkey1)
Vous trouverez donc tous les screenshots de configuration ainsi que les solutions dans le http://forums.oscommerce.com/index.php?s=&showtopic=54032&view=findpost&p=881704 (page54 à 56)
Attention : suivez bien tous les posts et si vous ne comprenez pas l'anglais, n'hésitez pas à me contacter!!!

Écrit par : lateralus 3 Jul 2006, 14:55

Après avoir testé "Order Update Tool", je sais qu'il y avait aussi des bugs mais je ne me souviens plus desquels...

Écrit par : rota44 24 Aug 2006, 16:37

Bonjour à tous.

J'ai bien installé cette contrib..Mais je rencontre le soucis suivant, mon décompte TVA et HT sur mes factures ne fonctionnent que depuis que j'ai apporté ces modifications.

Pour les factures plus anciennes, je n'ai que le décompte TTC + les frais de ports et la colonne "taxes" est à 0.0%.

Merci pour votre aide

Bénédict

Écrit par : lateralus 29 Aug 2006, 18:54

CITATION(rota44 @ 24 Aug 2006, 10:37) [snapback]190539[/snapback]

J'ai bien installé cette contrib..Mais je rencontre le soucis suivant, mon décompte TVA et HT sur mes factures ne fonctionnent que depuis que j'ai apporté ces modifications.
C'est tout à fait normal, ça ne fonctionne pas de manière rétroactive et je ne saurais pas te dire si on peut résoudre le problème rolleyes.gif
Bonne chance wink.gif

Écrit par : arcadia 28 Jan 2007, 14:30

Bonjour à tous,

D'abord merci M&M's pour cette contribution. Je l'ai installée, elle fonctionne bien.

Cependant, toujours pour répondre à la législation (imprimer les totaux HT sur les factures), j'ai le problème suivant: sur mon site j'ai à la fois du matériel à 19,6% et de l'alimentaire à 5,5% de TVA. Donc, comme pour le module TVA, il serait nécessaire d'avoir une ligne de total HT par taux de TVA. Je suis débutant en php et j'appelle à l'aide pour résoudre ce problème.

Merci d'avance.

Écrit par : corbin 6 Feb 2007, 16:32

à la suite d'un post récent, je fais un up sur ce post pour savoir si c'est une contribution (téléchargée sur OsC.com) ou un bout de code

merci

Écrit par : arcadia 7 Feb 2007, 13:45

Bonjour,
Non il ne s'agit pas d'une contribution au sens des autres contributions mais de quelques pages de code en haut de ce post.
http://www.oscommerce-fr.info/forum/index.php?s=&showtopic=28134&view=findpost&p=145984
Cordialement

Écrit par : asmatt 26 Feb 2007, 23:41

CITATION(pl3x @ 19 May 2006, 04:26) [snapback]175583[/snapback]
super tuto smile.gif
Par contre à la compta, ils me demande de bien vouloir mettre le Total Hors Taxes dans la facture.

Ce tuto affiche cela mais lors du passage de la commande et ne modifie pas l'affichage du invoice.php généré dans l'admin.
J'ai regardé un peu le code qui gère ca dans le invoice.php et blink.gif blink.gif blink.gif blink.gif je pige rien pour l'instant lol

Quelqu'un aurais un idée s'il vous plait ?
Je ne trouve pas les bons fichiers sad.gif



Bonsoir,

j'ai le même problème, je cherche et ne trouve point.

wink.gif

Écrit par : lateralus 1 Mar 2007, 10:28

Pour ceux qui ont besoin d'afficher une ligne "Total TVA" = TVA du produit + TVA sur frais de livraison, il y a une nouvelle contrib qui vient de sortir : http://www.oscommerce.com/community/contributions,4848

Écrit par : neolien 2 Mar 2007, 21:46

Je viens d'installer les modifications mais mes frais d'expédition sont passés à 0 ??

J'ai suivie le pas à pas et mis l'ordre dans Modules Total Commande par Marine77 mais le pbl persiste ??

Quelqu'un a une idée ?

Merci d'avance

Écrit par : dav2706 2 Nov 2007, 11:40

Salut,
Je viens d'utiliser le code proposé mais ca ne marche pas.J'ai fais une commande bidon et dans la fature rien ne change, j'ai toujours mon prix HT egal au TTC
(les prix sont rentré en ttc sur le site). dans la liste des module Jai total HT en bas mais il y etais deja avant en true. J'ai oublié un truc?
Merci.

Écrit par : Momoko 9 Nov 2007, 20:34

J'ai également un problème avec la contrib (que j'ai trouvée sur les http://www.oscommerce.com/community/contributions,4177/category,6/search,ot_total_ht). Comme marine, je cherche à ne montrer que le total HT des produits commandés.. Or, voilà ce que j'ai avec un produit qui coûte 25e TTC donc 20,903e HT :



Voilà comment est organisé mon order total :



Je précise que j'ai également rajouté la modif de marine dans order.php, mais avec ou sans, je tombe toujours sur le même problème !

Le total HT = total des produits + expédition HT. Comment est-ce possible ?
Any idea ? blink.gif

Écrit par : From Fan 2 Fans 23 May 2008, 10:35

Si vous installez la dernière version de order editor (très pratique soit dit en passant), vous devez penser à y fair eune petite modif pour qu ele total HT soit recalculé si vous modifiez la commande.
admin/order_editor/order.php

appliquer la même modif que dans includes/classes/order.php


D'ailleurs, pour ceux qui n'ont pas de tva sur les frais de port, il faut mettre

Code
$this->info['totalHT'] = $this->info['subtotal'] - $this->info['tax'];


au lieu de

Code
$this->info['totalHT'] = $this->info['total'] - $this->info['tax'];

Écrit par : milerwan 3 May 2017, 14:09

J'ai fait un module qui permet d'obtenir un résultat parfait sans toucher au script :

Total Amount Excl. Tax (VAT) : http://addons.oscommerce.com/info/9568

Écrit par : milerwan 3 May 2017, 14:16

Citation (From Fan 2 Fans @ 23 May 2008, 11:35) *
Si vous installez la dernière version de order editor (très pratique soit dit en passant), vous devez penser à y fair eune petite modif pour qu ele total HT soit recalculé si vous modifiez la commande.
admin/order_editor/order.php

appliquer la même modif que dans includes/classes/order.php

D'ailleurs, pour ceux qui n'ont pas de tva sur les frais de port, il faut mettre

Code
$this->info['totalHT'] = $this->info['subtotal'] - $this->info['tax'];


au lieu de

Code
$this->info['totalHT'] = $this->info['total'] - $this->info['tax'];

As-tu essayé d'ajouter un champ (bouton +) à ta commande depuis Order Editor ?
Ceci créé une classe "ot_custom" dont la valeur n'est pas prise en compte dans le calcul du total HT que ce soit avec la modification que tu proposes ou même mon module...

Quelqu'un saurait-il résoudre ce problème ?

Écrit par : milerwan 7 May 2017, 21:44

J'ai pu faire cohabiter le module "total_ht" avec "Order Editor" afin que le calcul de $order->info[total_ht] soit juste lors d'une édition de commande.
J'ai posté la réponse sur le site officiel : http://forums.oscommerce.com/topic/54032-new-complete-order-editing-tool/?p=1756574

En espérant que ça aide ceux qui souhaitent utiliser l'affichage HT pour leur facturation. happy.gif

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)