} } exit; } return array(CONTROLLER_STATUS_OK, 'suppliers' . $suffix); } if ($mode == 'manage') { list($suppliers, $search) = fn_get_suppliers($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page')); $view = Tygh::$app['view']; $view->assign('search', $search); $view->assign('suppliers', $suppliers); $view->assign('countries', fn_get_simple_countries(true, CART_LANGUAGE)); $view->assign('states', fn_get_all_states()); } elseif ($mode == 'update' || $mode == 'add') { Registry::set('navigation.tabs', array('general' => array('title' => __('general'), 'js' => true), 'products' => array('title' => __('products'), 'js' => true), 'shippings' => array('title' => __('shippings'), 'js' => true))); $supplier = !empty($_REQUEST['supplier_id']) ? fn_get_supplier_data($_REQUEST['supplier_id']) : array(); $condition = " AND ?:shippings.status = 'A'"; if (Registry::get('runtime.company_id') && !fn_allowed_for('ULTIMATE')) { $condition = fn_get_company_condition('?:shippings.company_id'); $company_data = Registry::get('runtime.company_data'); if (!empty($company_data['shippings'])) { $condition .= db_quote(" OR ?:shippings.shipping_id IN (?n)", explode(',', $company_data['shippings'])); } } $shippings = db_get_hash_array("SELECT ?:shippings.shipping_id, ?:shipping_descriptions.shipping FROM ?:shippings LEFT JOIN ?:shipping_descriptions ON ?:shippings.shipping_id = ?:shipping_descriptions.shipping_id AND ?:shipping_descriptions.lang_code = ?s LEFT JOIN ?:companies ON ?:companies.company_id = ?:shippings.company_id WHERE 1 {$condition} ORDER BY ?:shippings.position", 'shipping_id', CART_LANGUAGE); $view = Tygh::$app['view']; $view->assign('shippings', $shippings); $view->assign('countries', fn_get_simple_countries(true, CART_LANGUAGE)); $view->assign('states', fn_get_all_states()); $view->assign('supplier', $supplier); }
<?php /*************************************************************************** * * * (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev * * * * This is commercial software, only users who have purchased a valid * * license and accept to the terms of the License Agreement can install * * and use this program. * * * **************************************************************************** * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE * * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. * ****************************************************************************/ use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $suffix = '.view'; return array(CONTROLLER_STATUS_OK, 'suppliers' . $suffix); } if ($mode == 'view') { $supplier = fn_get_supplier_data($_REQUEST['supplier_id']); Registry::get('view')->assign('supplier', $supplier); }
/** * Hook for modify shippings groups * * @param array $cart Cart array * @param array $allow * @param array $product_groups Products groups from cart */ function fn_suppliers_order_notification(&$order_info, &$order_statuses, &$force_notification) { $status_params = $order_statuses[$order_info['status']]['params']; $notify_supplier = isset($force_notification['S']) ? $force_notification['S'] : (!empty($status_params['notify_supplier']) && $status_params['notify_supplier'] == 'Y' ? true : false); if ($notify_supplier == true) { $suppliers = array(); if (!empty($order_info['product_groups'])) { foreach ($order_info['product_groups'] as $key_group => $group) { foreach ($group['products'] as $cart_id => $product) { $supplier_id = fn_get_product_supplier_id($product['product_id']); if (!empty($supplier_id) && empty($suppliers[$supplier_id])) { $rate = 0; foreach ($group['chosen_shippings'] as $shipping) { $rate += $shipping['rate']; } $suppliers[$supplier_id] = array('name' => fn_get_supplier_name($supplier_id), 'company_id' => $group['company_id'], 'cost' => $rate, 'shippings' => $group['chosen_shippings']); } if (!empty($supplier_id)) { $suppliers[$supplier_id]['products'][$cart_id] = $product; } } } } foreach ($suppliers as $supplier_id => $supplier) { $lang = fn_get_company_language($supplier['company_id']); $order = $order_info; $order['products'] = $supplier['products']; $supplier['data'] = fn_get_supplier_data($supplier_id); if (!empty($supplier['shippings'])) { if (!empty($supplier['data']['shippings'])) { $shippings = array(); foreach ($supplier['shippings'] as $shipping) { if (!isset($shippings[$shipping['group_name']])) { $shippings[$shipping['group_name']] = $shipping; } } foreach ($shippings as $key => $shipping) { if ($key != $supplier['name']) { unset($shippings[$key]); if ($supplier['cost'] > $shipping['rate']) { $supplier['cost'] -= $shipping['rate']; } else { $supplier['cost'] = 0; } } } $supplier['shippings'] = array_values($shippings); } else { $supplier['shippings'] = array(); } } Mailer::sendMail(array('to' => $supplier['data']['email'], 'from' => 'company_orders_department', 'reply_to' => 'company_orders_department', 'data' => array('order_info' => $order, 'status_inventory' => $status_params['inventory'], 'supplier_id' => $supplier_id, 'supplier' => $supplier, 'order_status' => fn_get_status_data($order_info['status'], STATUSES_ORDER, $order_info['order_id'], $lang), 'profile_fields' => fn_get_profile_fields('I', '', $lang)), 'tpl' => 'addons/suppliers/notification.tpl'), 'A', $lang); } } }