public function index($id = 0, $params = array()) { $lang_code = $this->safeGet($params, 'lang_code', DEFAULT_LANGUAGE); if (!empty($id)) { $data = fn_get_tax($id, $lang_code); if (empty($data)) { $status = Response::STATUS_NOT_FOUND; } else { $status = Response::STATUS_OK; } } else { $items_per_page = $this->safeGet($params, 'items_per_page', Registry::get('settings.Appearance.admin_elements_per_page')); $page = $this->safeGet($params, 'page', 1); $data = fn_get_taxes($lang_code); $data = array_values($data); if ($items_per_page) { $data = array_slice($data, ($page - 1) * $items_per_page, $items_per_page); } $data = array('taxes' => $data, 'params' => array('items_per_page' => $items_per_page, 'page' => $page, 'total_items' => count($data))); $status = Response::STATUS_OK; } return array('status' => $status, 'data' => $data); }
$tabs = array('general' => array('title' => __('general'), 'js' => true), 'configure' => array('title' => __('configure'), 'ajax' => true), 'shipping_charges' => array('title' => __('shipping_charges'), 'js' => true)); $services = fn_get_shipping_services(); if (!empty($shipping['rate_calculation']) && $shipping['rate_calculation'] == 'R' && !empty($services[$shipping['service_id']]['module'])) { $tabs['configure']['href'] = 'shippings.configure?shipping_id=' . $shipping['shipping_id'] . '&module=' . $services[$shipping['service_id']]['module'] . '&code=' . urlencode($services[$shipping['service_id']]['code']); $tabs['configure']['hidden'] = 'N'; } else { $tabs['configure']['hidden'] = 'Y'; } if (Registry::get('runtime.company_id') && Registry::get('runtime.company_id') != $shipping['company_id']) { unset($tabs['configure']); Tygh::$app['view']->assign('hide_for_vendor', true); } Registry::set('navigation.tabs', $tabs); Tygh::$app['view']->assign('services', $services); Tygh::$app['view']->assign('carriers', fn_get_carriers_from_services($services)); Tygh::$app['view']->assign('taxes', fn_get_taxes()); Tygh::$app['view']->assign('usergroups', fn_get_usergroups(array('type' => 'C', 'status' => array('A', 'H')), DESCR_SL)); // Show all shipping methods } elseif ($mode == 'manage') { $company_id = Registry::ifGet('runtime.company_id', null); Tygh::$app['view']->assign('shippings', fn_get_available_shippings($company_id)); Tygh::$app['view']->assign('usergroups', fn_get_usergroups(array('type' => 'C', 'status' => array('A', 'H')), DESCR_SL)); } function fn_delete_rate_values($delete_rate_data, $shipping_id, $destination_id) { $rate_values = db_get_field("SELECT rate_value FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = ?i", $shipping_id, $destination_id); if (!empty($rate_values)) { $rate_values = unserialize($rate_values); } foreach ((array) $rate_values as $rate_type => $rd) { foreach ((array) $rd as $amount => $data) {
} Tygh::$app['view']->assign('list_price_1c', trim($list_price_1c, ',')); Tygh::$app['view']->assign('base_price_1c', trim($base_price_1c, ',')); Tygh::$app['view']->assign('prices_data', $prices); if ($s_commerceml['exim_1c_check_prices'] == 'Y') { list($path_commerceml, $url_commerceml, $url_images) = RusEximCommerceml::getDirCommerceML(); $result = array(); $file_offers = glob($path_commerceml . "offers*"); if (!empty($file_offers)) { $filename = fn_basename(reset($file_offers)); $xml = RusEximCommerceml::getFileCommerceml($filename); if (isset($xml->{$cml}['packages']->{$cml}['offers']->{$cml}['offer'])) { $result = RusEximCommerceml::checkPricesOffers($xml->{$cml}['packages']); } } else { fn_set_notification('W', __('warning'), __('offers_not_found')); } Tygh::$app['view']->assign('resul_test', $result); } } if ($s_commerceml['exim_1c_add_tax'] == 'Y') { $taxes = fn_get_taxes(); $taxes_data = db_get_array("SELECT * FROM ?:rus_exim_1c_taxes"); Tygh::$app['view']->assign('taxes_data', $taxes_data); Tygh::$app['view']->assign('taxes', $taxes); } $data_currencies = Registry::get('currencies'); $commerceml_currencies = db_get_array("SELECT * FROM ?:rus_commerceml_currencies"); Tygh::$app['view']->assign('commerceml_currencies', $commerceml_currencies); Tygh::$app['view']->assign('data_currencies', $data_currencies); }
$tabs = array('general' => array('title' => __('general'), 'js' => true), 'configure' => array('title' => __('configure'), 'ajax' => true), 'shipping_charges' => array('title' => __('shipping_charges'), 'js' => true)); $services = fn_get_shipping_services(); if (!empty($shipping['rate_calculation']) && $shipping['rate_calculation'] == 'R' && !empty($services[$shipping['service_id']]['module'])) { $tabs['configure']['href'] = 'shippings.configure?shipping_id=' . $shipping['shipping_id'] . '&module=' . $services[$shipping['service_id']]['module'] . '&code=' . urlencode($services[$shipping['service_id']]['code']); $tabs['configure']['hidden'] = 'N'; } else { $tabs['configure']['hidden'] = 'Y'; } if (Registry::get('runtime.company_id') && Registry::get('runtime.company_id') != $shipping['company_id']) { unset($tabs['configure']); Registry::get('view')->assign('hide_for_vendor', true); } Registry::set('navigation.tabs', $tabs); Registry::get('view')->assign('services', $services); Registry::get('view')->assign('carriers', fn_get_carriers_from_services($services)); Registry::get('view')->assign('taxes', fn_get_taxes()); Registry::get('view')->assign('usergroups', fn_get_usergroups(array('type' => 'C', 'status' => array('A', 'H')), DESCR_SL)); // Show all shipping methods } elseif ($mode == 'manage') { $company_id = Registry::ifGet('runtime.company_id', null); Registry::get('view')->assign('shippings', fn_get_available_shippings($company_id)); Registry::get('view')->assign('usergroups', fn_get_usergroups(array('type' => 'C', 'status' => array('A', 'H')), DESCR_SL)); } function fn_delete_rate_values($delete_rate_data, $shipping_id, $destination_id) { $rate_values = db_get_field("SELECT rate_value FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = ?i", $shipping_id, $destination_id); if (!empty($rate_values)) { $rate_values = unserialize($rate_values); } foreach ((array) $rate_values as $rate_type => $rd) { foreach ((array) $rd as $amount => $data) {
} $suffix = '.manage'; } if ($mode == 'delete') { if (!empty($_REQUEST['tax_id'])) { fn_delete_taxes($_REQUEST['tax_id']); } $suffix = '.manage'; } return array(CONTROLLER_STATUS_OK, 'taxes' . $suffix); } // ---------------------- GET routines --------------------------------------- // Edit tax rates if ($mode == 'update') { $tax = fn_get_tax($_REQUEST['tax_id'], DESCR_SL); if (empty($tax)) { return array(CONTROLLER_STATUS_NO_PAGE); } $destinations = fn_get_destinations(); Registry::set('navigation.tabs', array('general' => array('title' => __('general'), 'js' => true), 'tax_rates' => array('title' => __('tax_rates'), 'js' => true))); Tygh::$app['view']->assign('tax', $tax); Tygh::$app['view']->assign('rates', db_get_hash_array("SELECT * FROM ?:tax_rates WHERE tax_id = ?i", 'destination_id', $_REQUEST['tax_id'])); Tygh::$app['view']->assign('destinations', $destinations); // Add tax } elseif ($mode == 'add') { Registry::set('navigation.tabs', array('general' => array('title' => __('general'), 'js' => true), 'tax_rates' => array('title' => __('tax_rates'), 'js' => true))); Tygh::$app['view']->assign('destinations', fn_get_destinations()); // Edit taxes } elseif ($mode == 'manage') { Tygh::$app['view']->assign('taxes', fn_get_taxes(DESCR_SL)); }
} } $suffix = '.manage'; } return array(CONTROLLER_STATUS_OK, "taxes{$suffix}"); } // ---------------------- GET routines --------------------------------------- // Edit tax rates if ($mode == 'update') { $tax = fn_get_tax($_REQUEST['tax_id'], DESCR_SL); if (empty($tax)) { return array(CONTROLLER_STATUS_NO_PAGE); } $destinations = fn_get_destinations(); Registry::set('navigation.tabs', array('general' => array('title' => __('general'), 'js' => true), 'tax_rates' => array('title' => __('tax_rates'), 'js' => true))); Registry::get('view')->assign('tax', $tax); Registry::get('view')->assign('rates', db_get_hash_array("SELECT * FROM ?:tax_rates WHERE tax_id = ?i", 'destination_id', $_REQUEST['tax_id'])); Registry::get('view')->assign('destinations', $destinations); // Add tax } elseif ($mode == 'add') { Registry::set('navigation.tabs', array('general' => array('title' => __('general'), 'js' => true), 'tax_rates' => array('title' => __('tax_rates'), 'js' => true))); Registry::get('view')->assign('destinations', fn_get_destinations()); // Edit taxes } elseif ($mode == 'manage') { Registry::get('view')->assign('taxes', fn_get_taxes(DESCR_SL)); } elseif ($mode == 'delete') { if (!empty($_REQUEST['tax_id'])) { fn_delete_taxes($_REQUEST['tax_id']); } return array(CONTROLLER_STATUS_REDIRECT, "taxes.manage"); }
} if (empty($rate_data['rate_value']['C'][0])) { $rate_data['rate_value']['C'][0] = array(); } if (empty($rate_data['rate_value']['W'][0])) { $rate_data['rate_value']['W'][0] = array(); } if (empty($rate_data['rate_value']['I'][0])) { $rate_data['rate_value']['I'][0] = array(); } $view->assign('rate_data', $rate_data); unset($rate_data); fn_add_breadcrumb(fn_get_lang_var('shipping_methods'), "shippings.manage"); $view->assign('destinations', $destinations); $view->assign('destination_id', $destination_id); $view->assign('taxes', fn_get_taxes()); $view->assign('usergroups', fn_get_usergroups('C', DESCR_SL)); $view->assign('companies', fn_get_short_companies()); // Show all shipping methods } elseif ($mode == 'manage') { $view->assign('shippings', fn_get_all_shippings()); $view->assign('usergroups', fn_get_usergroups('C', DESCR_SL)); // Delete shipping method } elseif ($mode == 'delete_shipping') { if (!empty($_REQUEST['shipping_id']) && fn_check_company_id('shippings', 'shipping_id', $_REQUEST['shipping_id'])) { fn_delete_shipping($_REQUEST['shipping_id']); } return array(CONTROLLER_STATUS_REDIRECT, "shippings.manage"); // Delete selected rate } elseif ($mode == 'delete_rate_value') { fn_delete_rate_values($_REQUEST['rate_id'], array($_REQUEST['rate_type'] => array($_REQUEST['amount'] => 'Y')), $_REQUEST['shipping_id'], $_REQUEST['destination_id']);
for ($i = 0; $i < $total; $i++) { $address_id = $addresses[$i]->getAttribute('id'); $cart['user_data'] = array('s_address' => '', 's_city' => $addresses[$i]->getValueByPath('/city'), 's_state' => $addresses[$i]->getValueByPath('/region'), 's_country' => $addresses[$i]->getValueByPath('/country-code'), 's_zipcode' => $addresses[$i]->getValueByPath('/postal-code'), 'b_address' => '', 'b_city' => $addresses[$i]->getValueByPath('/city'), 'b_state' => $addresses[$i]->getValueByPath('/region'), 'b_country' => $addresses[$i]->getValueByPath('/country-code'), 'b_zipcode' => $addresses[$i]->getValueByPath('/postal-code'), 'phone' => '', 'country' => '', 'firstname' => '', 'lastname' => ''); $country_fields = array('s_country' => 's_state', 'b_country' => 'b_state'); foreach ($country_fields as $_c => $_s) { // For UK google returns region description, instead of the code, so we need to get the state code manually if ($_c == 'UK') { $cart['user_data'][$_s] = db_get_field("SELECT a.code FROM ?:states as a LEFT JOIN ?:state_descriptions as b ON b.state_id = a.state_id AND lang_code = ?s WHERE a.country_code = ?s AND b.state = ?s", CART_LANGUAGE, $cart['user_data'][$_c], $cart['user_data'][$_s]); } } // Apply the codes entered on the Google side to the cart $_codes = fn_apply_google_codes($cart, $codes); // Find the shipping rates for each customer location list($cart_products, $shipping_rates) = fn_calculate_cart_content($cart, $_SESSION['auth'], 'A', true, 'I', true); $use_taxes = false; $_taxes_list = fn_get_taxes(); foreach ($_taxes_list as $v) { if ($v['price_includes_tax'] != 'Y') { $use_taxes = true; break; } } // Go throught all shipping methods, passes to google checkout and get rates (if calculated) for ($k = 0; $k < $gc_methods_total; $k++) { $_id = $gc_methods[$k]->getAttribute('id'); $response[] = ' <result shipping-name="' . trim($gc_methods[$k]->getAttribute('name')) . '" address-id="' . $address_id . '">'; if ($this_shipping = fn_get_google_shipping_rate($_id, $shipping_rates)) { fn_recalculate_taxes($cart, $shipping_rates, $this_shipping); $response[] = ' <shipping-rate currency="' . $currency_code . '">' . $this_shipping['rate'] . '</shipping-rate>'; $response[] = ' <shippable>true</shippable>'; } elseif ($_id == 'FREESHIPPING' && $cart['shipping_required'] != true) {
return array(CONTROLLER_STATUS_NO_PAGE); } $destinations = fn_get_destinations(); Registry::set('navigation.tabs', array('general' => array('title' => fn_get_lang_var('general'), 'js' => true), 'tax_rates' => array('title' => fn_get_lang_var('tax_rates'), 'js' => true))); fn_add_breadcrumb(fn_get_lang_var('taxes'), "taxes.manage"); $view->assign('tax', $tax); $view->assign('rates', db_get_hash_array("SELECT * FROM ?:tax_rates WHERE tax_id = ?i", 'destination_id', $_REQUEST['tax_id'])); $view->assign('destinations', $destinations); // Add tax } elseif ($mode == 'add') { fn_add_breadcrumb(fn_get_lang_var('taxes'), "taxes.manage"); Registry::set('navigation.tabs', array('general' => array('title' => fn_get_lang_var('general'), 'js' => true), 'tax_rates' => array('title' => fn_get_lang_var('tax_rates'), 'js' => true))); $view->assign('destinations', fn_get_destinations()); // Edit taxes } elseif ($mode == 'manage') { $view->assign('taxes', fn_get_taxes(DESCR_SL)); } elseif ($mode == 'delete') { if (!empty($_REQUEST['tax_id'])) { fn_delete_taxes($_REQUEST['tax_id']); } return array(CONTROLLER_STATUS_REDIRECT, "taxes.manage"); } function fn_delete_taxes($tax_ids) { foreach ((array) $tax_ids as $v) { db_query("DELETE FROM ?:taxes WHERE tax_id = ?i", $v); db_query("DELETE FROM ?:tax_descriptions WHERE tax_id = ?i", $v); db_query("DELETE FROM ?:tax_rates WHERE tax_id = ?i", $v); db_query("UPDATE ?:products SET tax_ids = ?p", fn_remove_from_set('tax_ids', $v)); db_query("UPDATE ?:shippings SET tax_ids = ?p", fn_remove_from_set('tax_ids', $v)); }