osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Régime de la TVA à l'export
JeanLuc
posté 6 Feb 2004, 19:18
Message #1


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Bonjour
Je suis en train d'essayer d'améliorer une contrib (TVA intracom) qui permettrait de définir selon le cas si la TVA doit ou non être ajoutée à la facture:
J'ai besoin de lumière de comptables pour me dire si je me gourre puis de développeurs pour voir comment ont peut faire:

D'abord la loi:

Un particulier m'achète qqchose, j'ajoute la TVA française (où que soit l'adresse de livraison ou de paiement).

Une société sans n∞ TVA intracom m'achète qqchose, j'ajoute la TVA (où que soit la livraison ou l'adresse de paiement même à l'étranger: elle récupérera la TVA). Cette solution est nécessaire car rien ne prouve que c'est effectivement une société...

Une société avec n∞ TVA intracom m'achète qqchose, trois solutions:
Société française (reconnaissable au code), elle paye la TVA;
Société européenne hors France avec livraison en France, elle paye la TVA;
Société européenne hors France avec livraison à l'étranger, elle ne paye pas la TVA.

On remarque donc que l'exonération de la TVA s'applique uniquement si c'est une société avec un n∞ intracommunautaire non française avec livraison à l'étranger.

Pour les comptables, dites moi si je me gourre ci dessus ou non....
Merci d'avance pour vos réponses. wink.gif

Maintenant pour les développeurs (qui peuvent être aussi comptables et lycée de Versailles):
L'exonération de la TVA s'applique uniquement si (dans le fichier catalog/includes/classes/order.php) :
c'est une société (champ société de billing_address rempli),
avec un n∞ intracommunautaire (champ tva_intracom de billing_address rempli),
non française (champ tva_intracom de billing_address ne commençant pas par FR),
avec livraison à l'étranger (champ country de delivery_address != STORE_COUNTRY).

Ensuite la mise en oeuvre...
A priori, je peut me resservir de la table 'zones_to_geo_zones' pour définir les pays de la CEE (surtout que cela évolue régulièrement) .
C'est à la fin de la fonction cart() de la classe order que je peux faire ce binz...

Voila les premières réflexions, j'en oublie certainement.
J'attends vos réflexions et vos propositions d'aide avec impatience...
Merci d'avance


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
Anthony
posté 6 Feb 2004, 19:55
Message #2


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 402
Inscrit : 15-April 03
Lieu : Luxembourg
Membre no 1068



Salut Jean Luc,

Je ne suis pas sûr à 100 % mais il me semble que si tu fais régulièrement des ventes à l'export et que tu veux vendre HT, il faut déposer une demande auprès des Impots

petite info qui n'a pas grand chose a voir avec ta reflexion blush.gif mais qui peut etre important à vérifier.

@ +

wink.gif
Go to the top of the page
 
JeanLuc
posté 9 Feb 2004, 09:22
Message #3


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Merci pour ta réponse... wink.gif
Sinon au niveau purement comptable, est-ce que j'ai bon???
Merci de vos réponses... confused.gif

PS: Pour les anglophile émérites, si qqu'un pouvait me traduire mon post ci-dessus (le premier), cela me permettrait de répondre précisement en anglais (sans taper la honte), auprès d'un type interressé sur le forum OsC.com et qui a l'air de bien s'y connaitre au niveau législation européenne. wink.gif


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
JeanLuc
posté 10 Feb 2004, 11:57
Message #4


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Pour ceux que cela interresse, voici le fichier catalog/includes/classes/order.php modifié à inclure (si on a déjà installé la contrib TVA_intracom pour MS2) qui permet de supprimer la TVA si le client est
- Une société
- avec un n° TVA intracommunautaire
- d'un pays différent de celui de la boutique
- livré dans un pays différent de celui de la boutique.
voir: http://www3.ccip.fr/inforeg/fiches/pdf/tva.pdf
et aussi: http://www3.ccip.fr/eic/tva/

Merci de l'essayer pour détecter d'éventuel buggs avant update de la contrib.

Je n'ai pas inclu dans le fichier le fait que la TVA puisse également être supprimée dans le cas d'une vente de service électronique (par ex des téléchargements) avec facturation hors CEE (que le client soit une société ou un particulier).
voir: http://www.obcebdbh.be/export/centre-information/publications/etudes/regl-techniques-ce/2002_fr/TVA-e-commerce.pdf
et aussi: http://www3.ccip.fr/inforeg/fiches/pdf/prestations_services.pdf

Je pensais y arriver en donnant comme condition:
$order->content_type == 'virtual
&&
$this->billing['country'] == hors CEE (là, pb car il faut déterminer les pays CEE dans la base mais bon c'est faisable)

Le pb, c'est quand le cart n'est rempli qu'en partie de produit 'virtual' et la je sais plus trop comment faire pour mettre la TVA à 0 sur les 'virtual' et à normal sur les autres: comme vous le verrez dans le code ci-dessous, j'enlève la TVA à la fin du fichier...

CODE
<?php

/*

 $Id: order.php,v 1.33 2003/06/09 22:25:35 hpdl Exp $



 osCommerce, Open Source E-Commerce Solutions

 http://www.oscommerce.com



 Copyright (c) 2003 osCommerce



 Released under the GNU General Public License

*/



 class order {

   var $info, $totals, $products, $customer, $delivery, $content_type;



   function order($order_id = '') {

     $this->info = array();

     $this->totals = array();

     $this->products = array();

     $this->customer = array();

     $this->delivery = array();



     if (tep_not_null($order_id)) {

       $this->query($order_id);

     } else {

       $this->cart();

     }

   }



   function query($order_id) {

     global $languages_id;



     $order_id = tep_db_prepare_input($order_id);

  //Add for TVA_intracom_v3.4 : "billing_tva_intracom"

     $order_query = tep_db_query("select customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_telephone, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_tva_intracom, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_expires, currency, currency_value, date_purchased, orders_status, last_modified from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");

     $order = tep_db_fetch_array($order_query);



     $totals_query = tep_db_query("select title, text from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "' order by sort_order");

     while ($totals = tep_db_fetch_array($totals_query)) {

       $this->totals[] = array('title' => $totals['title'],

                               'text' => $totals['text']);

     }



     $order_total_query = tep_db_query("select text from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "' and class = 'ot_total'");

     $order_total = tep_db_fetch_array($order_total_query);



     $shipping_method_query = tep_db_query("select title from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "' and class = 'ot_shipping'");

     $shipping_method = tep_db_fetch_array($shipping_method_query);



     $order_status_query = tep_db_query("select orders_status_name from " . TABLE_ORDERS_STATUS . " where orders_status_id = '" . $order['orders_status'] . "' and language_id = '" . (int)$languages_id . "'");

     $order_status = tep_db_fetch_array($order_status_query);



     $this->info = array('currency' => $order['currency'],

                         'currency_value' => $order['currency_value'],

                         'payment_method' => $order['payment_method'],

                         'cc_type' => $order['cc_type'],

                         'cc_owner' => $order['cc_owner'],

                         'cc_number' => $order['cc_number'],

                         'cc_expires' => $order['cc_expires'],

                         'date_purchased' => $order['date_purchased'],

                         'orders_status' => $order_status['orders_status_name'],

                         'last_modified' => $order['last_modified'],

                         'total' => strip_tags($order_total['text']),

                         'shipping_method' => ((substr($shipping_method['title'], -1) == ':') ? substr(strip_tags($shipping_method['title']), 0, -1) : strip_tags($shipping_method['title'])));



     $this->customer = array('id' => $order['customers_id'],

                             'name' => $order['customers_name'],

                             'company' => $order['customers_company'],

                             'street_address' => $order['customers_street_address'],

                             'suburb' => $order['customers_suburb'],

                             'city' => $order['customers_city'],

                             'postcode' => $order['customers_postcode'],

                             'state' => $order['customers_state'],

                             'country' => $order['customers_country'],

                             'format_id' => $order['customers_address_format_id'],

                             'telephone' => $order['customers_telephone'],

                             'email_address' => $order['customers_email_address']);



     $this->delivery = array('name' => $order['delivery_name'],

                             'company' => $order['delivery_company'],

                             'street_address' => $order['delivery_street_address'],

                             'suburb' => $order['delivery_suburb'],

                             'city' => $order['delivery_city'],

                             'postcode' => $order['delivery_postcode'],

                             'state' => $order['delivery_state'],

                             'country' => $order['delivery_country'],

                             'format_id' => $order['delivery_address_format_id']);



     if (empty($this->delivery['name']) && empty($this->delivery['street_address'])) {

       $this->delivery = false;

     }



     $this->billing = array('name' => $order['billing_name'],

                            'company' => $order['billing_company'],

        //BOF for TVA_intracom_v3.4

        'tva_intracom' => $order['billing_tva_intracom'],

        // EOF for TVA_intracom_v3.4

                            'street_address' => $order['billing_street_address'],

                            'suburb' => $order['billing_suburb'],

                            'city' => $order['billing_city'],

                            'postcode' => $order['billing_postcode'],

                            'state' => $order['billing_state'],

                            'country' => $order['billing_country'],

                            'format_id' => $order['billing_address_format_id']);



     $index = 0;

     $orders_products_query = tep_db_query("select orders_products_id, products_id, products_name, products_model, products_price, products_tax, products_quantity, final_price from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'");

     while ($orders_products = tep_db_fetch_array($orders_products_query)) {

       $this->products[$index] = array('qty' => $orders_products['products_quantity'],

                                   'id' => $orders_products['products_id'],

                                       'name' => $orders_products['products_name'],

                                       'model' => $orders_products['products_model'],

                                       'tax' => $orders_products['products_tax'],

                                       'price' => $orders_products['products_price'],

                                       'final_price' => $orders_products['final_price']);



       $subindex = 0;

       $attributes_query = tep_db_query("select products_options, products_options_values, options_values_price, price_prefix from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$order_id . "' and orders_products_id = '" . (int)$orders_products['orders_products_id'] . "'");

       if (tep_db_num_rows($attributes_query)) {

         while ($attributes = tep_db_fetch_array($attributes_query)) {

           $this->products[$index]['attributes'][$subindex] = array('option' => $attributes['products_options'],

                                                                    'value' => $attributes['products_options_values'],

                                                                    'prefix' => $attributes['price_prefix'],

                                                                    'price' => $attributes['options_values_price']);



           $subindex++;

         }

       }



       $this->info['tax_groups']["{$this->products[$index]['tax']}"] = '1';



       $index++;

     }

   }



   function cart() {

     global $customer_id, $sendto, $billto, $cart, $languages_id, $currency, $currencies, $shipping, $payment;



     $this->content_type = $cart->get_content_type();



//Add for TVA_intracom_v3.4 : "ab.entry_tva_intracom"

     $customer_address_query = tep_db_query("select c.customers_firstname, c.customers_lastname, c.customers_telephone, c.customers_email_address, ab.entry_company, ab.entry_tva_intracom, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, z.zone_name, co.countries_id, co.countries_name, co.countries_iso_code_2, co.countries_iso_code_3, co.address_format_id, ab.entry_state from " . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) left join " . TABLE_COUNTRIES . " co on (ab.entry_country_id = co.countries_id) where c.customers_id = '" . (int)$customer_id . "' and ab.customers_id = '" . (int)$customer_id . "' and c.customers_default_address_id = ab.address_book_id");

     $customer_address = tep_db_fetch_array($customer_address_query);



     $shipping_address_query = tep_db_query("select ab.entry_firstname, ab.entry_lastname, ab.entry_company, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, z.zone_name, ab.entry_country_id, c.countries_id, c.countries_name, c.countries_iso_code_2, c.countries_iso_code_3, c.address_format_id, ab.entry_state from " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) left join " . TABLE_COUNTRIES . " c on (ab.entry_country_id = c.countries_id) where ab.customers_id = '" . (int)$customer_id . "' and ab.address_book_id = '" . (int)$sendto . "'");

     $shipping_address = tep_db_fetch_array($shipping_address_query);

     

//Add for TVA_intracom_v3.4 : "ab.entry_tva_intracom"

     $billing_address_query = tep_db_query("select ab.entry_firstname, ab.entry_lastname, ab.entry_company, ab.entry_tva_intracom, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, z.zone_name, ab.entry_country_id, c.countries_id, c.countries_name, c.countries_iso_code_2, c.countries_iso_code_3, c.address_format_id, ab.entry_state from " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) left join " . TABLE_COUNTRIES . " c on (ab.entry_country_id = c.countries_id) where ab.customers_id = '" . (int)$customer_id . "' and ab.address_book_id = '" . (int)$billto . "'");

     $billing_address = tep_db_fetch_array($billing_address_query);



     $tax_address_query = tep_db_query("select ab.entry_country_id, ab.entry_zone_id from " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) where ab.customers_id = '" . (int)$customer_id . "' and ab.address_book_id = '" . (int)($this->content_type == 'virtual' ? $billto : $sendto) . "'");

     $tax_address = tep_db_fetch_array($tax_address_query);



     $this->info = array('order_status' => DEFAULT_ORDERS_STATUS_ID,

                         'currency' => $currency,

                         'currency_value' => $currencies->currencies[$currency]['value'],

                         'payment_method' => $payment,

                         'cc_type' => (isset($GLOBALS['cc_type']) ? $GLOBALS['cc_type'] : ''),

                         'cc_owner' => (isset($GLOBALS['cc_owner']) ? $GLOBALS['cc_owner'] : ''),

                         'cc_number' => (isset($GLOBALS['cc_number']) ? $GLOBALS['cc_number'] : ''),

                         'cc_expires' => (isset($GLOBALS['cc_expires']) ? $GLOBALS['cc_expires'] : ''),

                         'shipping_method' => $shipping['title'],

                         'shipping_cost' => $shipping['cost'],

                         'subtotal' => 0,

                         'tax' => 0,

                         'tax_groups' => array(),

                         'comments' => (isset($GLOBALS['comments']) ? $GLOBALS['comments'] : ''));



     if (isset($GLOBALS[$payment]) && is_object($GLOBALS[$payment])) {

       $this->info['payment_method'] = $GLOBALS[$payment]->title;



       if ( isset($GLOBALS[$payment]->order_status) && is_numeric($GLOBALS[$payment]->order_status) && ($GLOBALS[$payment]->order_status > 0) ) {

         $this->info['order_status'] = $GLOBALS[$payment]->order_status;

       }

     }



     $this->customer = array('firstname' => $customer_address['customers_firstname'],

                             'lastname' => $customer_address['customers_lastname'],

                             'company' => $customer_address['entry_company'],

                             'street_address' => $customer_address['entry_street_address'],

                             'suburb' => $customer_address['entry_suburb'],

                             'city' => $customer_address['entry_city'],

                             'postcode' => $customer_address['entry_postcode'],

                             'state' => ((tep_not_null($customer_address['entry_state'])) ? $customer_address['entry_state'] : $customer_address['zone_name']),

                             'zone_id' => $customer_address['entry_zone_id'],

                             'country' => array('id' => $customer_address['countries_id'], 'title' => $customer_address['countries_name'], 'iso_code_2' => $customer_address['countries_iso_code_2'], 'iso_code_3' => $customer_address['countries_iso_code_3']),

                             'format_id' => $customer_address['address_format_id'],

                             'telephone' => $customer_address['customers_telephone'],

                             'email_address' => $customer_address['customers_email_address']);



     $this->delivery = array('firstname' => $shipping_address['entry_firstname'],

                             'lastname' => $shipping_address['entry_lastname'],

                             'company' => $shipping_address['entry_company'],

                             'street_address' => $shipping_address['entry_street_address'],

                             'suburb' => $shipping_address['entry_suburb'],

                             'city' => $shipping_address['entry_city'],

                             'postcode' => $shipping_address['entry_postcode'],

                             'state' => ((tep_not_null($shipping_address['entry_state'])) ? $shipping_address['entry_state'] : $shipping_address['zone_name']),

                             'zone_id' => $shipping_address['entry_zone_id'],

                             'country' => array('id' => $shipping_address['countries_id'], 'title' => $shipping_address['countries_name'], 'iso_code_2' => $shipping_address['countries_iso_code_2'], 'iso_code_3' => $shipping_address['countries_iso_code_3']),

                             'country_id' => $shipping_address['entry_country_id'],

                             'format_id' => $shipping_address['address_format_id']);



     $this->billing = array('firstname' => $billing_address['entry_firstname'],

                            'lastname' => $billing_address['entry_lastname'],

                            'company' => $billing_address['entry_company'],

       //BOF for n∞ TVA_intracom_v3.4

       'tva_intracom' => $billing_address['entry_tva_intracom'],

       // EOF for TVA_intracom_v3.4

                            'street_address' => $billing_address['entry_street_address'],

                            'suburb' => $billing_address['entry_suburb'],

                            'city' => $billing_address['entry_city'],

                            'postcode' => $billing_address['entry_postcode'],

                            'state' => ((tep_not_null($billing_address['entry_state'])) ? $billing_address['entry_state'] : $billing_address['zone_name']),

                            'zone_id' => $billing_address['entry_zone_id'],

                            'country' => array('id' => $billing_address['countries_id'], 'title' => $billing_address['countries_name'], 'iso_code_2' => $billing_address['countries_iso_code_2'], 'iso_code_3' => $billing_address['countries_iso_code_3']),

                            'country_id' => $billing_address['entry_country_id'],

                            'format_id' => $billing_address['address_format_id']);



     $index = 0;

     $products = $cart->get_products();

     for ($i=0, $n=sizeof($products); $i<$n; $i++) {

       $this->products[$index] = array('qty' => $products[$i]['quantity'],

                                       'name' => $products[$i]['name'],

                                       'model' => $products[$i]['model'],

                                       'tax' => tep_get_tax_rate($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),

                                       'tax_description' => tep_get_tax_description($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),

                                       'price' => $products[$i]['price'],

                                       'final_price' => $products[$i]['price'] + $cart->attributes_price($products[$i]['id']),

                                       'weight' => $products[$i]['weight'],

                                       'id' => $products[$i]['id']);



       if ($products[$i]['attributes']) {

         $subindex = 0;

         reset($products[$i]['attributes']);

         while (list($option, $value) = each($products[$i]['attributes'])) {

           $attributes_query = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . (int)$products[$i]['id'] . "' and pa.options_id = '" . (int)$option . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$value . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . (int)$languages_id . "' and poval.language_id = '" . (int)$languages_id . "'");

           $attributes = tep_db_fetch_array($attributes_query);



           $this->products[$index]['attributes'][$subindex] = array('option' => $attributes['products_options_name'],

                                                                    'value' => $attributes['products_options_values_name'],

                                                                    'option_id' => $option,

                                                                    'value_id' => $value,

                                                                    'prefix' => $attributes['price_prefix'],

                                                                    'price' => $attributes['options_values_price']);



           $subindex++;

         }

       }

  // BOF for TVA_intracom_v3.4

  if ($this->billing['company'] != '' && $this->billing['tva_intracom'] != '' && $this->billing['country']['id'] != STORE_COUNTRY && $this->delivery['country']['id'] != STORE_COUNTRY) {

   $shown_price = $this->products[$index]['final_price'] * $this->products[$index]['qty'];

   $this->info['subtotal'] += $shown_price;

  } else {

  // EOF for TVA_intracom_v3.4    



       $shown_price = tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']) * $this->products[$index]['qty'];

       $this->info['subtotal'] += $shown_price;

  // BOF for TVA_intracom_v3.4    

  }

  // EOF for TVA_intracom_v3.4

   

       // BOF for TVA_intracom_v3.4

  if ($this->billing['company'] != '' && $this->billing['tva_intracom'] != '' && $this->billing['country']['id'] != STORE_COUNTRY && $this->delivery['country']['id'] != STORE_COUNTRY) {

   $products_tax = 0;

   $products_tax_description = NO_TAX;

  } else {

  // EOF for TVA_intracom_v3.4

     $products_tax = $this->products[$index]['tax'];

       $products_tax_description = $this->products[$index]['tax_description'];

  // BOF for TVA_intracom_v3.4    

  }

  // EOF for TVA_intracom_v3.4

 

       if (DISPLAY_PRICE_WITH_TAX == 'true') {

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

         if (isset($this->info['tax_groups']["$products_tax_description"])) {

           $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)));

         } else {

           $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)));

         }

       } else {

         $this->info['tax'] += ($products_tax / 100) * $shown_price;

         if (isset($this->info['tax_groups']["$products_tax_description"])) {

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

         } else {

           $this->info['tax_groups']["$products_tax_description"] = ($products_tax / 100) * $shown_price;

         }

       }



       $index++;

     }



     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'];

     }

   }

 }

