Crazypilot Posted October 22, 2005 Posted October 22, 2005 Hi Jean-Luc, Your contrib i really good and it has been working like a clock. But now I have a Greek company that can't insert their VAT number. I have tried to insert it myself via the Admin panel, but I get the reply: "After checking, your intracom. VAT is not correct or does not correspond to the entered country. Leave it blank if you don't know it." If I go to: http://europa.eu.int/comm/taxation_customs...en/vieshome.htm the number is accepted. Has there been any changes chages made to your contrib lately? Best regards Crazypilot
JeanLuc Posted October 24, 2005 Posted October 24, 2005 Hi Jean-Luc, Your contrib i really good and it has been working like a clock. But now I have a Greek company that can't insert their VAT number. I have tried to insert it myself via the Admin panel, but I get the reply: "After checking, your intracom. VAT is not correct or does not correspond to the entered country. Leave it blank if you don't know it." If I go to: http://europa.eu.int/comm/taxation_customs...en/vieshome.htm the number is accepted. Has there been any changes chages made to your contrib lately? Best regards Crazypilot What is the version you had installed? Can you send me (by personnal message) the VAT number of your greek customer for test? JLuc JeanLuc OsC: MS2
JeanLuc Posted October 28, 2005 Posted October 28, 2005 Hi Jean-Luc, Your contrib i really good and it has been working like a clock. But now I have a Greek company that can't insert their VAT number. I have tried to insert it myself via the Admin panel, but I get the reply: "After checking, your intracom. VAT is not correct or does not correspond to the entered country. Leave it blank if you don't know it." If I go to: http://europa.eu.int/comm/taxation_customs...en/vieshome.htm the number is accepted. Has there been any changes chages made to your contrib lately? Best regards Crazypilot Hi Crazypilot This pb with the greek numbers has been fixed with the version 4.4 : http://www.oscommerce.com/community/contributions,1848 Bugfix with this version:When customer choose "France m?tropolitaine" or "Greece" as his country, the contribution refused the VAT number. To fix that: In catalog/create_account.php, catalog/address_book_process.php, catalog/checkout_payment_address.php, catalog/checkout_shipping_address.php, find this line added by the contribution: if ( (array_search($country_code['countries_iso_code_2'], array_keys(tep_get_tva_intracom_array())) === false) || ($country_code['countries_iso_code_2'] != substr(strtoupper(trim($tva_intracom)),0,2)) ) { and replace it by: $tva_intracom_array = tep_get_tva_intracom_array(); if ( (array_search($country_code['countries_iso_code_2'], array_keys($tva_intracom_array) ) === false) || ($tva_intracom_array[$country_code['countries_iso_code_2']] != substr(strtoupper(trim($tva_intracom)),0,2)) ) { That's it... Hope this is your pb... JLuc JeanLuc OsC: MS2
Crazypilot Posted November 4, 2005 Posted November 4, 2005 Jluc, Again I bow my head at your fantastic support. I will try out the fix. Thanks again. Crazypilot
Crazypilot Posted November 4, 2005 Posted November 4, 2005 Hi Jluc and others, I installed the fix and now it worked for new greek accounts. But still I could not manually change or insert Greek VAT numbers via Admin Customers Edit feature. As no files were changed in the Admin part I changed following files in catalog/admin/customers.php Find: if ( (array_search($countries_array['countries_iso_code_2'], array_keys(tep_get_tva_intracom_array())) === false) || ($countries_array['countries_iso_code_2'] != substr(strtoupper(trim($entry_tva_intracom)),0,2)) ) { and replace with: $tva_intracom_array = tep_get_tva_intracom_array(); if ( (array_search($countries_array['countries_iso_code_2'], array_keys($tva_intracom_array) ) === false) || ($tva_intracom_array[$country_code['countries_iso_code_2']] != substr(strtoupper(trim($tva_intracom)),0,2)) ) { Alomst same fix as Jluc showed above, except that in the beginning of string "($countries_array" should be used instead of "($country_code" Now the VAT numbers could be changed and checked from the admin panel. Best regards Crazypilot
wr19026 Posted November 11, 2005 Posted November 11, 2005 I've installed version 4.4 on a (fairly) clean osC 2.2ms2 install and it works great! However I have the following question(s) regarding: To automatically tax or to automatically not tax? The issue for me is that we generally do not charge for shipping unless the item/order sold is outside of "normal" size/weight classes. The actual inventory holding and invoicing is done using a (small) ERP package so I can make adjustments to the legal invoice there. I commented in the stuff in order.php and ot_shipping.php but that made me think; don't I need to do the same for the other ot_???.php files as we do have the low order fee and may start introducing COD (with an associated fee) in the near future. And obviously we want our customers to see the right order total when they check out. Thanks in advance for your feedback
Micke Posted March 30, 2006 Posted March 30, 2006 Hi there! I'm trying to install this contribution and I run into problems at the very start.... In myPHPadmin when I try to run the SQL: INSERT INTO configuration_group VALUES ( '16', 'Intracom VAT', 'Intracom VAT options', '16', '1' ); MySQL says: #1062 - Duplicate entry '16' for key 1 What can I do? Can I change from 16 to something else? Or what?
JeanLuc Posted April 3, 2006 Posted April 3, 2006 Hi there! I'm trying to install this contribution and I run into problems at the very start.... In myPHPadmin when I try to run the SQL: INSERT INTO configuration_group VALUES ( '16', 'Intracom VAT', 'Intracom VAT options', '16', '1' ); MySQL says: #1062 - Duplicate entry '16' for key 1 What can I do? Can I change from 16 to something else? Or what? You're right. The message means there is an entry in the "configuration_group" table wich already have the number "16". Have a look to the data of this table and check the last entry (view the "configuration_group_id" and "sort_order" fields). Change the SQL from "16" to an other (the last entry "configuration_group_id" + 1). Regards JeanLuc OsC: MS2
JeanLuc Posted May 22, 2006 Posted May 22, 2006 New version available: TVA intracommunautaire v.5 This update use now the new webservice (SOAP) proposed by the europa site (http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl) for checking the VAT number type by customers when they create their count in the shop. Previous versions only checked the VAT number using the HTML page in the europa site (http://ec.europa.eu/taxation_customs/vies/fr/vieshome.htm). Now, the verification use SOAP protocol via nusoap.php class file (Dietrich Ayala) included in this package. It is more secure and "clean". For those who have already installed this contribution, the only changes are: 2 new files added: catalog/admin/includes/classes/nusoap.php and catalog/includes/classes/nusoap.php and the tep_verif_tva() functions updated in catalog/admin/includes/functions/validations.php and catalog/includes/functions/validations.php Regards JeanLuc OsC: MS2
Guest Posted May 23, 2006 Posted May 23, 2006 JeanLuc, I updated my v4.4 some minutes ago as described above (adding nusoap.php files and replace functions) but now I get this error when trying to save my address with VAT number: Warning: Cannot modify header information - headers already sent in /var/www/thincco/html/catalog/includes/functions/general.php on line 47 Line 47 is this here from function "tep_redirect": header('Location: ' . $url); It worked fine before with 4.4. Any ideas? Jens
JeanLuc Posted May 23, 2006 Posted May 23, 2006 JeanLuc, I updated my v4.4 some minutes ago as described above (adding nusoap.php files and replace functions) but now I get this error when trying to save my address with VAT number: Warning: Cannot modify header information - headers already sent in /var/www/thincco/html/catalog/includes/functions/general.php on line 47 It worked fine before with 4.4. Any ideas? Jens sometimes it's because there are some empty line containing space before the first <?php or after the last ?> Have a look in the file catalog/includes/functions/general.php and verify you didn't add space at the beginning or the end of the script. Actually, the changes are concerning validations.php file and not general.php... Regards JeanLuc OsC: MS2
Guest Posted May 24, 2006 Posted May 24, 2006 Thanks for the hint but no changes. I checked several files but no success. I always get this error. Update my address without the VAT number = no error Update with a invalid VAT this error appears which is ok so far:"After checking, your intracom. VAT is not correct. Leave it blank if you don't know it" Update with a valid VAT = Header error as above As I said before the the contrib 4.4 works fine. Another idea? :'(
Guest Posted May 24, 2006 Posted May 24, 2006 Hi All, I have installed TVA intracommunautaire v.5 today, and followed the instructions provided. Everything went well, from the visitors view of the site entry point for the number are ok. But when I look at the order, invoice, packing slip via the admin panel I get the word 'ENTRY_SHOP_INTRACOM' appearing where the VAT Number should be. I have gone over the changed made and cannot see where this problem is coming from. Can anyone shed any light on this matter. Kind regards.
Guest Posted May 26, 2006 Posted May 26, 2006 Hi All, I have installed TVA intracommunautaire v.5 today, and followed the instructions provided. Everything went well, from the visitors view of the site entry point for the number are ok. But when I look at the order, invoice, packing slip via the admin panel I get the word 'ENTRY_SHOP_INTRACOM' appearing where the VAT Number should be. I have gone over the changed made and cannot see where this problem is coming from. Can anyone shed any light on this matter. Kind regards. Hi I managed to sort the above out, had wrong code in catalog/admin/includes/languages/english.php. From thew admin side all invoices and packing list now have the Intracom no. appearing correctly. The problem I have is when I create a new account and the user completed the new account screen with their VAT number. When they press continue I get the message :- Warning: Cannot modify header information - headers already sent in /home/httpd/vhosts/trifibrecasesonline.co.uk/httpdocs/osc/includes/functions/general.php on line 29 The address in the address bar is: http://trifibrecasesonline.co.uk/osc/create_account.php but the account get created and can be seen in the admin area. I think there is a problem with the create_account.php and need help in tracking the problems down My create_account.php looks like <?php/* $Id: create_account.php,v 1.65 2003/06/09 23:03:54 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License*/ require('includes/application_top.php'); // needs to be included earlier to set the success message in the messageStack require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CREATE_ACCOUNT); $process = false; if (isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process')) { $process = true; if (ACCOUNT_GENDER == 'true') { if (isset($HTTP_POST_VARS['gender'])) { $gender = tep_db_prepare_input($HTTP_POST_VARS['gender']); } else { $gender = false; } } $firstname = tep_db_prepare_input($HTTP_POST_VARS['firstname']); $lastname = tep_db_prepare_input($HTTP_POST_VARS['lastname']); if (ACCOUNT_DOB == 'true') $dob = tep_db_prepare_input($HTTP_POST_VARS['dob']); $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']); if (ACCOUNT_COMPANY == 'true') $company = tep_db_prepare_input($HTTP_POST_VARS['company']);// Ajout pour TVA_INTRACOM_v3.0 if (ACCOUNT_COMPANY == 'true') $tva_intracom = tep_db_prepare_input($HTTP_POST_VARS['tva_intracom']);// Fin ajout pour TVA_INTRACOM_v3.0 $street_address = tep_db_prepare_input($HTTP_POST_VARS['street_address']); if (ACCOUNT_SUBURB == 'true') $suburb = tep_db_prepare_input($HTTP_POST_VARS['suburb']); $postcode = tep_db_prepare_input($HTTP_POST_VARS['postcode']); $city = tep_db_prepare_input($HTTP_POST_VARS['city']); if (ACCOUNT_STATE == 'true') { $state = tep_db_prepare_input($HTTP_POST_VARS['state']); if (isset($HTTP_POST_VARS['zone_id'])) { $zone_id = tep_db_prepare_input($HTTP_POST_VARS['zone_id']); } else { $zone_id = false; } } $country = tep_db_prepare_input($HTTP_POST_VARS['country']); $telephone = tep_db_prepare_input($HTTP_POST_VARS['telephone']); $fax = tep_db_prepare_input($HTTP_POST_VARS['fax']); if (isset($HTTP_POST_VARS['newsletter'])) { $newsletter = tep_db_prepare_input($HTTP_POST_VARS['newsletter']); } else { $newsletter = false; } $password = tep_db_prepare_input($HTTP_POST_VARS['password']); $confirmation = tep_db_prepare_input($HTTP_POST_VARS['confirmation']); $error = false; if (ACCOUNT_GENDER == 'true') { if ( ($gender != 'm') && ($gender != 'f') ) { $error = true; $messageStack->add('create_account', ENTRY_GENDER_ERROR); } } if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR); } if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR); } if (ACCOUNT_DOB == 'true') { if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4)) == false) { $error = true; $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR); } } if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR); } elseif (tep_validate_email($email_address) == false) { $error = true; $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR); } else { $check_email_query = tep_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'"); $check_email = tep_db_fetch_array($check_email_query); if ($check_email['total'] > 0) { $error = true; $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS); } } //BOF for VAT INTRACOM_v3.3 if (ACCOUNT_COMPANY == 'true') { if ( (strlen($company) != 0) && (strlen($company) < ENTRY_COMPANY_MIN_LENGTH) ) { $error = true; $messageStack->add('create_account', ENTRY_COMPANY_ERROR); } if ( ENTRY_TVA_INTRACOM_CHECK == 'true') { if (strlen($tva_intracom) != 0) { // Begin update for TVA_INTRACOM_v3.9 if (is_numeric($country)) { $country_code = tep_get_countries_with_iso_codes($country); if ( (array_search($country_code['countries_iso_code_2'], array_keys(tep_get_tva_intracom_array())) === false) || ($country_code['countries_iso_code_2'] != substr(strtoupper(trim($tva_intracom)),0,2)) ) { $error = true; $messageStack->add('create_account', ENTRY_CONTROL_TVA_INTRACOM_COUNTRY); } } // End update for TVA_INTRACOM_v3.9 $result_tva = tep_verif_tva(strtoupper(rtrim($tva_intracom))); if ($result_tva == 'false') { $error = true; $messageStack->add('create_account', ENTRY_CONTROL_TVA_INTRACOM); } elseif ($result_tva == 'no_verif') { $error = true; $messageStack->add('create_account', ENTRY_NO_VERIF_TVA_INTRACOM); } } } else { if ( (strlen($tva_intracom) != 0) && (strlen($tva_intracom) < ENTRY_TVA_INTRACOM_MIN_LENGTH) ) { $error = true; $messageStack->add('create_account', ENTRY_TVA_INTRACOM_ERROR); } } }// EOF for TVA_INTRACOM_v3.3 if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR); } if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_POST_CODE_ERROR); } if (strlen($city) < ENTRY_CITY_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_CITY_ERROR); } if (is_numeric($country) == false) { $error = true; $messageStack->add('create_account', ENTRY_COUNTRY_ERROR); } if (ACCOUNT_STATE == 'true') { $zone_id = 0; $check_query = tep_db_query("select count(*) as total from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "'"); $check = tep_db_fetch_array($check_query); $entry_state_has_zones = ($check['total'] > 0); if ($entry_state_has_zones == true) { $zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name like '" . tep_db_input($state) . "%' or zone_code like '%" . tep_db_input($state) . "%')"); if (tep_db_num_rows($zone_query) == 1) { $zone = tep_db_fetch_array($zone_query); $zone_id = $zone['zone_id']; } else { $error = true; $messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT); } } else { if (strlen($state) < ENTRY_STATE_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_STATE_ERROR); } } } if (strlen($telephone) < ENTRY_TELEPHONE_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_TELEPHONE_NUMBER_ERROR); } if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_PASSWORD_ERROR); } elseif ($password != $confirmation) { $error = true; $messageStack->add('create_account', ENTRY_PASSWORD_ERROR_NOT_MATCHING); } //VISUAL VERIFY CODE start require(DIR_WS_FUNCTIONS . 'visual_verify_code.php'); $code_query = tep_db_query("select code from visual_verify_code where oscsid = '" . $HTTP_GET_VARS['osCsid'] . "'"); $code_array = tep_db_fetch_array($code_query); $code = $code_array['code']; tep_db_query("DELETE FROM " . TABLE_VISUAL_VERIFY_CODE . " WHERE oscsid='" . $vvcode_oscsid . "'"); //remove the visual verify code associated with this session to clean database and ensure new results $user_entered_code = $HTTP_POST_VARS['visual_verify_code']; if (!(strcasecmp($user_entered_code, $code) == 0)) { //make the check case insensitive $error = true; $messageStack->add('create_account', VISUAL_VERIFY_CODE_ENTRY_ERROR); }//VISUAL VERIFY CODE stop if ($error == false) { $sql_data_array = array('customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => tep_encrypt_password($password)); if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender; if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($dob); tep_db_perform(TABLE_CUSTOMERS, $sql_data_array); $customer_id = tep_db_insert_id(); $sql_data_array = array('customers_id' => $customer_id, 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country); if (ACCOUNT_GENDER == 'true') $sql_data_array['entry_gender'] = $gender; if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_company'] = $company;// Ajout pour TVA_INTRACOM_v3.0 if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_tva_intracom'] = $tva_intracom;// Fin ajout pour TVA_INTRACOM_v3.0 if (ACCOUNT_SUBURB == 'true') $sql_data_array['entry_suburb'] = $suburb; if (ACCOUNT_STATE == 'true') { if ($zone_id > 0) { $sql_data_array['entry_zone_id'] = $zone_id; $sql_data_array['entry_state'] = ''; } else { $sql_data_array['entry_zone_id'] = '0'; $sql_data_array['entry_state'] = $state; } } tep_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array); $address_id = tep_db_insert_id(); tep_db_query("update " . TABLE_CUSTOMERS . " set customers_default_address_id = '" . (int)$address_id . "' where customers_id = '" . (int)$customer_id . "'"); tep_db_query("insert into " . TABLE_CUSTOMERS_INFO . " (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('" . (int)$customer_id . "', '0', now())"); if (SESSION_RECREATE == 'True') { tep_session_recreate(); } $customer_first_name = $firstname; $customer_default_address_id = $address_id; $customer_country_id = $country; $customer_zone_id = $zone_id; tep_session_register('customer_id'); tep_session_register('customer_first_name'); tep_session_register('customer_default_address_id'); tep_session_register('customer_country_id'); tep_session_register('customer_zone_id'); // restore cart contents $cart->restore_contents(); // build the message content $name = $firstname . ' ' . $lastname; if (ACCOUNT_GENDER == 'true') { if ($gender == 'm') { $email_text = sprintf(EMAIL_GREET_MR, $lastname); } else { $email_text = sprintf(EMAIL_GREET_MS, $lastname); } } else { $email_text = sprintf(EMAIL_GREET_NONE, $firstname); } $email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING; tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT_SUCCESS, '', 'SSL')); } } $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));?><!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"><html <?php echo HTML_PARAMS; ?>><head><meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"><title><?php echo TITLE; ?></title><base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"><link rel="stylesheet" type="text/css" href="stylesheet.css"><?php require('includes/form_check.js.php'); ?></head><body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"><!-- header //--><?php require(DIR_WS_INCLUDES . 'header.php'); ?><!-- header_eof //--> <!-- body //--><table border="0" width="100%" cellspacing="3" cellpadding="3"> <tr> <td width="<?php echo BOX_WIDTH_LEFT_IS; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH_LEFT_IS; ?>" cellspacing="0" cellpadding="2"><!-- left_navigation //--><?php require(DIR_WS_INCLUDES . 'column_left.php'); ?><!-- left_navigation_eof //--> </table></td><!-- body_text //--> <td width="100%" valign="top"><?php echo tep_draw_form('create_account', tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onSubmit="return check_form(create_account);"') . tep_draw_hidden_field('action', 'process'); ?><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'spacer.jpg', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="smallText"><br><?php echo sprintf(TEXT_ORIGIN_LOGIN, tep_href_link(FILENAME_LOGIN, tep_get_all_get_params(), 'SSL')); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr><?php if ($messageStack->size('create_account') > 0) {?> <tr> <td><?php echo $messageStack->output('create_account'); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr><?php }?> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="main"><b><?php echo CATEGORY_PERSONAL; ?></b></td> <td class="inputRequirement" align="right"><?php echo FORM_REQUIRED_INFORMATION; ?></td> </tr> </table></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"><?php if (ACCOUNT_GENDER == 'true') {?> <tr> <td class="main"><?php echo ENTRY_GENDER; ?></td> <td class="main"><?php echo tep_draw_radio_field('gender', 'm') . '??' . MALE . '??' . tep_draw_radio_field('gender', 'f') . '??' . FEMALE . '?' . (tep_not_null(ENTRY_GENDER_TEXT) ? '<span class="inputRequirement">' . ENTRY_GENDER_TEXT . '</span>': ''); ?></td> </tr><?php }?> <tr> <td class="main"><?php echo ENTRY_FIRST_NAME; ?></td> <td class="main"><?php echo tep_draw_input_field('firstname') . '?' . (tep_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">' . ENTRY_FIRST_NAME_TEXT . '</span>': ''); ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_LAST_NAME; ?></td> <td class="main"><?php echo tep_draw_input_field('lastname') . '?' . (tep_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">' . ENTRY_LAST_NAME_TEXT . '</span>': ''); ?></td> </tr><?php if (ACCOUNT_DOB == 'true') {?> <tr> <td class="main"><?php echo ENTRY_DATE_OF_BIRTH; ?></td> <td class="main"><?php echo tep_draw_input_field('dob') . '?' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?></td> </tr><?php }?> <tr> <td class="main"><?php echo ENTRY_EMAIL_ADDRESS; ?></td> <td class="main"><?php echo tep_draw_input_field('email_address') . '?' . (tep_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">' . ENTRY_EMAIL_ADDRESS_TEXT . '</span>': ''); ?></td> </tr> </table></td> </tr> </table></td> </tr><?php if (ACCOUNT_COMPANY == 'true') {?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><b><?php echo CATEGORY_COMPANY; ?></b></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"> <tr> <td class="main"><?php echo ENTRY_COMPANY; ?></td> <td class="main"><?php echo tep_draw_input_field('company') . '?' . (tep_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COMPANY_TEXT . '</span>': ''); ?></td> </tr><!-- Ajout pour TVA_INTRACOM_v3.0 //--> <tr> <td class="main"><?php echo ENTRY_TVA_INTRACOM; ?></td> <td class="main"><?php echo tep_draw_input_field('tva_intracom') . '?' . (tep_not_null(ENTRY_TVA_INTRACOM_TEXT) ? '<span class="inputRequirement">' . ENTRY_TVA_INTRACOM_TEXT . '</span>': ''); ?></td> </tr><!-- Fin ajout pour TVA_INTRACOM_v3.0 //--> </table></td> </tr> </table></td> </tr><?php }?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><b><?php echo CATEGORY_ADDRESS; ?></b></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"> <tr> <td class="main"><?php echo ENTRY_STREET_ADDRESS; ?></td> <td class="main"><?php echo tep_draw_input_field('street_address') . '?' . (tep_not_null(ENTRY_STREET_ADDRESS_TEXT) ? '<span class="inputRequirement">' . ENTRY_STREET_ADDRESS_TEXT . '</span>': ''); ?></td> </tr><?php if (ACCOUNT_SUBURB == 'true') {?> <tr> <td class="main"><?php echo ENTRY_SUBURB; ?></td> <td class="main"><?php echo tep_draw_input_field('suburb') . '?' . (tep_not_null(ENTRY_SUBURB_TEXT) ? '<span class="inputRequirement">' . ENTRY_SUBURB_TEXT . '</span>': ''); ?></td> </tr><?php }?> <tr> <td class="main"><?php echo ENTRY_POST_CODE; ?></td> <td class="main"><?php echo tep_draw_input_field('postcode') . '?' . (tep_not_null(ENTRY_POST_CODE_TEXT) ? '<span class="inputRequirement">' . ENTRY_POST_CODE_TEXT . '</span>': ''); ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_CITY; ?></td> <td class="main"><?php echo tep_draw_input_field('city') . '?' . (tep_not_null(ENTRY_CITY_TEXT) ? '<span class="inputRequirement">' . ENTRY_CITY_TEXT . '</span>': ''); ?></td> </tr><?php if (ACCOUNT_STATE == 'true') {?> <tr> <td class="main"><?php echo ENTRY_STATE; ?></td> <td class="main"><?php if ($process == true) { if ($entry_state_has_zones == true) { $zones_array = array(); $zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' order by zone_name"); while ($zones_values = tep_db_fetch_array($zones_query)) { $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']); } echo tep_draw_pull_down_menu('state', $zones_array); } else { echo tep_draw_input_field('state'); } } else { echo tep_draw_input_field('state'); } if (tep_not_null(ENTRY_STATE_TEXT)) echo '?<span class="inputRequirement">' . ENTRY_STATE_TEXT;?> </td> </tr><?php }?> <tr> <td class="main"><?php echo ENTRY_COUNTRY; ?></td> <td class="main"><?php echo tep_get_country_list('country') . '?' . (tep_not_null(ENTRY_COUNTRY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COUNTRY_TEXT . '</span>': ''); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><b><?php echo CATEGORY_CONTACT; ?></b></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"> <tr> <td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td> <td class="main"><?php echo tep_draw_input_field('telephone') . '?' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_FAX_NUMBER; ?></td> <td class="main"><?php echo tep_draw_input_field('fax') . '?' . (tep_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_FAX_NUMBER_TEXT . '</span>': ''); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><b><?php echo CATEGORY_OPTIONS; ?></b></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"> <tr> <td class="main"><?php echo ENTRY_NEWSLETTER; ?></td> <td class="main"><?php echo tep_draw_checkbox_field('newsletter', '1') . '?' . (tep_not_null(ENTRY_NEWSLETTER_TEXT) ? '<span class="inputRequirement">' . ENTRY_NEWSLETTER_TEXT . '</span>': ''); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><b><?php echo CATEGORY_PASSWORD; ?></b></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"> <tr> <td class="main"><?php echo ENTRY_PASSWORD; ?></td> <td class="main"><?php echo tep_draw_password_field('password') . '?' . (tep_not_null(ENTRY_PASSWORD_TEXT) ? '<span class="inputRequirement">' . ENTRY_PASSWORD_TEXT . '</span>': ''); ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_PASSWORD_CONFIRMATION; ?></td> <td class="main"><?php echo tep_draw_password_field('confirmation') . '?' . (tep_not_null(ENTRY_PASSWORD_CONFIRMATION_TEXT) ? '<span class="inputRequirement">' . ENTRY_PASSWORD_CONFIRMATION_TEXT . '</span>': ''); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr><!-------------------------------------------------------------------- --><!-- VISUAL VERIFY CODE start --> <tr> <td class="main"><b><?php echo VISUAL_VERIFY_CODE_CATEGORY; ?></b></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" cellspacing="2" cellpadding="2"> <tr> <td class="main"><?php echo VISUAL_VERIFY_CODE_TEXT_INSTRUCTIONS; ?></td> <td class="main"><?php echo tep_draw_input_field('visual_verify_code') . '?' . '<span class="inputRequirement">' . VISUAL_VERIFY_CODE_ENTRY_TEXT . '</span>'; ?></td> <td class="main"> <?php //can replace the following loop with $visual_verify_code = substr(str_shuffle (VISUAL_VERIFY_CODE_CHARACTER_POOL), 0, rand(3,6)); if you have PHP 4.3 $visual_verify_code = ""; for ($i = 1; $i <= rand(3,6); $i++){ $visual_verify_code = $visual_verify_code . substr(VISUAL_VERIFY_CODE_CHARACTER_POOL, rand(0, strlen(VISUAL_VERIFY_CODE_CHARACTER_POOL)-1), 1); } $vvcode_oscsid = $HTTP_GET_VARS['osCsid']; tep_db_query("DELETE FROM " . TABLE_VISUAL_VERIFY_CODE . " WHERE oscsid='" . $vvcode_oscsid . "'"); $sql_data_array = array('oscsid' => $vvcode_oscsid, 'code' => $visual_verify_code); tep_db_perform(TABLE_VISUAL_VERIFY_CODE, $sql_data_array); $visual_verify_code = ""; echo('<img src="' . FILENAME_VISUAL_VERIFY_CODE_DISPLAY . '?vvc=' . $vvcode_oscsid . '"'); ?> </td> <td class="main"><?php echo VISUAL_VERIFY_CODE_BOX_IDENTIFIER; ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr><!-- VISUAL VERIFY CODE stop --><!-------------------------------------------------------------------- --> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents">
Guest Posted May 29, 2006 Posted May 29, 2006 Warning: Cannot modify header information - headers already sent in /home/httpd/vhosts/trifibrecasesonline.co.uk/httpdocs/osc/includes/functions/general.php on line 29 Does this line contain the code "header('Location: ' . $url);" ??? If so we have the same error (see my postings above) and the error is in the new function. It works perfect when I replace the new functions with the old ones. Jens
dwinner Posted June 8, 2006 Posted June 8, 2006 Hi, I've got the same problem about the headers already sent: Warning: Cannot modify header information - headers already sent when I'm using the new SOAP version of this module. I think the problem comes from the "call" function used in the nusoap.php class validations.php: function tep_verif_tva() $response = $client->call('checkVat', $param); I think some output must be sent in that function but I don't see what. Nothing appears in the page source. This must be the origin of the problem. Maybe it's a bug related to php, I don't know... I'm using the old method until someone can find a solution.
kAnAnA Posted June 10, 2006 Posted June 10, 2006 hi ppl ! I have installed this contribuition but there is only a problem .... in creat_account.php the field to VAT NUMBER appears correct and the users in reegistration process put the VAT number ..... but in admin area in invoice.php the VAT number does not appear .... it?s appear a field without number ! Also in admin/customers.php?page=1&cID=16&action=edit in the place off intracom values does not appear nothing !! Only a blank field .... do u know what?s wrong ??
Guest Posted September 2, 2006 Posted September 2, 2006 I would like to see the VAT Number of the customer on order page in de admin, and also on the invoice. I did already try some things but didn't work out, someone a hint for me?
gershwin Posted September 19, 2006 Posted September 19, 2006 Hi, I just installed the "VAT legal & INTRACOM V5" in my OSC 2.2 MS2 with copying the original files into the directions. If I create a new account (for ex. an UK company with valid VAT no.) my shop display the tax at the: - checkout_confirmation.php - invoice.php As I`ve understod the contrib does NOT show tax if an EU company has an valid VAT number. I habe serveral tax classes: - 16% for german tax (all customers) - 16% for non EU (all customers) - 16 % for EU (private customers) - 0% for EU (with VAT) I have assigned the countries to the tax classes also. Hope for some help pease. Thanks gershwin
JeanLuc Posted September 20, 2006 Posted September 20, 2006 Hi, I just installed the "VAT legal & INTRACOM V5" in my OSC 2.2 MS2 with copying the original files into the directions. If I create a new account (for ex. an UK company with valid VAT no.) my shop display the tax at the: - checkout_confirmation.php - invoice.php As I`ve understod the contrib does NOT show tax if an EU company has an valid VAT number. I habe serveral tax classes: - 16% for german tax (all customers) - 16% for non EU (all customers) - 16 % for EU (private customers) - 0% for EU (with VAT) I have assigned the countries to the tax classes also. Hope for some help pease. Thanks gershwin Don't forget to uncomment the specified lines in catalog/includes/classes/order.php and catalog/includes/modules/order_total/ot_shipping.php as explain in the install.txt file: For those who want taxes automatically if the conditions below are OK:the billing company field is not NULL AND the billing tva_intracom field is not NULL AND the billing country is different than the STORE_COUNTRY AND the delivery country is different than the STORE_COUNTRY You can pick up the following files: catalog/includes/classes/order.php and catalog/includes/modules/order_total/ot_shipping.php in this package, replace yours and uncomment the lines as explain in it. For more info, have a look here: http://www.oscommerce.com/forums/index.php?showtopic=76315 JeanLuc OsC: MS2
gershwin Posted September 20, 2006 Posted September 20, 2006 Hi JeanLuc, thanks a lot - everything works now! Thanks also for your great work! Perhaps you might make this information (to uncomment lines) larger or at the end of the how-to-do. Best regards gershwin
Guest Posted November 16, 2006 Posted November 16, 2006 Hi, trying to implemate this well needed contribution. I?m having trouble getting the code in my catalog/includes/classes/order.php It?s the last bit in the code where I can?t get it in. I have another contribution installed which is "Discount Coupon Codes" I?m trying to get this bit in: For those who want taxes automatically if the conditions below are OK:the billing company field is not NULL AND the billing tva_intracom field is not NULL AND the billing country is different than the STORE_COUNTRY AND the delivery country is different than the STORE_COUNTRY This is the last bit from my present catalog/includes/classes/order.php. $subindex++; } } //kgt - discount coupon if( !empty( $this->info['coupon'] ) ) { if( !isset( $this_coupon ) ) { require_once( DIR_WS_CLASSES . 'discount_coupon.php' ); $this_coupon = new discount_coupon( $this->info['coupon'] ); } $applied_discount = $this_coupon->calculate_discount( $this->products[$index], $n ); if( isset( $this->info['applied_discount'][$this->products[$index]['tax_description']] ) ) { $this->info['applied_discount'][$this->products[$index]['tax_description']] += $applied_discount; } else { $this->info['applied_discount'][$this->products[$index]['tax_description']] = $applied_discount; } $this_actual_shown_price = null; if( MODULE_ORDER_TOTAL_DISCOUNT_COUPON_DISPLAY_SUBTOTAL == 'false' ) { //we don't want to display the subtotal with the discount applied, so apply the discount then set the applied_discount variable to zero so that it's not added into the order subtotal, but is still used to correctly calculate tax $this_actual_shown_price = ( tep_add_tax( $this->products[$index]['final_price'], $this->products[$index]['tax'] ) * $this->products[$index]['qty'] ) - $applied_discount; $applied_discount = 0; } } $shown_price = ( tep_add_tax( $this->products[$index]['final_price'], $this->products[$index]['tax'] ) * $this->products[$index]['qty'] ) - $applied_discount; $this->info['subtotal'] += $shown_price; //if we need to display the subtotal without the discount applied, then add the shown price to the subtotal, then change shown price to the price with the applied discount in order to properly calculate taxes if( isset( $this_actual_shown_price ) ) $shown_price = $this_actual_shown_price; //end kgt - discount coupon $products_tax = $this->products[$index]['tax']; $products_tax_description = $this->products[$index]['tax_description']; 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']; } //kgt - discount coupon if( !empty( $this->info['coupon'] ) && MODULE_ORDER_TOTAL_DISCOUNT_COUPON_DISPLAY_SUBTOTAL == 'false' ) { foreach( $this->info['applied_discount'] as $discount ){ $this->info['total'] -= $discount; } } //end kgt - discount coupon } } ?> And this is the last part from the catalog/includes/classes/order.php which is included in the "E.U. VAT Intracom Number contribution": $subindex++; } } // BOF for TVA_intracom_v3.4 //For those who want taxes automatically if the conditions below are OK, uncomment the lines below 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 //For those who want taxes automatically if the conditions below are OK, uncomment the line below } // EOF for TVA_intracom_v3.4 // BOF for TVA_intracom_v3.4 //For those who want taxes automatically if the conditions below are OK, uncomment the lines below 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 //For those who want taxes automatically if the conditions below are OK, uncomment the line below } // 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']; } } } ?> I will really need some help with getting the "TVA_intracom_v3.4" code in my present order.php. Or...Is it possible to use these two contributions together? Hope somebody can help me out. This is one of the last things left to do before I can go live. Thanks in advance Per
Guest Posted August 27, 2007 Posted August 27, 2007 Hi, I have the below problem: In admin/cofiguration when I klick on the TVA Intracom link, I only get to see a bar with "titel, value & action" in it. I understand that this is the panel where I can do the sttings for this contri, but nothing is showing :'( Can some-one help me please! Many thanks Best regards Geeraard
Royed Posted August 30, 2007 Posted August 30, 2007 I have another problem... I kopied all the files to my server... and the field is there so that is fine... But in the admin section is nothing? so the whole thing does not work. How do I get it in the admin section? so i can manage it?
Guest Posted September 18, 2007 Posted September 18, 2007 Hi, I have the below problem: In admin/cofiguration when I klick on the TVA Intracom link, I only get to see a bar with "titel, value & action" in it. I understand that this is the panel where I can do the sttings for this contri, but nothing is showing :'( Can some-one help me please! Many thanks Best regards Geeraard Ok, Now the above problem I partialy solved, the required code was copied to a wrong part so I can see the TVA info now in admin in an other section :rolleyes: But it works Or it did work :'( I now face the following (twofold) problem: 1. when people create an account, go to their account details and change their country, suddenly VAT is deducted from the prices !! 2. I had installed all other countries, and when creating an account from eg. france, taxes were deducted automaticly :blink: Since I had no idea whats causing this, I deleted all other countries except the Benelux to avoid people buying less VAT when they're not supposed to! Does any-one encountered this problem before and/or can some-one please help me. Many thanks in advance!
Recommended Posts
Archived
This topic is now archived and is closed to further replies.