示例#1
0
 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);
 }
示例#2
0
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);
}
示例#3
0
 }
 $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'];
示例#4
0
        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;
            }
示例#5
0
 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;
 }
示例#6
0
 }
 // 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;
     }