?>

http://www3.ccip.fr/inforeg/fiches/pdf/tva.pdf


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
pierrel
posté 20 Mar 2004, 10:12
Message #5


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 21
Inscrit : 2-March 03
Membre no 919



alors moi je crois que dans le cas d'un particulier :
1-si il est issu d'un pays de la CEE = tva du pays de départ de la marchandise (cas de taxe intracommunautaire)
2- issu d'un pays hors de la CEE = hors tva, il doit s'en acquiter au douane de son pays.( extra communautaire)

Non ?
Go to the top of the page
 
Ewadrel
posté 2 Apr 2004, 08:36
Message #6


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 27
Inscrit : 10-October 03
Lieu : Région de Lyon, Beaujolais
Membre no 1555



hello,

toutes les reponses a vos questions a cette adresse :
http://www.apce.com/index.php?rubrique_id=20000263&tpl_id=106&type_page=I&type_projet=1¶m=0

@+

Philippe
Go to the top of the page
 
JeanLuc
posté 2 Apr 2004, 09:28
Message #7


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Merci pour le lien Ewadrel...
Cela confirme mes conditions pour l'application de la TVA indiquées plus haut.

Pour pierrel:
QUOTE
Exportations de biens à destination d’un pays tiers :

Les exportations par le vendeur français sont exonérées de TVA lorsqu'elles remplissent certaines conditions :
- inscription de mentions concernant l'exportation dans les livres comptables,
- production d'une déclaration d'exportation visée par le bureau des  douanes, le DAU (document  administratif unique).

