public function index($id = 0, $params = array()) { $lang_code = $this->safeGet($params, 'lang_code', DEFAULT_LANGUAGE); if (!empty($id)) { $data = fn_get_shipping_info($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_products_per_page')); $page = $this->safeGet($params, 'page', 1); $data = fn_get_shippings(false, $lang_code); if ($items_per_page) { $data = array_slice($data, ($page - 1) * $items_per_page, $items_per_page); } $data = array('shippings' => $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); }
function fn_spsr_pre_check_invoice_create($order_id, $section, $spsr_shipments = array()) { $shipping = array(); if (empty($order_id)) { return array(CONTROLLER_STATUS_REDIRECT, "orders.manage"); } $order_info = fn_get_order_info($order_id, false, true, true, true); if (!empty($order_info)) { list($_shipments) = fn_get_shipments_info(array('order_id' => $order_id, 'advanced_info' => true)); if (!empty($_shipments)) { $shipments = array(); foreach ($_shipments as $shipment) { if ($shipment['carrier'] == 'spsr') { if (empty($spsr_shipments) || !empty($spsr_shipments[$shipment['shipment_id']])) { $shipments[$shipment['shipment_id']] = $shipment; } } } } if (!empty($shipments)) { foreach ($shipments as $shipment_id => $shipment) { $shipping = fn_get_shipping_info($shipment['shipping_id'], DESCR_SL); $shipping['rate'] = $order_info['shipping_cost']; $invoices[$shipment_id] = RusSpsr::preInvoiceByShipments($shipment, $order_info, $shipping); $shipping_data[$shipment_id] = $shipping; } } else { return array(CONTROLLER_STATUS_REDIRECT, "orders.details?order_id={$order_id}&selected_section={$section}"); } } return array($order_info, $invoices, $shipments, $shipping_data); }
} $fio = $lastname . ' ' . $firstname; $phone = ""; if (!empty($order_info['phone'])) { $phone = $order_info['phone']; } elseif (!empty($order_info['s_phone'])) { $phone = $order_info['s_phone']; } elseif (!empty($order_info['b_phone'])) { $phone = $order_info['b_phone']; } if (!empty($rec_city_code)) { $offices = RusSdek::pvzOffices(array('cityid' => $rec_city_code)); } foreach ($sdek_shipments as $key => $shipment) { $data_sdek = db_get_row("SELECT register_id, order_id, timestamp, status, tariff as tariff_id, address_pvz, address, file_sdek, notes FROM ?:rus_sdek_register WHERE order_id = ?i and shipment_id = ?i", $shipment['order_id'], $shipment['shipment_id']); $data_shipping = fn_get_shipping_info($shipment['shipping_id'], DESCR_SL); if (!empty($data_shipping['service_params'])) { if (!empty($data_sdek)) { $data_shipments[$shipment['shipment_id']] = $data_sdek; $data_status = db_get_array("SELECT * FROM ?:rus_sdek_status WHERE order_id = ?i AND shipment_id = ?i ", $params['order_id'], $shipment['shipment_id']); if (!empty($data_status)) { foreach ($data_status as $k => $status) { $status['city'] = db_get_field("SELECT city FROM ?:rus_city_sdek_descriptions as a LEFT JOIN ?:rus_cities_sdek as b ON a.city_id=b.city_id WHERE b.city_code = ?s", $status['city_code']); $status['date'] = date("d-m-Y H:i:s", $status['timestamp']); $data_shipments[$shipment['shipment_id']]['sdek_status'][$status['id']] = array('id' => $status['id'], 'date' => $status['date'], 'status' => $status['status'], 'city' => $status['city']); } } } else { $cost = fn_sdek_calculate_cost_by_shipment($order_info, $data_shipping, $shipment, $rec_city_code); $data_shipments[$shipment['shipment_id']] = array('order_id' => $shipment['order_id'], 'comments' => $shipment['comments'], 'delivery_cost' => $cost, 'tariff_id' => $data_shipping['service_params']['tariffid'], 'address_pvz' => $sdek_pvz); $data_shipments[$shipment['shipment_id']]['address'] = !empty($order_info['s_address']) ? $order_info['s_address'] : $order_info['b_address'];
Tygh::$app['view']->assign('service_template', $service_template); $code = !empty($_REQUEST['code']) ? $_REQUEST['code'] : ''; Tygh::$app['view']->assign('code', $code); } // Add new shipping method } elseif ($mode == 'add') { $rate_data = array('rate_value' => array('C' => array(), 'W' => array(), 'I' => array())); $services = fn_get_shipping_services(); Tygh::$app['view']->assign('services', $services); Tygh::$app['view']->assign('carriers', fn_get_carriers_from_services($services)); Tygh::$app['view']->assign('rate_data', $rate_data); 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)); // Collect shipping methods data } elseif ($mode == 'update') { $shipping = fn_get_shipping_info($_REQUEST['shipping_id'], DESCR_SL); if (empty($shipping)) { return array(CONTROLLER_STATUS_NO_PAGE); } if (Registry::get('runtime.company_id') && !fn_allowed_for('ULTIMATE')) { $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; }
public static function dataAuth($params_shipping) { $data_auth = array(); $data_shipping = fn_get_shipping_info($params_shipping['shipping_id'], DESCR_SL); $account = $data_shipping['service_params']['authlogin']; $secure_password = $data_shipping['service_params']['authpassword']; if (!empty($secure_password) && !empty($account)) { $secure = md5($params_shipping['Date'] . '&' . $secure_password); $data_auth['Date'] = $params_shipping['Date']; $data_auth['Account'] = $account; $data_auth['Secure'] = $secure; } else { fn_set_notification('E', __('notice'), __('shippings.sdek.account_password_error')); } return $data_auth; }
} // Repay functionality $statuses = fn_get_statuses(STATUSES_ORDER, array(), true); if (Registry::get('settings.Checkout.repay') == 'Y' && (!empty($statuses[$order_info['status']]['params']['repay']) && $statuses[$order_info['status']]['params']['repay'] == 'Y')) { fn_prepare_repay_data(empty($_REQUEST['payment_id']) ? 0 : $_REQUEST['payment_id'], $order_info, $auth); } $navigation_tabs = array('general' => array('title' => __('general'), 'js' => true, 'href' => 'orders.details?order_id=' . $_REQUEST['order_id'] . '&selected_section=general')); list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true)); $use_shipments = !fn_one_full_shipped($shipments); $carriers_schema = fn_get_schema('shippings', 'carriers'); foreach ($shipments as $shipment_key => $shipment) { $carrier = null; if (!empty($shipment['carrier'])) { $carrier = $shipment['carrier']; } else { $shipping_by_id = fn_get_shipping_info($shipment['shipping_id']); $service = fn_get_shipping_service_data($shipping_by_id['service_id']); if (!empty($service['module'])) { $carrier = $service['module']; $shipments[$shipment_key]['carrier'] = $carrier; } } if ($carrier && !empty($shipment['tracking_number']) && isset($carriers_schema[$carrier])) { $shipments[$shipment_key]['tracking_url'] = str_replace('[tracking_number]', $shipment['tracking_number'], $carriers_schema[$carrier]['tracking_url_template']); } } if (!fn_allowed_for('ULTIMATE:FREE')) { if (Registry::get('settings.General.use_shipments') == 'Y' || $use_shipments) { $navigation_tabs['shipment_info'] = array('title' => __('shipment_info'), 'js' => true, 'href' => 'orders.details?order_id=' . $_REQUEST['order_id'] . '&selected_section=shipment_info'); $use_shipments = true; }