Registry::set('navigation.tabs.general', array('title' => __('general'), 'js' => true)); foreach ($depend_items as $value) { Registry::set('navigation.tabs.' . $value['code'], array('title' => __('reports_parameter_' . $value['element_id']), 'js' => true)); } Registry::get('view')->assign('search_condition', true); Registry::get('view')->assign('intervals', db_get_array("SELECT * FROM ?:sales_reports_intervals ORDER BY interval_id")); // Payments Registry::get('view')->assign('payment_processors', db_get_array("SELECT processor_id, processor FROM ?:payment_processors")); Registry::get('view')->assign('payments', db_get_array("SELECT ?:payments.*, ?:payment_descriptions.* FROM ?:payments LEFT JOIN ?:payment_descriptions ON ?:payment_descriptions.payment_id = ?:payments.payment_id AND ?:payment_descriptions.lang_code = ?s ORDER BY ?:payments.position", DESCR_SL)); // Users Location Registry::get('view')->assign('usergroups', fn_get_usergroups('C', CART_LANGUAGE)); Registry::get('view')->assign('countries', fn_get_simple_countries(true, CART_LANGUAGE)); Registry::get('view')->assign('states', fn_get_all_states()); Registry::get('view')->assign('destinations', fn_get_destinations(CART_LANGUAGE)); // Locations Registry::get('view')->assign('destinations', fn_get_destinations(CART_LANGUAGE)); if (!empty($_REQUEST['table_id'])) { $table_data = fn_get_report_data($_REQUEST['report_id'], $_REQUEST['table_id']); $conditions = fn_get_table_condition($_REQUEST['table_id']); if (empty($conditions)) { $conditions = array(); } Registry::get('view')->assign('conditions', $conditions); Registry::get('view')->assign('table', $table_data); } // Delete report table } elseif ($mode == 'delete_table') { if (!empty($_REQUEST['table_id'])) { fn_delete_report_data('table', $_REQUEST['table_id']); } return array(CONTROLLER_STATUS_REDIRECT, "sales_reports.update?report_id={$_REQUEST['report_id']}&selected_section=tables");
Registry::set('navigation.tabs.general', array('title' => __('general'), 'js' => true)); foreach ($depend_items as $value) { Registry::set('navigation.tabs.' . $value['code'], array('title' => __('reports_parameter_' . $value['element_id']), 'js' => true)); } Tygh::$app['view']->assign('search_condition', true); Tygh::$app['view']->assign('intervals', db_get_array("SELECT * FROM ?:sales_reports_intervals ORDER BY interval_id")); // Payments Tygh::$app['view']->assign('payment_processors', db_get_array("SELECT processor_id, processor FROM ?:payment_processors")); Tygh::$app['view']->assign('payments', db_get_array("SELECT ?:payments.*, ?:payment_descriptions.* FROM ?:payments LEFT JOIN ?:payment_descriptions ON ?:payment_descriptions.payment_id = ?:payments.payment_id AND ?:payment_descriptions.lang_code = ?s ORDER BY ?:payments.position", DESCR_SL)); // Users Location Tygh::$app['view']->assign('usergroups', fn_get_usergroups(array('type' => 'C', 'status' => array('A', 'H')), CART_LANGUAGE)); Tygh::$app['view']->assign('countries', fn_get_simple_countries(true, CART_LANGUAGE)); Tygh::$app['view']->assign('states', fn_get_all_states()); Tygh::$app['view']->assign('destinations', fn_get_destinations(CART_LANGUAGE)); // Locations Tygh::$app['view']->assign('destinations', fn_get_destinations(CART_LANGUAGE)); if (!empty($_REQUEST['table_id'])) { $table_data = fn_get_report_data($_REQUEST['report_id'], $_REQUEST['table_id']); $conditions = fn_get_table_condition($_REQUEST['table_id']); if (empty($conditions)) { $conditions = array(); } Tygh::$app['view']->assign('conditions', $conditions); Tygh::$app['view']->assign('table', $table_data); } // View report } elseif ($mode == 'view') { $report_id = empty($_REQUEST['report_id']) ? db_get_field("SELECT report_id FROM ?:sales_reports WHERE status = 'A' ORDER BY position ASC LIMIT 1") : $_REQUEST['report_id']; $table_id = empty($_REQUEST['table_id']) ? db_get_field("SELECT table_id FROM ?:sales_reports_tables WHERE report_id = ?i ORDER BY position ASC LIMIT 1", $report_id) : intval($_REQUEST['table_id']); $reports = fn_get_order_reports(true, $report_id); // If some reports defined calculate data for them
$destination_data['zipcodes'] = implode("\n", $destination_data['zipcodes']); $destination_data['cities'] = db_get_hash_single_array("SELECT element_id, element FROM ?:destination_elements WHERE element_type = 'T' AND destination_id = ?i", array('element_id', 'element'), $_REQUEST['destination_id']); $destination_data['cities'] = implode("\n", $destination_data['cities']); $destination_data['addresses'] = db_get_hash_single_array("SELECT element_id, element FROM ?:destination_elements WHERE element_type = 'A' AND destination_id = ?i", array('element_id', 'element'), $_REQUEST['destination_id']); $destination_data['addresses'] = implode("\n", $destination_data['addresses']); Registry::get('view')->assign('destination_data', $destination_data); Registry::get('view')->assign('destination', $destination); Registry::get('view')->assign('states', fn_destination_get_states(CART_LANGUAGE)); Registry::get('view')->assign('countries', fn_get_simple_countries(true, CART_LANGUAGE)); // Add destination } elseif ($mode == 'add') { Registry::get('view')->assign('states', fn_destination_get_states(CART_LANGUAGE)); Registry::get('view')->assign('countries', fn_get_simple_countries(true, CART_LANGUAGE)); // Destinations list } elseif ($mode == 'manage') { $destinations = fn_get_destinations(DESCR_SL); Registry::get('view')->assign('destinations', $destinations); } elseif ($mode == 'delete') { if (!empty($_REQUEST['destination_id'])) { fn_delete_destinations((array) $_REQUEST['destination_id']); } return array(CONTROLLER_STATUS_REDIRECT, "destinations.manage"); } function fn_delete_destinations($destination_ids) { foreach ($destination_ids as $dest_id) { if (!empty($dest_id) && $dest_id != 1) { db_query("DELETE FROM ?:destinations WHERE destination_id = ?i", $dest_id); db_query("DELETE FROM ?:destination_descriptions WHERE destination_id = ?i", $dest_id); db_query("DELETE FROM ?:destination_elements WHERE destination_id = ?i", $dest_id); db_query("DELETE FROM ?:shipping_rates WHERE destination_id = ?i", $dest_id);
} $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)); }
/** * Get shipping info * * @param int $shipping_id Shipping ID * @param string $lang_code Language code * @return array Shipping info */ function fn_get_shipping_info($shipping_id, $lang_code = CART_LANGUAGE) { $fields = array('?:shippings.*', '?:shipping_descriptions.shipping', '?:shipping_descriptions.delivery_time'); $join = db_quote(" LEFT JOIN ?:shipping_descriptions ON ?:shipping_descriptions.shipping_id = ?:shippings.shipping_id AND ?:shipping_descriptions.lang_code = ?s", $lang_code); $conditions = ""; fn_set_hook('get_shipping_info', $shipping_id, $fields, $join, $conditions); $shipping = array(); if (!empty($shipping_id)) { $shipping = db_get_row("SELECT ?p FROM ?:shippings ?p WHERE ?:shippings.shipping_id = ?i ?p", implode(', ', $fields), $join, $shipping_id, $conditions); } if (!empty($shipping)) { $shipping['tax_ids'] = empty($shipping['tax_ids']) ? array() : fn_explode(',', $shipping['tax_ids']); $shipping['icon'] = fn_get_image_pairs($shipping['shipping_id'], 'shipping', 'M', true, true, $lang_code); if (!empty($shipping['service_params'])) { $shipping['service_params'] = unserialize($shipping['service_params']); } $destinations = array(); if ($shipping['rate_calculation'] == 'M') { $destinations = fn_get_destinations(); foreach ($destinations as $k => $v) { 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)) { continue; } } $destinations[$k] = array_merge($destinations[$k], fn_get_shipping_rate($shipping_id, $v['destination_id'])); } } else { $destinations[0] = db_get_row("SELECT rate_id, rate_value, destination_id FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = 0", $shipping_id); $destinations[0] = array_merge($destinations[0], fn_get_shipping_rate($shipping_id, 0)); } $shipping['rates'] = $destinations; } return $shipping; }
} } $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"); }
$view->assign('taxes', fn_get_taxes()); $view->assign('usergroups', fn_get_usergroups('C', DESCR_SL)); $view->assign('companies', fn_get_short_companies()); // Collect shipping methods data } elseif ($mode == 'update') { $shipping = db_get_row("SELECT ?:shippings.*, ?:shipping_descriptions.shipping, ?:shipping_descriptions.delivery_time FROM ?:shippings LEFT JOIN ?:shipping_descriptions ON ?:shipping_descriptions.shipping_id = ?:shippings.shipping_id AND ?:shipping_descriptions.lang_code = ?s WHERE ?:shippings.shipping_id = ?i", DESCR_SL, $_REQUEST['shipping_id']); if (empty($shipping)) { return array(CONTROLLER_STATUS_NO_PAGE); } $shipping['tax_ids'] = empty($shipping['tax_ids']) ? array() : fn_explode(',', $shipping['tax_ids']); $shipping['icon'] = fn_get_image_pairs($shipping['shipping_id'], 'shipping', 'M', true, true, DESCR_SL); Registry::set('navigation.tabs', array('general' => array('title' => fn_get_lang_var('general'), 'js' => true), 'shipping_charges' => array('title' => fn_get_lang_var('shipping_charges'), 'js' => true))); $view->assign('shipping', $shipping); $destinations = array(); if ($shipping['rate_calculation'] == 'M') { $destinations = fn_get_destinations(); $destination_id = !isset($_REQUEST['destination_id']) ? $destinations[0]['destination_id'] : $_REQUEST['destination_id']; 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; }
/** * Get shipping info * * @param int $shipping_id Shipping ID * @param string $lang_code Language code * @return array Shipping info */ function fn_get_shipping_info($shipping_id, $lang_code = CART_LANGUAGE) { $fields = array('?:shippings.*', '?:shipping_descriptions.shipping', '?:shipping_descriptions.delivery_time'); $join = db_quote(" LEFT JOIN ?:shipping_descriptions ON ?:shipping_descriptions.shipping_id = ?:shippings.shipping_id AND ?:shipping_descriptions.lang_code = ?s", $lang_code); $conditions = ""; /** * Change SQL parameters for shipping info select * * @param int $shipping_id Shipping ID * @param string $fields List of fields for retrieving * @param string $join String with the complete JOIN information (JOIN type, tables and fields) for an SQL-query * @param string $conditions Condition for selecting product data * @param string $lang_code Lang code */ fn_set_hook('get_shipping_info', $shipping_id, $fields, $join, $conditions, $lang_code); $shipping = array(); if (!empty($shipping_id)) { $shipping = db_get_row("SELECT ?p FROM ?:shippings ?p WHERE ?:shippings.shipping_id = ?i ?p", implode(', ', $fields), $join, $shipping_id, $conditions); } if (!empty($shipping)) { $shipping['tax_ids'] = empty($shipping['tax_ids']) ? array() : fn_explode(',', $shipping['tax_ids']); $shipping['icon'] = fn_get_image_pairs($shipping['shipping_id'], 'shipping', 'M', true, true, $lang_code); if (!empty($shipping['service_params'])) { $shipping['service_params'] = unserialize($shipping['service_params']); } $destinations = array(); if ($shipping['rate_calculation'] == 'M') { $destinations = fn_get_destinations(); foreach ($destinations as $k => $v) { 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)) { continue; } } $destinations[$k] = array_merge($destinations[$k], fn_get_shipping_rate($shipping_id, $v['destination_id'])); } } else { $destinations[0] = db_get_row("SELECT rate_id, rate_value, destination_id FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = 0", $shipping_id); $destinations[0] = array_merge($destinations[0], fn_get_shipping_rate($shipping_id, 0)); } $shipping['rates'] = $destinations; } /** * Particularize shipping information * * @param int $shipping_id Shipping ID * @param string $lang_code Lang code * @param string $shipping Shipping data */ fn_set_hook('get_shipping_info_post', $shipping_id, $lang_code, $shipping); return $shipping; }
// [/Page sections] $view->assign('search_condition', true); $view->assign('intervals', db_get_array("SELECT a.* FROM ?:sales_reports_intervals as a ORDER BY a.interval_id")); } // **************** Conditions properites ******************* if ($action == 'edit' || $action == 'add' || $action == 'parameter_details') { // Payments $view->assign('payment_processors', db_get_array("SELECT processor_id, processor FROM ?:payment_processors")); $view->assign('payments', db_get_array("SELECT ?:payments.*, ?:payment_descriptions.* FROM ?:payments LEFT JOIN ?:payment_descriptions ON ?:payment_descriptions.payment_id = ?:payments.payment_id AND ?:payment_descriptions.lang_code = ?s ORDER BY ?:payments.position", DESCR_SL)); // Users Location $view->assign('usergroups', fn_get_usergroups('C', CART_LANGUAGE)); $view->assign('countries', fn_get_countries(CART_LANGUAGE, true)); $view->assign('states', fn_get_all_states()); $view->assign('destinations', fn_get_destinations(CART_LANGUAGE)); // Locations $view->assign('destinations', fn_get_destinations(CART_LANGUAGE)); } // ********************** Edit tables *********************** if ($action == 'edit') { $table_data = fn_get_report_data($_REQUEST['report_id'], $_REQUEST['table_id']); $conditions = fn_get_table_condition($_REQUEST['table_id']); if (empty($conditions)) { $conditions = array(); } $view->assign('conditions', $conditions); // [Page sections] Registry::set('navigation.tabs.general', array('title' => fn_get_lang_var('general'), 'js' => true)); foreach ($depend_items as $value) { Registry::set('navigation.tabs.' . $value['code'], array('title' => fn_get_lang_var('reports_parameter_' . $value['element_id']), 'js' => true)); } // [/Page sections]
if ($mode == 'update') { $tax = db_get_row("SELECT a.*, tax FROM ?:taxes as a LEFT JOIN ?:tax_descriptions as b ON b.tax_id = a.tax_id AND b.lang_code = ?s WHERE a.tax_id = ?i", DESCR_SL, $_REQUEST['tax_id']); if (empty($tax)) { 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);