Pour les marchandises d'une valeur inférieure à 800 euros et d'un poids net inférieur à 1 000 kg, le DAU peut être remplacé par une simple facture commerciale, dont l'exportateur doit conserver le deuxième exemplaire visé par le service des douanes.

Ces règles sont assouplies si l'expédition est effectuée par paquets postes ou colis postaux d'une valeur inférieure à 8 000 euros.


Donc, oui pour le hors taxes pour des particuliers hors CEE mais bonjour la paperasse.... Qu'en est il exactement??? Merci de vos réponses...


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
lebefa
posté 24 May 2004, 00:46
Message #8


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 60
Inscrit : 13-May 04
Membre no 2483



Bonjour Jean-Luc,

ce sujet est tres interessant car je compte bien vendre hors UE et notamment à des particuliers .
Avais tu trouvé une réponse à ton dernier sujet
QUOTE
Donc, oui pour le hors taxes pour des particuliers hors CEE mais bonjour la paperasse.... Qu'en est il exactement??? Merci de vos réponses...


Est ce que tu factures ht ou TTC quand vente à un particulier hors UE ?
As tu inclu cette possibilité dans ta contribution ?

Merci pour tout.


--------------------
Creload 6.0 SP1.2 RC2
Options as Image - Login page a la Amazon - Star Product - colored_search_box - IndexAds - products_on_order - order-drop-down-button - Tracking in order history 1.0 - Discount for Payment Type - Updated PayPal Payment Screen - ShortdescriptionCRe612 - Recover_carts14b_cre6 - Quick_Edit_Icon_Link_in_Categories_V_1a_CRE
Go to the top of the page
 
