Arrondi de TVA
3 messages
• Page 1 sur 1
Arrondi de TVA
Toujours le même Pb récurent.
Fatigué d'avoir des centimes qui se promènent quand je passe les factures opencart en compta, j'ai essayé de regarder pourquoi.
Opencart tronque la TVA à 2 chiffres sans appliquer d'arrondi comptable.
Exemple je viens de recevoir une petite commande :
sous total : 13,55
port : 2,65
TVA : 3,17
Total : 19,37
Je passe en compta :
sous total : 13,55
port : 2,65
TVA : 3,18
Total : 19,38
Le logiciel compta a bien appliqué l'arrondi comptable Opencart NON.
Donc quelques centaines de factures plus loin, je vous laisse apprécié le bord...
Aussi j'ai fait une petite modif système>library>cart.php
La fonction "round" arrondi.
Il semble que cela fonctionne correctement, sans cette fonction, on voit bien que le chiffre est tronqué et non arrondi.
Je reçois maintenant
sous total : 13,55
port : 2,65
TVA : 3,18
Total : 19,38
Si cela peut servir.
Fatigué d'avoir des centimes qui se promènent quand je passe les factures opencart en compta, j'ai essayé de regarder pourquoi.
Opencart tronque la TVA à 2 chiffres sans appliquer d'arrondi comptable.
Exemple je viens de recevoir une petite commande :
sous total : 13,55
port : 2,65
TVA : 3,17
Total : 19,37
Je passe en compta :
sous total : 13,55
port : 2,65
TVA : 3,18
Total : 19,38
Le logiciel compta a bien appliqué l'arrondi comptable Opencart NON.
Donc quelques centaines de factures plus loin, je vous laisse apprécié le bord...
Aussi j'ai fait une petite modif système>library>cart.php
- Code: Tout sélectionner
public function getSubTotal() {
$total = 0;
foreach ($this->getProducts() as $product) {
$total += $product['total'];
}
return $total;
}
public function getTaxes() {
$taxes = array();
foreach ($this->getProducts() as $product) {
if ($product['tax_class_id']) {
if (!isset($taxes[$product['tax_class_id']])) {
$taxes[$product['tax_class_id']] = round($product['total'] / 100 * $this->tax->getRate($product['tax_class_id']), 2);
} else {
$taxes[$product['tax_class_id']] += round($product['total'] / 100 * $this->tax->getRate($product['tax_class_id']), 2);
}
}
}
return $taxes;
La fonction "round" arrondi.
Il semble que cela fonctionne correctement, sans cette fonction, on voit bien que le chiffre est tronqué et non arrondi.
Je reçois maintenant
sous total : 13,55
port : 2,65
TVA : 3,18
Total : 19,38
Si cela peut servir.
Open cart 1.4.9 . Purchase order, Informations submenu, Options Plus Redux
-
appli - Messages: 11
- Inscrit le: 21 Août 2011, 09:28
- Localisation: AIX en PROVENCE
Re: Arrondi de TVA
Bonsoir,
Je ressort ce PB.
Qui pourrait m'aider.
Exemple je viens de recevoir une commande de 108,57 ht et OC me calcul 21,31 de TVA.
Si je prends ma calculette 108,57 x 0,196 = 21,279... donc 21,28.
Comment passer cela en compta ? Lors d'un contrôle ce qui est regardé en premier c'est la TVA. Et là si il y a plusieurs dizaines de factures de ce type avec des problèmes de TVA, c'est le début des vrais PB.
I need some body help
Je ressort ce PB.
Qui pourrait m'aider.
Exemple je viens de recevoir une commande de 108,57 ht et OC me calcul 21,31 de TVA.
Si je prends ma calculette 108,57 x 0,196 = 21,279... donc 21,28.
Comment passer cela en compta ? Lors d'un contrôle ce qui est regardé en premier c'est la TVA. Et là si il y a plusieurs dizaines de factures de ce type avec des problèmes de TVA, c'est le début des vrais PB.
I need some body help
Open cart 1.4.9 . Purchase order, Informations submenu, Options Plus Redux
-
appli - Messages: 11
- Inscrit le: 21 Août 2011, 09:28
- Localisation: AIX en PROVENCE
Re: Arrondi de TVA
Dans le fichier system/library/cart.php (même modif que citée plus haut)
Chercher :
Dans le fichier system/library/tax.php
Chercher :
NOTE : Ces modifications sont valables aussi pour les versions supérieures à la v1.4.9.
Chercher :
- Code: Tout sélectionner
foreach ($this->getProducts() as $product) {
if ($product['tax_class_id']) {
if (!isset($taxes[$product['tax_class_id']])) {
$taxes[$product['tax_class_id']] = $product['total'] / 100 * $this->tax->getRate($product['tax_class_id']);
} else {
$taxes[$product['tax_class_id']] += $product['total'] / 100 * $this->tax->getRate($product['tax_class_id']);
}
}
}
- Code: Tout sélectionner
foreach ($this->getProducts() as $product) {
if ($product['tax_class_id']) {
if (!isset($taxes[$product['tax_class_id']])) {
$taxes[$product['tax_class_id']] = round($product['total'] / 100 * $this->tax->getRate($product['tax_class_id']),2);
} else {
$taxes[$product['tax_class_id']] += round($product['total'] / 100 * $this->tax->getRate($product['tax_class_id']),2);
}
}
}
Dans le fichier system/library/tax.php
Chercher :
- Code: Tout sélectionner
public function calculate($value, $tax_class_id, $calculate = TRUE) {
if (($calculate) && (isset($this->taxes[$tax_class_id]))) {
$rate = $this->getRate($tax_class_id);
return $value + ($value * $rate / 100);
} else {
return $value;
}
}
- Code: Tout sélectionner
public function calculate($value, $tax_class_id, $calculate = TRUE) {
if (($calculate) && (isset($this->taxes[$tax_class_id]))) {
$rate = $this->getRate($tax_class_id);
$value = $value + ($value * $rate / 100);
$value = round($value,2);
return $value + ($value * $rate / 100);
} else {
return $value;
}
}
NOTE : Ces modifications sont valables aussi pour les versions supérieures à la v1.4.9.
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
3 messages
• Page 1 sur 1
Qui est en ligne ?
Utilisateur(s) parcourant actuellement ce forum : Bing [Bot] et 0 invité(s)