Jump to content

TVA sur marge [RESOLU] + [SOLUTION]


chateau.fr

Recommended Posts

Bonjour à tous,

Savez-vous s'il existe un module qui permettrait de faire le calcul de la TVA sur la marge, exemple :

j'achète un produit 100€ TTC, je le vend 150€ HT sur mon site, ma TVA devrait se calculer sur la base de 50€ (150-50) et non sur 150€.


Merci pour vos réponses,


Samuel

Link to comment
Share on other sites

Bonsoir,

Je me suis finalement débrouillé en le programmant par moi-même en 2 heures sans connaitre Prestashop auparavant, je salue au passage la team prestashop pour la simplicité et la clarté du code (encodage ANSI pour certains fichiers et UTF8 pour d'autres ?)

Si ça intéresse quelqu'un je peux poster les modifs ici.

merci,

Samuel

Link to comment
Share on other sites

Sur PrestaShop v.1.2.5

1) Ajouter un champ à la DB

ALTER TABLE  `PREFIXE_product` ADD  `tvamargin` TINYINT( 1 ) NOT NULL DEFAULT  '0' AFTER  `price`



2) Ajouter une zone sur la page produit de l'admin

/admin/tabs/AdminProducts.php

Ligne 631 :

echo '

'.$this->l('TVA sur marge:').'

           Non <input name="tvamargin" type="radio" value="0" ' . ($this->getFieldValue($obj, 'tvamargin') == 0 ? 'checked' : '') . ' />
         Oui <input name="tvamargin" type="radio" value="1" ' . ($this->getFieldValue($obj, 'tvamargin') == 1 ? 'checked' : '') . ' />

';



3) Calcul et selection du nouveau champ du produit

/classes/Product.php

Ligne 68 on déclare notre champ

/** @var int tvamargin */
public         $tvamargin = 0;



Ligne 168 on déclare le type

'tvamargin' => 'isBool',



Ligne 228 on récupère la valeur du champ tvamargin :

$fields['tvamargin'] = floatval($this->tvamargin);



Ligne 1252 On ajoute les deux champs 'wholesale_price' et 'tvamargin' de la table product :

   SELECT p.`price`, p.`wholesale_price`, p.`tvamargin`, p.`reduction_pr.....



Ligne 1263 après $tax = floatval(Tax::getApplicableTax(intval($result['id_tax']), floatval($result['rate'])));
On fait le nouveau calcul du montant de la taxe

if(intval($result['tvamargin']) && $tax)
{
 $margin = floatval($result['price']) - floatval($result['wholesale_price']) ;
 $tvaonmargin = $tax*$margin/100+$margin+floatval($result['wholesale_price']);
 $tax = 100-floatval($result['price'])*100/$tvaonmargin ;
}



4) Même chose pour la création de la commande

/classes/Cart.php

Ligne 209
On ajoute les champs necessaires au calcul de la nouvelle taxe

SELECT cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, pl.`name`,
       pl.`description_short`, pl.`available_now`, pl.`available_later`, p.`id_product`, p.`id_category_default`, p.`id_supplier`, p.`id_manufacturer`, p.`id_tax`, p.`on_sale`, p.`ecotax`,
       p.`quantity`, p.`price`, p.`wholesale_price`, p.`tvamargin`,.....



5) Calcul de la nouvelle taxe sur la commande

/classes/PaymentModule.php

Ligne 189 après $tax = Tax::getApplicableTax(intval($product['id_tax']), floatval($product['rate']));

if(intval($product['tvamargin']) && $tax)
{
 $margin = floatval($product['price']) - floatval($product['wholesale_price']) ;
 $tvaonmargin = $tax*$margin/100+$margin+floatval($product['wholesale_price']);
 $tax = 100-floatval($product['price'])*100/$tvaonmargin ;
}




Samuel

14360_RKgVeYpwE136Rwy6xkb0_t

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 years later...

Bon je déterre ce post à l'occasion de ma recherche sur les marges

L'idée est simple

Etant donné qu'il existe un champ "prix d'achat", ne serait t'il pas possible de générer un champ qui donne la marge brute.

Ou/et indiqué un taux de marge/marque

Deuxième étape

Chaque fois qu'une vente est effectuée on remonte l'info dans les stats.

L'idée n'est pas de remplacé un logiciel de compta mais de savoir en live ce que la journée, la semaine, le mois, l'année a dégagé en marge brute.

Le mode de calcul est simple

prix de vente - prix d'achat - prix de transport.

 

Facile ?

Ca fait 5 ans que j'évoque cette option mais à chaque fois j'ai une levée de bouclier : il ne faut pas une usine à gaz qui fait le café, le beurre et la tartine. Ce avec quoi je suis d'accord. Pour moi la compta est faite par un comptable. Moi je suis vendeur. Mais par contre savoir à la volée ce que me donne en marge et en euro ce qui me reste après une remise pour une vente flash par exemple, ça me simplifierai la vie au quotidien ;-)

 

d'avance mille mercis Samuel

Link to comment
Share on other sites

  • 1 year later...

Bonjour chateau.fr,

 

Tout d'abord bravo pour ton partage !

 

Je suis en train de chercher une solution pour calculer la tva sur marge au lieu de tva sur prix ht pour un Prestashop 1.5.4.1.

 

As-tu fait une mise à jour de tes modifs spéciales 'tva sur marge' sur une des dernières versions de prestashop 1.5 (je crois qu'elles ne sont pas toutes équivalentes) ?  

 

Si oui, peux-tu nous faire partager ton expérience ?

 

D'avance merci

Link to comment
Share on other sites

  • 8 months later...

Bonjour,

 

J'utilise PrestaShop™ 1.6.0.8 et j'ai un problème particulier car je vends à la fois des produits neufs et d'occasions hors en France on n'utilise pas la même règle de TVA pour ces deux types de produits.

 

Il faudrait que je puisse avoir un panier et une facture qui se modifient en fonction de mes différents cas de figures : 

 

1) Produit Neuf vendu en France :
   Prix HT avec prix TTC (TVA à 20%)

 

2) Produit d’Occasion vendu en France : 
    format TVA sur marge (
(Prix de vente TTC - mon Prix d'achat HT) x 0,8333 x 20%) avec indication uniquement du prix TTC et d’une mention "TVA article 297 A du CGI »

 

3 ) Produit neuf ou occasion vendu à l’étranger : 
prix HT = prix TTC avec indication "
Exonération de TVA exportation art 262-I du CGI pour les ventes Hors Union Européenne"

 

Je dois donc pouvoir aussi rentrer un prix d’achat HT, un prix de vente TTC et cocher une case "TVA sur marge" dans le cas d’une montre d’occasion.

 

Merci d'avance pour votre aide.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...