JeanLuc
posté 25 May 2004, 16:59
Message #9


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Je pense que la meilleure solution est de ne facturer HT que dans le cas d'une société avec un n° TVA intracom d'un pays différent de celui de la boutique ET livré dans un pays différent de celui de la boutique.
Cela évite les paperasses vis à vis des douanes.

La contrib est telle qu'elle (simple indication après vérification de leur validité des n° TVA intracom du client et de la boutique sur les cdes, facture etc).
A toi de remplacer le fichier catalog/includes/classes/order.php par celui indiqué dans mon post du 10 février pour faire la vérification et facturer HT ou non selon le cas précisé plus haut... wink.gif


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
lebefa
posté 26 May 2004, 01:54
Message #10


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 60
Inscrit : 13-May 04
Membre no 2483



ok merci JL je regarde ça et je fais les modifs en consequence.
merci pour ta réponse.


--------------------
Creload 6.0 SP1.2 RC2
Options as Image - Login page a la Amazon - Star Product - colored_search_box - IndexAds - products_on_order - order-drop-down-button - Tracking in order history 1.0 - Discount for Payment Type - Updated PayPal Payment Screen - ShortdescriptionCRe612 - Recover_carts14b_cre6 - Quick_Edit_Icon_Link_in_Categories_V_1a_CRE
Go to the top of the page
 
