KoVaLsKy 59 Опубликовано 28 декабря, 2011 Жалоба Share Опубликовано 28 декабря, 2011 Каким образом можно добавить в зону определенный город а не весь областной центр? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 декабря, 2011 Жалоба Share Опубликовано 29 декабря, 2011 По умолчанию - никак. Зоны только дле регионов. Разве что брать что-то типа - City Tax Rates - http://addons.oscommerce.com/info/5427 Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 декабря, 2011 Автор Жалоба Share Опубликовано 29 декабря, 2011 на сколько я понял этот модуль налогами для каждого города играется? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 декабря, 2011 Жалоба Share Опубликовано 29 декабря, 2011 Этот модуль, если я правильно помню, добавляет возможноть в настройках зон указывать города. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 декабря, 2011 Автор Жалоба Share Опубликовано 29 декабря, 2011 Ага. сегодня попробую... там править вроде его не сложно Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 декабря, 2011 Автор Жалоба Share Опубликовано 29 декабря, 2011 Как и ожидалось лезет ошибочка <?php /* ----------------------------------------------------------------------------------------- $Id: index.php 1321 2007-02-06 19:20:03 VaM $ VaM Shop - open source ecommerce solution http://vamshop.ru http://vamshop.com Copyright (c) 2007 VaM Shop ----------------------------------------------------------------------------------------- based on: (c) 2000-2001 The Exchange Project (earlier name of osCommerce) (c) 2002-2003 osCommerce(default.php,v 1.84 2003/05/07); www.oscommerce.com (c) 2003 nextcommerce (default.php,v 1.13 2003/08/17); www.nextcommerce.org (c) 2004 xt:Commerce (default.php,v 1.13 2003/08/17); xt-commerce.com Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contributions: Enable_Disable_Categories 1.3 Autor: Mikel Williams | mikel@ladykatcostumes.com Customers Status v3.x (c) 2002-2003 Copyright Elari elari@free.fr | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ include ('includes/application_top.php'); // create template elements $vamTemplate = new vamTemplate; // include boxes require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php'); // the following cPath references come from application_top.php $category_depth = 'top'; if (isset ($cPath) && vam_not_null($cPath)) { $categories_products_query = "select count(p.products_id) as total from ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc, products as p where ptc.categories_id = '".$current_category_id."' and ptc.products_id=p.products_id and p.products_status='1'"; $categories_products_query = vamDBquery($categories_products_query); $cateqories_products = vam_db_fetch_array($categories_products_query, true); if ($cateqories_products['total'] > 0) { $category_depth = 'products'; // display products } else { $category_parent_query = "select count(*) as total from ".TABLE_CATEGORIES." where parent_id = '".$current_category_id."'"; $category_parent_query = vamDBquery($category_parent_query); $category_parent = vam_db_fetch_array($category_parent_query, true); if ($category_parent['total'] > 0) { $category_depth = 'nested'; // navigate through the categories } else { $category_depth = 'products'; // category has no products, but display the 'no products' message } } } require (DIR_WS_INCLUDES.'header.php'); include (DIR_WS_MODULES.'default.php'); $vamTemplate->assign('language', $_SESSION['language']); $vamTemplate->caching = 0; if (!defined(RM)) $vamTemplate->load_filter('output', 'note'); $template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index.html'); $vamTemplate->display($template); include ('includes/application_bottom.php'); ?> [/CODE] Вот чего на правил и с 781 строки[CODE] function vam_get_tax_class($class_id, $country_id = -1, $zone_id = -1) { global $customer_zone_id, $customer_country_id, $customer_id; //get customers info $customer_city_query = vam_db_query("select entry_city, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . $customer_id . "'"); $customer_city = vam_db_fetch_array($customer_city_query); $customer_city['entry_city'] = strtoupper($customer_city['entry_city']); //set tax rate if city and zone id match $customer_city_rate_query = vam_db_query("select CITY, RATE from citysalesrate where CITY = '" . $customer_city['entry_city'] . "'"); if (($customer_city_rate = vam_db_fetch_array($customer_city_rate_query)) && ($customer_zone_id == STORE_ZONE)) { return $customer_city_rate['RATE'];} elseif ( ($country_id == -1) && ($zone_id == -1) ) { if (!vam_session_is_registered('customer_id')) { $country_id = STORE_COUNTRY; $zone_id = STORE_ZONE; } else { $country_id = $customer_country_id; $zone_id = $customer_zone_id; } } $tax_query = vam_db_query("select SUM(tax_class) as tax_class from " . TABLE_tax_classS . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za ON tr.tax_zone_id = za.geo_zone_id left join " . TABLE_GEO_ZONES . " tz ON tz.geo_zone_id = tr.tax_zone_id WHERE (za.zone_country_id IS NULL OR za.zone_country_id = '0' OR za.zone_country_id = '" . $country_id . "') AND (za.zone_id IS NULL OR za.zone_id = '0' OR za.zone_id = '" . $zone_id . "') AND tr.tax_class_id = '" . $class_id . "' GROUP BY tr.tax_priority"); if (vam_db_num_rows($tax_query)) { $tax_multiplier = 0; while ($tax = vam_db_fetch_array($tax_query)) { $tax_multiplier += $tax['tax_class']; } return $tax_multiplier; } else { return 0; } } //// // Return the tax description for a zone / class // TABLES: tax_classs; function vam_get_tax_description($class_id, $country_id, $zone_id) { global $customer_id, $customer_zone_id; //get customers info $customer_city_query = vam_db_query("select entry_city, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . $customer_id . "'"); $customer_city = vam_db_fetch_array($customer_city_query); $customer_city['entry_city'] = strtoupper($customer_city['entry_city']); //set tax description if city and zone id match $customer_city_rate_query = vam_db_query("select CITY, RATE from citysalesrate where CITY = '" . $customer_city['entry_city'] . "'"); $customer_city_rate = vam_db_fetch_array($customer_city_rate_query); $customer_city_rate['CITY'] = strtoupper($customer_city_rate['CITY']); if (($customer_city_rate['CITY'] == $customer_city['entry_city']) && ($customer_zone_id == STORE_ZONE)) { return $customer_city_rate['CITY'] . ' TAX ' . $customer_city_rate['RATE'] . '%'; $tax_query = vam_db_query("select tax_description from " . TABLE_tax_classS . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za ON tr.tax_zone_id = za.geo_zone_id left join " . TABLE_GEO_ZONES . " tz ON tz.geo_zone_id = tr.tax_zone_id WHERE (za.zone_country_id IS NULL OR za.zone_country_id = '0' OR za.zone_country_id = '" . $country_id . "') AND (za.zone_id IS NULL OR za.zone_id = '0' OR za.zone_id = '" . $zone_id . "') AND tr.tax_class_id = '" . $class_id . "' order by tr.tax_priority"); }elseif (vam_db_num_rows($tax_query)) { $tax_description = ''; while ($tax = vam_db_fetch_array($tax_query)) { $tax_description .= $tax['tax_description'] . ' + '; } $tax_description = substr($tax_description, 0, -3); return $tax_description; } else { return TEXT_UNKNOWN_tax_class; } } в дженерал вставил SQL запрос выполнил как в инсталере CREATE TABLE `citysalesrate` ( `CITY` varchar(255) default NULL, `RATE` float(5,2) default NULL, `recid` int(8) NOT NULL auto_increment, PRIMARY KEY (`recid`) ); [/code] SQL error log [CODE] 29/12/2011 19:12:38 | 1054 - Unknown column 'city_tax_rates' in 'field list' | select `city_tax_rates` from admin_access where customers_id = '1' | /mirra/admin/city_tax_rates.php 29/12/2011 19:12:46 | 1054 - Unknown column 'city_tax_rates' in 'field list' | select `city_tax_rates` from admin_access where customers_id = '1' | /mirra/admin/city_tax_rates.ph city_tax_rates.php Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 декабря, 2011 Жалоба Share Опубликовано 29 декабря, 2011 Так само собой, что код надо адаптировать под VamShop и просто так не заработает. Это шишь основа, которую можно взять для решения проблемы. Есть ещё один модуль так же. Можно найти по city zone Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 декабря, 2011 Автор Жалоба Share Опубликовано 29 декабря, 2011 А сама ошибка из за чего вылезает? судя по всему ему не нравится таблица сама city_tax_rates Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 декабря, 2011 Жалоба Share Опубликовано 29 декабря, 2011 В admin_access нужно добавлять новую колонку city_tax_rates Пример Sql кода ну например в 1.61 патче есть, в SQL файле. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 декабря, 2011 Автор Жалоба Share Опубликовано 29 декабря, 2011 В нем нет ничего Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 декабря, 2011 Жалоба Share Опубликовано 29 декабря, 2011 В других обновлениях посмотрите пример записи в admin_access, в sql файлах. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 10 сентября, 2012 Автор Жалоба Share Опубликовано 10 сентября, 2012 Саш в инструкции говорится о in catalog/includes/functions/general.php replace tep_get_tax_rate and tep_get_tax_description functions: это какой файл в ВАмшопе? такого не нашел Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 сентября, 2012 Жалоба Share Опубликовано 10 сентября, 2012 Видимо. /inc/vam_get_tax_rate.inc.php если есть такой файл. Либо в /includes/classes/vam_price.php посмотреть как налог высчитывается, возможно, что по-другому. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 10 сентября, 2012 Автор Жалоба Share Опубликовано 10 сентября, 2012 Файл настроил. он даст возможность добавить ставку к расчету цены доставки?, как я понимаю? Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 10 сентября, 2012 Автор Жалоба Share Опубликовано 10 сентября, 2012 как бы все срабатывает, но вылезает ошибка при выборе способа доставки Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /home/s/сайт/public_html/inc/vam_db_num_rows.inc.php on line 26 [/CODE] Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 10 сентября, 2012 Автор Жалоба Share Опубликовано 10 сентября, 2012 так же там используется функция strtoupper я ее правильно по менял на utf8_strtoupper ? кстати дополнения делаются в vam_get_tax_description.inc.php и в vam_get_tax_rate.inc.php точнее они меняются. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 10 сентября, 2012 Автор Жалоба Share Опубликовано 10 сентября, 2012 и еще в них странная, отличная от других строк конструкция запроса к БД $customer_city_rate_query = vam_db_query("select CITY, RATE from citysalesrate where CITY = '" . $customer_city['entry_city'] . "'"); [/CODE] по идее должно ж быть [CODE] $customer_city_rate_query = vam_db_query("select CITY, RATE from " . TABLE_CITYSALESRATE . " where CITY = '" . $customer_city['entry_city'] . "'"); но если ставлю данную конструкцию то выдает что 10/09/2012 22:09:34 | 1146 - Table 'БД.CITYSALESRATE' doesn't exist | select CITY, RATE from CITYSALESRATE where CITY = '' | / [/code] хотя она создана и в ней есть значения Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 сентября, 2012 Жалоба Share Опубликовано 11 сентября, 2012 Почему странный sql? Нормальный. Просто нужно в /admin/includes/application_top.php добавить константу TABLE_CITYSALERATE и в /includes/database_tables.php тоже добавить, если этот код из каталога. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 11 сентября, 2012 Автор Жалоба Share Опубликовано 11 сентября, 2012 а Warning: mysql_num_rows() expects parameter 1 to be resource, null given in O:\home\localhost\www\mirmebeli\inc\vam_db_num_rows.inc.php on line 26 [/CODE] почему может вылезать? Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 11 сентября, 2012 Автор Жалоба Share Опубликовано 11 сентября, 2012 да. Почему странный sql? Нормальный. Просто нужно в /admin/includes/application_top.php добавить константу TABLE_CITYSALERATE и в /includes/database_tables.php тоже добавить, если этот код из каталога. да. эта ошибка уже вылезает при выборе способа доставки. как бы все остальное нормально работает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 сентября, 2012 Жалоба Share Опубликовано 11 сентября, 2012 Видимо, ошибка какая-то в sql запросе, может переменная не определена, может ещё что. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 11 сентября, 2012 Автор Жалоба Share Опубликовано 11 сентября, 2012 уже все перерыл справочники говорят что какая то переменная не передается. ((( Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 11 сентября, 2012 Автор Жалоба Share Опубликовано 11 сентября, 2012 vam_get_tax_rate function vam_get_tax_rate($class_id, $country_id = -1, $zone_id = -1) { global $customer_zone_id, $customer_country_id, $customer_id; //get customers info $customer_city_query = vam_db_query("select entry_city, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . $customer_id . "'"); $customer_city = vam_db_fetch_array($customer_city_query); $customer_city['entry_city'] = strtoupper($customer_city['entry_city']); //set tax rate if city and zone id match $customer_city_rate_query = vam_db_query("select CITY, RATE from " . TABLE_CITYSALESRATE . " where CITY = '" . $customer_city['entry_city'] . "'"); if (($customer_city_rate = vam_db_fetch_array($customer_city_rate_query)) && ($customer_zone_id == STORE_ZONE)) { return $customer_city_rate['RATE'];} elseif ( ($country_id == -1) && ($zone_id == -1) ) { if (!vam_session_is_registered('customer_id')) { $country_id = STORE_COUNTRY; $zone_id = STORE_ZONE; } else { $country_id = $customer_country_id; $zone_id = $customer_zone_id; } } $tax_query = vam_db_query("select SUM(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za ON tr.tax_zone_id = za.geo_zone_id left join " . TABLE_GEO_ZONES . " tz ON tz.geo_zone_id = tr.tax_zone_id WHERE (za.zone_country_id IS NULL OR za.zone_country_id = '0' OR za.zone_country_id = '" . $country_id . "') AND (za.zone_id IS NULL OR za.zone_id = '0' OR za.zone_id = '" . $zone_id . "') AND tr.tax_class_id = '" . $class_id . "' GROUP BY tr.tax_priority"); if (vam_db_num_rows($tax_query)) { $tax_multiplier = 0; while ($tax = vam_db_fetch_array($tax_query)) { $tax_multiplier += $tax['tax_rate']; } return $tax_multiplier; } else { return 0; } } [/CODE] но болячка в vam_get_tax_description [CODE] function vam_get_tax_description($class_id, $country_id, $zone_id) { global $customer_id, $customer_zone_id; //get customers info $customer_city_query = vam_db_query("select entry_city, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . $customer_id . "'"); $customer_city = vam_db_fetch_array($customer_city_query); $customer_city['entry_city'] = strtoupper($customer_city['entry_city']); //set tax description if city and zone id match $customer_city_rate_query = vam_db_query("select CITY, RATE from " . TABLE_CITYSALESRATE . " where CITY = '" . $customer_city['entry_city'] . "'"); $customer_city_rate = vam_db_fetch_array($customer_city_rate_query); $customer_city_rate['CITY'] = strtoupper($customer_city_rate['CITY']); if (($customer_city_rate['CITY'] == $customer_city['entry_city']) && ($customer_zone_id == STORE_ZONE)) { return $customer_city_rate['CITY'] . ' TAX ' . $customer_city_rate['RATE'] . '%'; $tax_query = vam_db_query("select tax_description from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za ON tr.tax_zone_id = za.geo_zone_id left join " . TABLE_GEO_ZONES . " tz ON tz.geo_zone_id = tr.tax_zone_id WHERE (za.zone_country_id IS NULL OR za.zone_country_id = '0' OR za.zone_country_id = '" . $country_id . "') AND (za.zone_id IS NULL OR za.zone_id = '0' OR za.zone_id = '" . $zone_id . "') AND tr.tax_class_id = '" . $class_id . "' order by tr.tax_priority"); }elseif (vam_db_num_rows($tax_query)) { $tax_description = ''; while ($tax = vam_db_fetch_array($tax_query)) { $tax_description .= $tax['tax_description'] . ' + '; } $tax_description = substr($tax_description, 0, -3); return $tax_description; } else { return TEXT_UNKNOWN_TAX_RATE; } } Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 сентября, 2012 Жалоба Share Опубликовано 11 сентября, 2012 Нужно ведь идти от простого к сложному. Для начала, к примеру, просто запрос поменяйте на: $customer_city_rate_query = vam_db_query("select CITY, RATE from citysalesrate where CITY = 'Москва'"); ещё можно в phpMyAdmin просто выполнить этот запрос и посмотреть, что он вернёт. Наверное просто пустой запрос получается, поэтому и ошибка. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 11 сентября, 2012 Автор Жалоба Share Опубликовано 11 сентября, 2012 select CITY, RATE from citysalesrate where CITY = 'Иваново' (Иваново уже забито в БД) запрос выдал строку CITY RATE Иваново 10.00 [/CODE] Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения