예제 #1
0
 /**
  * ShipfeeQueryModel::cal_globalmail_shenzhen()
  * 香港globalmail运费计算
  * @param float $weight 重量
  * @param string $countryname 发往国家
  * @param $data 待定
  * @return false or array
  */
 public function cal_globalmail_shenzhen($weight, $countryname, $data)
 {
     $totalfee = 0;
     $rate = 0;
     $arealist = array();
     $arealist = TransOpenApiModel::cacheTableInfo('trans_freight_globalmail_shenzhen', '1', 'cal_globalmail_shenzhen', 86400, 0);
     if (empty($arealist)) {
         return false;
     }
     $arearow = array();
     foreach ($arealist as $value) {
         $countrys = explode(',', $value['country']);
         $countrys = array_map(array($this, 'callback_trimspace'), $countrys);
         if (in_array($countryname, $countrys)) {
             $arearow = $value;
             break;
         }
     }
     if (empty($arearow)) {
         return false;
     }
     //运费计算
     $weight_freight = $arearow['weight_freight'];
     $weight_freight_arr = explode(',', $weight_freight);
     foreach ($weight_freight_arr as $key1 => $value1) {
         $value1_arr = explode(':', $value1);
         $weight_range = explode('-', $value1_arr[0]);
         if ($weight > $weight_range[0] && $weight <= $weight_range[1]) {
             $shipfee = $value1_arr[1];
             break;
         }
     }
     if (empty($shipfee)) {
         return false;
     }
     $shipfee *= $weight;
     //油费计算
     $fuelcosts = $arearow['fuelcosts'];
     $zgTranFee = $arearow['zgTranFee'] * $weight;
     $fuelcosts_arr = explode(',', $fuelcosts);
     foreach ($fuelcosts_arr as $key2 => $value2) {
         $value2_arr = explode(':', $value2);
         $weight_range = explode('-', $value2_arr[0]);
         if ($weight > $weight_range[0] && $weight <= $weight_range[1]) {
             $fuelfee = $value2_arr[1];
             break;
         }
     }
     $exRates = TransOpenApiModel::cacheExRateInfo(array('HKD'), array('CNY'), 'hkRate', 7200, 0);
     $hkRate = round(floatval($exRates['HKD/CNY']), 4);
     if ($hkRate <= 0) {
         return array('discount' => 0, 'fee' => 0, 'totalfee' => 0, 'level' => "", 'exRate' => array("hkRate" => 0));
     }
     $shipfee += $fuelfee;
     $shipfee = $shipfee * $hkRate;
     $shipfee += $zgTranFee;
     $totalfee = $shipfee;
     $shipfee = round($shipfee, 4);
     return array('discount' => $rate, 'fee' => $shipfee, 'totalfee' => $totalfee, 'level' => "", 'exRate' => array("hkRate" => $hkRate));
 }