Loup solitaire
posté 26 May 2004, 08:42
Message #11


Ceinture verte OSC
Icône de groupe

Groupe : Membres
Messages : 735
Inscrit : 2-April 04
Lieu : France
Membre no 2225



Pour vos questions sur l'export et la tva vous avez des buraux douanes dans votre région...

Pr les particuliers dans la CEE, il paye la tva du pays du lieu d'achat (boutiquen France = tva française)

Hors CEE c'est HT et ils se débrouillent à la douane puisqu'il paieront la tva de leur pays...


--------------------
Sur Creload6 VF ! + modifications
Go to the top of the page
 
JeanLuc
posté 26 May 2004, 08:53
Message #12


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



[SIZE=1]
QUOTE
Hors CEE c'est HT et ils se débrouillent à la douane puisqu'il paieront la tva de leur pays...
D'accord avec toi mais alors il y a de la paperasse à faire:
QUOTE
Exportations de biens à destination d’un pays tiers :

Les exportations par le vendeur français sont exonérées de TVA lorsqu'elles remplissent certaines conditions :
- inscription de mentions concernant l'exportation dans les livres comptables,
- production d'une déclaration d'exportation visée par le bureau des  douanes, le DAU (document  administratif unique).

Pour les marchandises d'une valeur inférieure à 800 euros et d'un poids net inférieur à 1 000 kg, le DAU peut être remplacé par une simple facture commerciale, dont l'exportateur doit conserver le deuxième exemplaire visé par le service des douanes.

