foreach ($destinations as $k => $v) { $destinations[$k]['rates_defined'] = db_get_field("SELECT IF(rate_value = '', 0, 1) FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = ?i", $_REQUEST['shipping_id'], $v['destination_id']); if (!empty($shipping['localization'])) { // check available destinations, but skip default destination $_s = fn_explode(',', $shipping['localization']); $_l = fn_explode(',', $v['localization']); if (!array_intersect($_s, $_l)) { unset($destinations[$k]); } } } } else { $destination_id = 0; } $rate_data = db_get_row("SELECT rate_id, rate_value, destination_id FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = ?i", $_REQUEST['shipping_id'], $destination_id); $view->assign('services', fn_get_shipping_services()); if (!empty($rate_data)) { $rate_data['rate_value'] = unserialize($rate_data['rate_value']); } 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");
$company_data = Registry::get('runtime.company_data'); if (!in_array($_REQUEST['shipping_id'], explode(',', $company_data['shippings'])) && $shipping['company_id'] != Registry::get('runtime.company_id') || $shipping['company_id'] != Registry::get('runtime.company_id') && $shipping['company_id'] != 0) { return array(CONTROLLER_STATUS_DENIED); } } if ($shipping['rate_calculation'] == 'M') { $rates_defined = db_get_hash_array("SELECT destination_id, IF(rate_value = '', 0, 1) as defined FROM ?:shipping_rates WHERE shipping_id = ?i", 'destination_id', $_REQUEST['shipping_id']); foreach ($shipping['rates'] as $rate_key => $rate) { if (!empty($rates_defined[$rate['destination_id']]['defined'])) { $shipping['rates'][$rate_key]['rate_defined'] = true; } } } Tygh::$app['view']->assign('shipping', $shipping); $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));
Registry::get('view')->assign('shipping', $shipping); $tabs = array('general' => array('title' => __('general'), 'js' => true), 'configure' => array('title' => __('configure'), 'ajax' => true), 'shipping_charges' => array('title' => __('shipping_charges'), 'js' => true)); $service = fn_get_shipping_service_data($shipping['service_id']); $shipping_settings = Settings::instance()->getValues('Shippings'); if (!empty($shipping['rate_calculation']) && $shipping['rate_calculation'] == 'R' && !empty($service['module']) && $shipping_settings[$service['module'] . '_enabled'] == 'Y') { $tabs['configure']['href'] = 'shippings.configure?shipping_id=' . $shipping['shipping_id'] . '&module=' . $service['module'] . '&code=' . $service['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', fn_get_shipping_services()); Registry::get('view')->assign('taxes', fn_get_taxes()); Registry::get('view')->assign('usergroups', fn_get_usergroups('C', 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('C', DESCR_SL)); // Delete shipping method } elseif ($mode == 'delete') { 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') {