Пример #1
0
 $address = explode('|', $spsr_invoice['sbor_addr']);
 $sboraddr_id = $address[0];
 $sboraddr_owner_id = $address[1];
 $addr_list = RusSpsr::WAGetAddrList(8);
 foreach ($addr_list as $addr) {
     if ($addr['SborAddr_ID'] == $sboraddr_id && $addr['SborAddr_Owner_ID'] == $sboraddr_owner_id) {
         $sipper_data = $addr;
     }
 }
 if (empty($sipper_data)) {
     return array(CONTROLLER_STATUS_REDIRECT, "spsr_addr.manage");
 }
 $_sipper_data = RusSpsr::WAGetCities(array('city' => $sipper_data['CityName1']));
 $shipper_for_xml = array('PostCode' => $sipper_data['PostCode'], 'Region' => $_sipper_data['RegionName'], 'City' => $sipper_data['CityName1'], 'Address' => $sipper_data['Address'], 'CompanyName' => $sipper_data['Organization'], 'ContactName' => $sipper_data['FIO'], 'Phone' => $sipper_data['Phone']);
 $shipper_xml = RusSpsr::arraySimpleXml('Shipper', $shipper_for_xml);
 $city_data = RusSpsr::WAGetCities(array('city' => $order_info['s_city'], 'country' => $order_info['s_country']));
 $country_name = fn_get_country_name($order_info['s_country'], 'ru');
 foreach ($invoices as $invoice_key => $invoice) {
     if (isset($spsr_invoice['barcodes'][$invoice_key]) && !empty($spsr_invoice['barcodes'][$invoice_key])) {
         $total_weight += $invoice['weight'];
         $shipment_id = $invoice['shipment']['shipment_id'];
         $service_params = $invoice['service_params'];
         $additional_params = $service_params['service_params'];
         $settings_shipping_spsr = $params['settings_shipping_spsr'][$invoice_key];
         $receiver_for_xml = array('PostCode' => $order_info['s_zipcode'], 'Country' => $country_name, 'Region' => $city_data['RegionName'], 'City' => $city_data['CityName'], 'Address' => $order_info['s_address'], 'CompanyName' => $order_info['company'], 'ContactName' => $order_info['s_firstname'] . ' ' . $order_info['s_lastname'], 'Phone' => $order_info['s_phone'], 'Comment' => $invoice['shipment']['comments'], 'Email' => $order_info['email'], 'ConsigneeCollect' => $settings_shipping_spsr['to_be_called_for']);
         $receiver_xml = RusSpsr::arraySimpleXml('Receiver', $receiver_for_xml);
         $additional_services_for_xml = array('COD' => $settings_shipping_spsr['cod'], 'PartDelivery' => $additional_params['part_delivery'], 'CheckContents' => $additional_params['check_contents'], 'Verify' => $additional_params['verify'], 'ReturnDoc' => $settings_shipping_spsr['return_doc'], 'TryOn' => $settings_shipping_spsr['try_on'], 'ByHand' => $settings_shipping_spsr['by_hand'], 'PaidByReceiver' => $additional_params['paid_by_receiver'], 'AgreedDelivery' => $settings_shipping_spsr['agreed_delivery'], 'IDC' => $settings_shipping_spsr['idc']);
         $additional_services_xml = RusSpsr::arraySimpleXml('AdditionalServices', $additional_services_for_xml);
         if ($settings_shipping_spsr['sms_to_shipper'] == 1 && !empty($sipper_data['Phone'])) {
             $sms_for_xml['SMStoShipper'] = $settings_shipping_spsr['sms_to_shipper'];
             $sms_for_xml['SMSNumberShipper'] = trim($sipper_data['Phone']);
Пример #2
0
 /**
  * Prepare request information
  *
  * @return array Prepared data
  */
 public function getRequestData()
 {
     $data = array();
     $login = RusSpsr::WALogin();
     if ($login) {
         $weight_data = fn_expand_weight($this->_shipping_info['package_info']['W']);
         $shipping_settings = $this->_shipping_info['service_params'];
         $location = !empty($this->_shipping_info['package_info']['location']) ? $this->_shipping_info['package_info']['location'] : '';
         $packages = !empty($this->_shipping_info['package_info']['packages']) ? $this->_shipping_info['package_info']['packages'] : array();
         $code = $this->_shipping_info['service_code'];
         $ruble = Registry::get('currencies.RUB');
         if (!empty($shipping_settings)) {
             $from_city = "";
             $to_city = "";
             $nature = $shipping_settings['default_product_type'];
             if (!empty($_SESSION['cart'])) {
                 $cart = $_SESSION['cart'];
                 $products = $uniq_types = array();
                 foreach ($packages as $package) {
                     foreach ($package['products'] as $key => $product) {
                         $products[$key] = $cart['products'][$key]['spsr_product_type'];
                         $uniq_types[] = $cart['products'][$key]['spsr_product_type'];
                     }
                 }
                 $uniq_types = array_unique($uniq_types);
                 if (count($uniq_types) == 1) {
                     $nature = $uniq_types[0];
                 } elseif (count($uniq_types) > 1) {
                     if (array_search(18, $uniq_types)) {
                         $amount_check = 1;
                         $nature = 18;
                     }
                 }
             }
             if (!empty($shipping_settings['from_city_id'])) {
                 $from_city = $shipping_settings['from_city_id'] . '|' . $shipping_settings['from_city_owner_id'];
             } else {
                 $this->_internalError(__("shipping.spsr.not_setting_city"));
             }
             if (isset($shipping_settings['insurance_type']) && !empty($shipping_settings['insurance_type'])) {
                 if ($shipping_settings['insurance_type'] == "INS") {
                     $amount_check = 1;
                 } elseif ($shipping_settings['insurance_type'] == "VAL") {
                     $amount_check = 0;
                 }
             }
             $city = RusSpsr::WAGetCities($location);
             if (!empty($city)) {
                 $to_city = $city['City_ID'] . '|' . $city['City_owner_ID'];
             } else {
                 $this->_internalError(RusSpsr::$last_error);
             }
             $weight = $weight_data['plain'];
             $amount = $this->_shipping_info['package_info']['C'];
             $sid = RusSpsr::$sid;
             $data = array('ToCity' => $to_city, 'FromCity' => $from_city, 'Weight' => $weight, 'Nature' => $nature, 'Amount' => $amount, 'AmountCheck' => $amount_check, 'SMS' => $shipping_settings['sms_to_shipper'], 'SMS_Recv' => $shipping_settings['sms_to_receiver'], 'PlatType' => $shipping_settings['plat_type'], 'DuesOrder' => $shipping_settings['dues_order'], 'ToBeCalledFor' => $shipping_settings['to_be_called_for'], 'ByHand' => $shipping_settings['by_hand'], 'icd' => $shipping_settings['idc'], 'SID' => $sid);
         }
     } else {
         fn_set_notification('E', __('notice'), RusSpsr::$last_error);
     }
     $url = 'http://www.cpcr.ru/cgi-bin/postxml.pl?TARIFFCOMPUTE_2';
     $request_data = array('method' => 'post', 'url' => $url, 'data' => $data);
     return $request_data;
 }
Пример #3
0
 $params = $_REQUEST;
 if ($mode == 'm_delete') {
     if (!empty($params['addr_ids'])) {
         foreach ($_REQUEST['addr_ids'] as $a) {
             $a = explode('||', $a);
             $id = $a[0];
             $owner_id = $a[1];
             fn_spsr_delete_addr($id, $owner_id);
         }
     }
     $suffix = ".manage";
 } elseif ($mode == 'update') {
     if (!empty($params['create_address'])) {
         RusSpsr::WALogin();
         $address = $params['create_address'];
         $city_data = RusSpsr::WAGetCities(array('city' => $address['city_name']));
         $address['city_id'] = $city_data['City_ID'];
         $address['city_owner_id'] = $city_data['City_owner_ID'];
         $result = RusSpsr::WAAddAddress($address, 8);
         if ($result) {
             fn_set_notification('N', __('notice'), __('shippings.spsr.address_add'));
             if (!empty(RusSpsr::$last_error)) {
                 fn_set_notification('N', __('notice'), RusSpsr::$last_error);
             }
         } else {
             fn_set_notification('E', __('notice'), __('shippings.spsr.not_address_add') . ' : ' . RusSpsr::$last_error);
         }
         RusSpsr::WALogout();
         $suffix = ".manage";
     }
 } elseif ($mode == 'delete') {
Пример #4
0
         }
     }
     $suffix = ".manage";
 } elseif ($mode == 'update') {
     $params = $_REQUEST['spsr_courier'];
     if (!empty($params)) {
         RusSpsr::WALogin();
         $date = date('Y-m-d', fn_parse_date($params['necesserydate'])) . 'T00:00:00.000';
         $service = $params['service'];
         $placescount = 1;
         $address = explode('||', $params['sbor_addr']);
         $sboraddr_id = $address[0];
         $sboraddr_owner_id = $address[1];
         $fio = $address[2];
         $city = $address[3];
         $receiver_city = RusSpsr::WAGetCities(array('city' => $city));
         $data = array('date' => $date, 'time' => $params['necesserytime'], 'receiver_city_id' => $receiver_city['City_ID'], 'receiver_city_owner_id' => $receiver_city['City_owner_ID'], 'mode' => $service, 'fio' => $fio, 'sboraddr_id' => $sboraddr_id, 'sboraddr_owner_id' => $sboraddr_owner_id, 'order_type' => 0, 'placescount' => $params['placescount'], 'weight' => $params['weight'], 'length' => $params['length'], 'width' => $params['width'], 'depth' => $params['depth'], 'description' => $params['description']);
         $order_id = RusSpsr::WACreateOrder($data);
         if (!empty($order_id)) {
             fn_set_notification('N', __('notice'), __('shippings.spsr.order_add') . ' : ' . $order_id);
         } else {
             fn_set_notification('E', __('notice'), __('shippings.spsr.not_order_add') . ' : ' . RusSpsr::$last_error);
         }
         RusSpsr::WALogout();
         $suffix = ".manage";
     }
 } elseif ($mode == 'delete') {
     if (!empty($_REQUEST['courier_id']) && !empty($_REQUEST['courier_owner_id'])) {
         fn_spsr_delete_courier($_REQUEST['courier_id'], $_REQUEST['courier_owner_id']);
     }
     $suffix = ".manage";
Пример #5
0
        if ($login) {
            $type_products = RusSpsr::WAGetEncloseType();
            if ($_REQUEST['module'] == 'spsr') {
                $location['country'] = Registry::get('settings.General.default_country');
                $location['city'] = Registry::get('settings.General.default_city');
                $data = RusSpsr::WAGetCities($location);
                Tygh::$app['view']->assign('from_city_id', $data['City_ID']);
                Tygh::$app['view']->assign('from_city_owner_id', $data['City_owner_ID']);
                Tygh::$app['view']->assign('city', $location['city']);
            }
            RusSpsr::WALogout();
            Tygh::$app['view']->assign('type_products', $type_products);
        } else {
            fn_set_notification('E', __('notice'), RusSpsr::$last_error);
        }
    }
}
if ($mode == 'spsr_get_city_data') {
    $params = $_REQUEST;
    if (defined('AJAX_REQUEST')) {
        $location['country'] = Registry::get('settings.General.default_country');
        $location['city'] = $params['var_city'];
        RusSpsr::WALogin();
        $data = RusSpsr::WAGetCities($location);
        RusSpsr::WALogout();
        $city_data = array('from_city_id' => $data['City_ID'], 'from_city_owner_id' => $data['City_owner_ID']);
        Tygh::$app['view']->assign('spsr_new_city_data', $city_data);
        Tygh::$app['view']->display('addons/rus_spsr/views/shippings/components/services/spsr.tpl');
        exit;
    }
}