Ces règles sont assouplies si l'expédition est effectuée par paquets postes ou colis postaux d'une valeur inférieure à 8 000 euros.
Ou alors c'est très simple à faire? (Excusez moi si je dis des évidences, je ne suis pas comptable... blush.gif )


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
hermosilla
posté 7 Sep 2004, 18:57
Message #13


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 400
Inscrit : 10-February 04
Lieu : idf france
Membre no 1963



Jean Luc quand tu dis:

QUOTE
Un particulier m'achète qqchose, j'ajoute la TVA française (où que soit l'adresse de livraison ou de paiement).


C'est vrai aussi pour un particulier des DOM et des TOM question.gif


Sinon on peut facturé avec TVA une société hors CEE afin de ne pas remplir toute la paperasse douanières question.gif


--------------------
Version Osc 2.2 MS2 Delaballe
Go to the top of the page
 
JeanLuc
posté 8 Sep 2004, 13:17
Message #14


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3526
Inscrit : 12-June 03
Lieu : Montpellier
Membre no 1239



Je ne suis pas comptable...
Le mieux est de se référer à la page indiquée plus haut par Ewadrel...

Bonne recherche


--------------------
JeanLuc
Pour info: FAQ et doc pour MS1 - doc pour MS2
Go to the top of the page
 
Guest_Ancien Membre_*
posté 11 Sep 2004, 01:21
Message #15





Invité






A la demande d'un ancien membre, son message est supprimé de note base de donnée.

Cordialement,
Delaballe.
Go to the top of the page
 
oianko
posté 11 Sep 2004, 01:32
Message #16


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 98
Inscrit : 16-June 04
Lieu : gironde
Membre no 2688



Salut jeanluc,

pour une fois c moi qui vais t'aider.(comment je suis fier) lol
envoie moi par mail le texte a traduire et je te fait ca sans pb.


Même en basque si tu veux

biggrin.gif


--------------------
ms1fr
Go to the top of the page
 
hermosilla
posté 12 Sep 2004, 22:10
Message #17


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 400
Inscrit : 10-February 04
Lieu : idf france
Membre no 1963



-- [EDIT DELABALLE] Ancien Membre -- quand tu dis:

QUOTE
Les sociétés se font déduire la TVA qu'elles payent à l'étranger alors que les particuliers n'ont jamais le loisir de se plaindre.


c'est à dire que si je facture un particulier, a mettons à la Réunion (qui à 8.5% de TVA) avec une TVA à 19.6%, celui-ci ne peut que payer ?

Ai je droit de le faire ? Cette TVA (de19.6%) est reversée à qui ?

Plus loin tu dis :

QUOTE
Si l'entreprise est au réel normal, elle peut déclarer la TVA à l'export sans la reverser.


Ce pourcentage, facturé en TVA n'est donc pas reverser à l'état français, il est alors considérer comme du "CA" pour la société ? et ça ne pose pas de problèmes comptable ?



J'ai compris le principe de la tva intra-communautaire, la tva à l'export pour les société mais pour les particuliers, il me reste quelques doutes, d'où mes questions, qui peuvent te sembler un peu confuses.

En tout cas, merci pour le coup de main. biggrin.gif


--------------------
Version Osc 2.2 MS2 Delaballe
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 18th May 2013 - 14:42
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)