En voilà un titre qui est long :) On s'explique, suite à une demande récente il semble interessant à certains client de pouvoir avoir dans la facturation les totaux HT par classe de TVA.

Exemple, pour un TVA total de 10.00 €, il y a 2.00 de TVA à 7% (soit un sous-total HT produit de 27.57)  de  et 8.00€ de TVA à 19.6% (soit un sous-total HT produit de 40.82). C'est donc bien le montant produit HT des différentes classes de TVA qui est visé. Evidement pour que cela fonctionne il faut avoir plusieurs taux de TVA et afficher les détails.

Alors voici comment on fait, assez simplement (Magento 1.7, - mais devrait fonctionner pour 1.6 aussi):

Dans Mage > Sales > Model > Order > Pdf > Total > Default.php

remplacer ceci

     

   foreach ($taxClassAmount as &$tax) {
                $percent          = $tax['percent'] ? ' (' . $tax['percent']. '%)' : '';
                $tax['amount']    = $this->getAmountPrefix().$this->getOrder()->formatPriceTxt($tax['tax_amount']);
                $tax['label']     = Mage::helper('tax')->__($tax['title']) . $percent . ':';
                $tax['font_size'] = $fontSize;
            }

 

 

par quelque chose comme ça

   

 foreach ($taxClassAmount as &$tax) {
                         
                $subtotal_tax = ($tax['tax_amount'] * 100) / $tax['percent'];
                $tax['amount']    = $this->getAmountPrefix().$this->getOrder()->formatPriceTxt($tax['tax_amount']);
                $tax['label']     = Mage::helper('tax')->__($tax['title']) . $percent;
                
                if ($subtotal_tax != 0) {
                    $tax['label'].= ' (ST HT : ' .$this->getAmountPrefix().$this->getOrder()->formatPriceTxt($subtotal_tax).'):';
                } else {
                    $tax['label'].= ':';
                }
                                
                $tax['font_size'] = $fontSize;

            }

En gros on repart des montant des taxes et de leur taux pour revenir au montant total des produits de cette classe de TVA... youhou

 

Le principe que nous allons mettre en oeuvre est certes un peu radical, mais il fonctionne. Nous allons modifier la Grid.php qui affiche les commandes dans Magento de façon à pouvoir y ajouter un colonne Groupe Client (customer group) afin de pouvoir trier l'ensemble par ce filtre.

Préliminaires au travail

  • Si le compilateur est activé, on désactive
  • On fait une copie de /app/core/Mage/Adminhtml/Block/Sales/Order/Grid.php dans son rep local à savoir : app/code/local/Mage/Adminhtml/Bloc/Sales/Order/Grid.php
  • On vérifie que rien d'autres ne surcharge déjà cette Grid.php ou alors il faudra composer avec ça

Recherche & Partage

Uni-Deal.com

En savoir plus sur notre société de services en logiciels ou nous demander des prestations / codes visitez uni-deal