public function view_reculculateShippingWay() { $ids = isset($_GET['ids']) ? trim($_GET['ids']) : ''; $ids = explode(',', $ids); $ids = array_map('intval', $ids); $succesResult = array(); //存储处理成功的结果集 $failureResult = array(); //处理存储失败的结果集 $owOrderMG = new OwOrderManageModel(); $owShipfeeCul = new OwShippingWayDesisionModel(); $oderIndex = new OrderindexAct(); $exApply = new ExpressLabelApplyModel(); foreach ($ids as $orderId) { $orderInfo = $owOrderMG->getOrderInfoById($orderId, array('id', 'recordNumber', 'calcWeight')); if (FALSE == $orderInfo) { $failureResult[] = array('oderid' => $orderId, 'recordNumber' => '', 'calcWeight' => 0, 'errMsg' => '订单不存在'); continue; } if (0 == $orderInfo['calcWeight']) { //重量未0 不予打印 $failureResult[] = array('oderid' => $orderId, 'recordNumber' => $orderInfo['recordNumber'], 'calcWeight' => 0, 'errMsg' => '订单重量为0! 请确认重量!'); continue; } $userInfo = $owOrderMG->getBuyerInfoById($orderId); if (FALSE == $userInfo) { $failureResult[] = array('oderid' => $orderId, 'recordNumber' => $orderInfo['recordNumber'], 'calcWeight' => $orderInfo['calcWeight'], 'errMsg' => '不能获取买家信息!'); continue; } $shipInfo = $owOrderMG->getShippingInfo($orderId); if ($shipInfo) { if ($shipInfo['isCanceled'] == 0) { //之前已经申请过跟踪号 如果未取消则不予重复申请 $failureResult[] = array('oderid' => $orderId, 'recordNumber' => $orderInfo['recordNumber'], 'calcWeight' => $orderInfo['calcWeight'], 'shippingWay' => $shipInfo['shippingWay'], 'errMsg' => '原有跟踪号未取消!', 'trackNumber' => $shipInfo['trackNumber']); continue; } } $skuList = $oderIndex->act_getRealskulist($orderId); $outSide = $owShipfeeCul->culPackageLWH($skuList); $zone = $exApply->getZoneCode($userInfo['zipCode']); $shipingWay = $owShipfeeCul->chooseShippingWay($skuList, $orderInfo['calcWeight'], $outSide, $zone); if (FALSE == $shipingWay) { $failureResult[] = array('oderid' => $orderId, 'recordNumber' => $orderInfo['recordNumber'], 'calcWeight' => $orderInfo['calcWeight'], 'errMsg' => '未找到合适的运输方式!', 'trackNumber' => ''); continue; } else { //执行成功 更新运输方式 $transId = $exApply->reflectCodeToId($shipingWay['shippingCode']); $owOrderMG->updateFeildData(array('transportId' => $transId), $orderId); $owOrderMG->changeOrderStatus(911, 916, $orderId); //移动到待打印 $succesResult[] = array('oderid' => $orderId, 'recordNumber' => $orderInfo['recordNumber'], 'calcWeight' => $orderInfo['calcWeight'], 'errMsg' => '成功!', 'trackNumber' => $shipingWay['shippingCode']); continue; } } // print_r($failureResult); // print_r($succesResult); $this->smarty->assign('success', $succesResult); $this->smarty->assign('failure', $failureResult); $this->smarty->display('owReculShipping.htm'); }
public function __construct() { parent::__construct(); }
public static function auto_contrast_intercept($orderData) { global $SYSTEM_ACCOUNTS, $__liquid_items_fenmocsku, $__liquid_items_BuiltinBattery, $__liquid_items_SuperSpecific, $__liquid_items_Paste; global $GLOBAL_EBAY_ACCOUNT; global $express_delivery, $no_express_delivery; if (!$SYSTEM_ACCOUNTS) { if (!defined('WEB_PATH')) { define("WEB_PATH", "/data/web/order.valsun.cn/"); //define("WEB_PATH","/data/web/framework.valsun.cn/"); } include WEB_PATH . "conf/scripts/script.ebay.config.php"; } if (!$GLOBAL_EBAY_ACCOUNT) { $GLOBAL_EBAY_ACCOUNT = array(); foreach ($SYSTEM_ACCOUNTS as $acct) { foreach ($acct as $key => $value) { $GLOBAL_EBAY_ACCOUNT[$key] = $value; } } } //var_dump($GLOBAL_EBAY_ACCOUNT); self::initDB(); //var_dump($orderData); echo "\n"; $log_data = ""; $actualTotal0 = 0; //该订单实际总数 //$ebay_id = $orderData['orderData']['id']; $orderStatus = empty($orderData['orderData']['orderStatus']) ? C('STATEPENDING') : $orderData['orderData']['orderStatus']; $orderType = empty($orderData['orderData']['orderType']) ? C('STATEPENDING_CONV') : $orderData['orderData']['orderType']; $returnStatus = array('orderStatus' => $orderStatus, 'orderType' => $orderType); $isNote = $orderData['orderData']['isNote']; if ($isNote) { $orderType = C('STATEPENDING_MSG'); } $calcWeight = $orderData['orderData']['calcWeight']; $pmId = $orderData['orderData']['pmId']; //var_dump($calcWeight); echo "\n"; $orderdetaillist = $orderData['orderDetail']; if (empty($calcWeight)) { $calcInfo = CommonModel::calcAddOrderWeight($orderdetaillist); //计算重量和包材 $calcWeight = $calcInfo[0]; $pmId = $calcInfo[1]; $orderData['orderData']['calcWeight'] = $calcWeight; $orderData['orderData']['pmId'] = $pmId; } //var_dump($calcWeight); echo "\n"; $transportId = @$orderData['orderData']['transportId']; $countryName = $orderData['orderUserInfoData']['countryName']; $accountId = $orderData['orderData']['accountId']; $actualTotal = $orderData['orderData']['actualTotal']; $ebay_username = $orderData['orderUserInfoData']['username']; $orderDataid = $orderData['orderExtenData']['orderId']; $ebay_usermail = $orderData['orderUserInfoData']['email']; $PayPalEmailAddress = @$orderData['orderExtenData']['PayPalEmailAddress']; //echo "------$countryName-----\n"; //echo "订单计算重量:$calcWeight\t\n"; $contain_special_item = false; $contain_os_item = false; $ow_status = array(); $all_splited_sku = array(); //汇总改订单的sku //foreach ($orderdetaillist AS $orderdetail){ for ($i = 0; $i < count($orderdetaillist); $i++) { $sku = $orderdetaillist[$i]['orderDetailData']['sku']; $itemPrice = $orderdetaillist[$i]['orderDetailData']['itemPrice']; $amount = $orderdetaillist[$i]['orderDetailData']['amount']; $shippingFee = $orderdetaillist[$i]['orderDetailData']['shippingFee']; //var_dump($sku); $sku_arr = GoodsModel::get_realskuinfo($sku); //将sku的信息汇总到汇总sku列表中 foreach ($sku_arr as $f_sku => $f_num) { if (array_key_exists($f_sku, $all_splited_sku)) { $all_splited_sku[$f_sku] = $all_splited_sku[$f_sku] + $f_num; } else { $all_splited_sku[$f_sku] = $f_num; } } //var_dump($sku_arr); exit; $actualTotal0 += $itemPrice * $amount + $shippingFee; foreach ($sku_arr as $or_sku => $or_nums) { if (in_array($or_sku, $__liquid_items_fenmocsku) || in_array($or_sku, $__liquid_items_SuperSpecific) || in_array($or_sku, $__liquid_items_BuiltinBattery)) { //粉末状,超规格产品 走福建邮局 $contain_special_item = true; } if (preg_match("/^US01\\+.*/", $or_sku, $matchArr) || preg_match("/^US1\\+.*/", $or_sku, $matchArr)) { //$log_data .= "[".date("Y-m-d H:i:s")."]\t包含海外仓料号订单---{$ebay_id}-----料号:{$or_sku}--!\n\n"; $contain_os_item = true; if (strpos($or_sku, "US01+") !== false) { $matchStr = substr($matchArr[0], 5); //去除前面 //$matchStr = str_replace("US1+", "", $or_sku); } else { //$matchStr=substr($matchArr[0],5);//去除前面 $matchStr = str_replace("US1+", "", $or_sku); } $n = strpos($matchStr, ':'); //寻找位置 if ($n) { $matchStr = substr($matchStr, 0, $n); } //删除后面 if (preg_match("/^0+(\\w+)/", $matchStr, $matchArr)) { $matchStr = $matchArr[1]; } $orderData['orderDetail'][$i]['orderDetailData']['sku'] = $matchStr; //OrderAddModel::updateDetailExtension(array('sku'=>$matchStr), " id = {$orderdetail['ebay_id']} "); //$virtualnum = check_oversea_stock($matchStr); //检查海外仓虚拟库存 $virtualnum = self::checkHasRepertoryOs($matchStr, $or_nums); //预留获取海外仓虚拟库存接口 20131225 if ($virtualnum >= 0) { $ow_status[] = C('STATEPENDING_OVERSEA'); //海外仓待处理 } else { $ow_status[] = C('STATEOUTOFSTOCK_OVERSEA'); //海外仓缺货 } } } } if ($contain_special_item) { /*$sql = "update ebay_order set ebay_carrierstyle ='1' where ebay_id ={$ebay_id}"; //add by Herman.Xi 记录该订单含有特殊料号 $dbConnn->query($sql); $log_data .= "[".date("Y-m-d H:i:s")."]\t包含粉末状超规格产品---{$ebay_id}---!\n\n";*/ } if ($contain_os_item) { if (in_array(C('STATEOUTOFSTOCK_OVERSEA'), $ow_status)) { $orderData['orderData']['orderStatus'] = C('STATEPENDING_OS'); $orderData['orderData']['orderType'] = C('STATEOUTOFSTOCK_OVERSEA'); } else { $orderData['orderData']['orderStatus'] = C('STATEPENDING_OS'); $orderData['orderData']['orderType'] = C('STATEPENDING_OVERSEA'); } //$log_data .= "[".date("Y-m-d H:i:s")."]\t更新海外仓料号订单状态为{$final_status}---{$ebay_id}--{$sql}-!\n\n"; /*if($final_status == C('STATEPENDING_OVERSEA')){ $calcWeight = calcWeight($ebay_id); $skunums = checkSkuNum($ebay_id); if($skunums === true){ continue; }else if ($calcWeight>20) { if($skunums==1){ usCalcShipCost($ebay_id); } } else { usCalcShipCost($ebay_id); } }*/ //$calcWeight = recalcorderweight($order_sn, $ebay_packingmaterial); //modified by Herman.Xi 2012-10-17 $owShipDes = new OwShippingWayDesisionModel(); $outside = $owShipDes->culPackageLWH($all_splited_sku); $zipCode = $orderData['orderData']['userInfo']['zipCode']; $shipping = new ExpressLabelApplyModel(); $zone = $shipping->getZoneCode($zipCode); $zone = FALSE !== $zone ? $zone : 6; //如果没找到分区则默认为6区 $shippingInfo = $owShipDes->chooseShippingWay($all_splited_sku, $calcWeight, $outside, $zone); if ($shippingInfo) { $transId = $shipping->reflectCodeToId($shipping['shippingCode']); } else { $transId = 0; } $orderData['orderData']['transportId'] = $transId; if ($transId) { //找到运输方 则放到待处理 $orderData['orderData']['orderStatus'] = 911; $orderData['orderData']['orderType'] = 115; } $orderStatus = empty($orderData['orderData']['orderStatus']) ? C('STATEPENDING') : $orderData['orderData']['orderStatus']; $orderType = empty($orderData['orderData']['orderType']) ? C('STATEPENDING_CONV') : $orderData['orderData']['orderType']; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t包含海外仓料号---自动跳转---的状态为---{$final_status}!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; //continue; } $interceptrtn = self::intercept_exception_orders($orderData); //var_dump($interceptrtn); if ($interceptrtn) { $orderData['orderData']['orderStatus'] = $interceptrtn['orderStatus']; $orderData['orderData']['orderType'] = $interceptrtn['orderType']; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } $record_details = array(); $is_640 = false; //var_dump($orderdetaillist); exit; foreach ($orderdetaillist as $orderdetail) { //var_dump($orderdetail['sku']); $sku = $orderdetail['orderDetailData']['sku']; //$itemPrice = $orderdetail['orderDetailData']['itemPrice']; $amount = $orderdetail['orderDetailData']['amount']; //$shippingFee = $orderdetail['orderDetailData']['shippingFee']; $sku_arr = GoodsModel::get_realskuinfo($sku); //var_dump($sku_arr); exit; $hava_goodscount = true; foreach ($sku_arr as $or_sku => $or_nums) { $allnums = $or_nums * $amount; if (!CommonModel::check_sku($or_sku, $allnums)) { //超大订单状态 $orderStatus = C('STATEOVERSIZEDORDERS'); if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['aliexpress']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['DHgate']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['出口通']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['线下结算客户'])) { $orderType = C('STATEOVERSIZEDORDERS_CONFIRM'); } else { $orderType = C('STATEOVERSIZEDORDERS_PEND'); } //self::insert_mark_shipping($ebay_id); $is_640 = true; break; } else { $skuinfo = CommonModel::get_sku_info($or_sku); $salensend = CommonModel::getpartsaleandnosendall($or_sku); //$log_data .= "[".date("Y-m-d H:i:s")."]\t---{$sql}\n\n"; $log_data .= "订单==={$ebay_id}===料号=={$or_sku}===实际库存为{$skuinfo['realnums']}===需求量为{$allnums}===待发货数量为{$salensend}===\n"; if (!isset($skuinfo['realnums']) || empty($skuinfo['realnums']) || $skuinfo['realnums'] - $salensend - $allnums < 0) { $hava_goodscount = false; break; } } } if ($hava_goodscount) { $record_details[] = $orderdetail; } } if ($is_640) { $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } $count_record_details = count($record_details); $count_orderdetaillist = count($orderdetaillist); $final_status = $orderStatus; //原始状态 if ($count_record_details == 0) { //更新至自动拦截发货状态 /*if (!in_array($ebay_carrier, $no_express_delivery)){ $final_status = 658; }else { $final_status = 661; }*/ //$sql = "UPDATE ebay_order SET ebay_status='$final_status' WHERE ebay_id ='$ebay_id' and ebay_status = '{$orderStatus}' "; $orderStatus = C('STATEOUTOFSTOCK'); $orderType = C('STATEOUTOFSTOCK_AO'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为---".C('STATEOUTOFSTOCK_AO')."!\n\n"; //self::insert_mark_shipping($ebay_id); //self::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } else { if ($count_record_details < $count_orderdetaillist) { //更新至自动部分发货状态 /*if (!in_array($ebay_carrier, $no_express_delivery)){ //$final_status = 659; $final_status = 640; }else { $final_status = 660; }*/ $orderStatus = C('STATEOUTOFSTOCK'); $orderType = C('STATEOUTOFSTOCK_PO'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为---".C('STATEOUTOFSTOCK_PO')."!\n\n"; //self::insert_mark_shipping($ebay_id); //$returnStatus = array('orderStatus'=>C('STATEOUTOFSTOCK'), 'orderType'=>C('STATEOUTOFSTOCK_PO')); //self::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } else { if ($count_record_details == $count_orderdetaillist) { //正常发货状态 if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['ebay'])) { if (in_array($orderStatus, array(C('STATEOUTOFSTOCK_PO'), C('STATEOUTOFSTOCK_PO')))) { //$final_status = 618;//ebay订单自动拦截有货不能移动到待处理和有留言 modified by Herman.Xi @ 20130325(移动到缺货需打印中) $orderStatus = C('STATEPENDING'); if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } else { $orderType = C('STATEPENDING_HASARRIVED'); } } else { $orderStatus = C('STATEPENDING'); if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } else { $orderType = C('STATEPENDING_CONV'); } } } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['aliexpress'])) { if (in_array($countryName, array('Russian Federation', 'Russia')) && strpos($ebay_carrier, '中国邮政') !== false && str_word_count($ebay_username) < 2) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['DHgate'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['dresslink.com'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['cndirect.com'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['Amazon'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } } } } } } if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } /*if(self::judge_contain_combinesku_new($orderdetaillist)){ $final_status = 606; }*/ if ($calcWeight > 2) { echo "\t 超重订单"; $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_OW'); } $expressArr = CommonModel::getCarrierInfoById(1); if (in_array($transportId, $expressArr)) { $orderType = C('STATEPENDING_HASARRIVED'); } /*if (!in_array($ebay_carrier, $no_express_delivery) && !empty($ebay_carrier)){ if(in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['ebay']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['海外销售平台'])){ $final_status = 641;//ebay和海外都跳转到 待打印线下和异常订单 }else{ $final_status = 639; } }*/ } else { $log_data .= "[" . date("Y-m-d H:i:s") . "]\t订单同步状态有误,请联系IT解决!"; } } } //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; }
public function view_applyLabel() { $returnData = array('code' => 0, 'msg' => ''); $orderId = isset($_GET['oid']) ? intval($_GET['oid']) : 0; if (!$orderId) { $returnData['msg'] = '未指定订单号'; echo json_encode($returnData); return FALSE; } $orderInfo = OrderInfoModel::getOrderInfo($orderId); if (FALSE === $orderInfo) { //不存在的订单号 $returnData['msg'] = '不存在的订单号!'; echo json_encode($returnData); return FALSE; } if ($orderInfo['orderStatus'] != 911 || $orderInfo['orderType'] != 916) { //订单状态不合法 $returnData['msg'] = '该订单不是海外仓待打印订单!'; echo json_encode($returnData); return FALSE; } if ($orderInfo['transportId'] == 0) { //订单未设置运输方式 $returnData['msg'] = '该订单还未设定运输方式!'; echo json_encode($returnData); return FALSE; } $orderActObj = new OrderindexAct(); $skuList = $orderActObj->act_getRealskulist($orderId); //获得全部的sku列表 if (FALSE == $skuList) { $returnData['msg'] = '获取料号信息出错!'; echo json_encode($returnData); return FALSE; } $owOrderMg = new OwOrderManageModel(); $owShipDes = new OwShippingWayDesisionModel(); $outside = $owShipDes->culPackageLWH($skuList); $buyerInfo = $owOrderMg->getUnshippedOrderBuyerInfo($orderId); //买家信息 if (FALSE === $buyerInfo) { $returnData['msg'] = '获取买家信息失败!'; echo json_encode($returnData); return FALSE; } $zipCode = $buyerInfo['zipCode']; //邮编 $weight = $orderInfo['calcWeight']; //订单重量 if ($weight == 0) { //重量为0 则无法处理 $returnData['msg'] = '订单重量为0,请先确认重量!'; echo json_encode($returnData); return FALSE; } $owOrderMG = new OwOrderManageModel(); $transInfo = $owOrderMG->getShippingInfo($orderId); if (!empty($transInfo) && $transInfo['shippingWay'] == 'USPS' && $transInfo['isCanceled'] == 0) { /* 当之前有申请过usps 并且申请的usps还没有退款的时 则 不予申请*/ $returnData['msg'] = '请先退款已申请的USPS!'; echo json_encode($returnData); return FALSE; } $shipping = new ExpressLabelApplyModel(); $zone = $shipping->getZoneCode($zipCode); $zone = FALSE !== $zone ? $zone : 6; //如果没找到分区则默认为6区 $shippingInfo = $owShipDes->chooseShippingWay($skuList, $weight, $outside, $zone); if ($shippingInfo) { $transId = $shipping->reflectCodeToId($shippingInfo['shippingCode']); } else { $transId = 0; } if ($transId != $orderInfo['transportId']) { //计算出的运输方式和系统的不符合 $returnData['msg'] = "计算的运输方式和初始运输方式不符合! 请重新生成运输方式 ! 计算运输方式为 " . $shippingInfo['shippingCode']; echo json_encode($returnData); return FALSE; } if (0 == $transId) { //没找到正确的运输方式 $returnData['msg'] = OwShippingWayDesisionModel::$errMsg; echo json_encode($returnData); return FALSE; } $data = array(); $data['recipients'] = $buyerInfo['username']; //收件人 $data['re_phone'] = $buyerInfo['landline'] . '/' . $buyerInfo['phone']; //电话 $data['re_address1'] = $buyerInfo['street']; //街道地址一 $data['re_address2'] = $buyerInfo['address2']; //街道地址二 $data['re_city'] = $buyerInfo['city']; //市 $data['re_post_code'] = $zipCode; //邮编 $data['re_country_code'] = 'US'; //国家简称 $data['weight'] = $weight; //重量 $data['orderId'] = $orderId; //订单号 $owSkuMG = new OwSkuInfoManageModel(); //生成料号仓位数据 $skuLocation = $owSkuMG->getAsetOfSkusLocation(array_keys($skuList)); $positionStr = ''; $skuDetailStr = ''; foreach ($skuList as $k => $_num) { $position = $skuLocation[$k]; $positionStr .= " {$k} [{$position}] "; $skuDetailStr .= " {$k} * {$_num} "; } $data['sku_position'] = $positionStr; $data['show_detail'] = $skuDetailStr; $handResult = FALSE; $errMsg = ''; // print_r($shippingInfo['shippingCode']);exit; if ('UPS Ground' == $shippingInfo['shippingCode']) { //申请 UPS Label $upsApplyObj = new ApplyUpsLabelModel(); $data['re_state_code'] = $upsApplyObj->getStateAbbreviationName($buyerInfo['state']); //州简称 if (FALSE == $data['re_state_code']) { //没找到则使用原始值 $data['re_state_code'] = $buyerInfo['state']; } // print_r($data);exit; $applyResult = $upsApplyObj->applyUPSLabel($data); if (FALSE === $applyResult) { //申请标签失败 $errMsg = ApplyUpsLabelModel::$errMsg; } else { $handResult = TRUE; $this->deal_img_ups($applyResult['imagePath'], $applyResult['imagePath']); } } else { if ('USPS' == $shippingInfo['shippingCode']) { //申请usps label $uspsApplyObj = new ApplyUSPSLabelModel(); $data['re_state_code'] = $uspsApplyObj->getStateAbbreviationName($buyerInfo['state']); //州简称 if (FALSE == $data['re_state_code']) { //没找到则使用原始值 $data['re_state_code'] = $buyerInfo['state']; } $mailClass = $shippingInfo['extensionInfo']['mailclass']; //运输类型 $packageType = $shippingInfo['extensionInfo']['packageType']; $typeInfo = array('mailClass' => $mailClass, 'packageType' => $packageType); $applyResult = $uspsApplyObj->aplyUSPSLabel($data, $typeInfo); if (FALSE === $applyResult) { //申请标签失败 $errMsg = ApplyUSPSLabelModel::$errMsg; } else { $handResult = TRUE; if ($packageType == 'Letter' || $packageType == 'Flat') { $this->deal_img_usps($applyResult['imagePath'], $applyResult['imagePath']); //后期处理图片 } } } } if (FALSE == $handResult) { $returnData['msg'] = $errMsg; } else { $returnData['code'] = 1; // array('trackNumber'=>$trackNumber, 'shippFee'=>$totalMoney, 'imagePath'=>$labelSavePath $result = $owOrderMG->insertNewTrackNumber($orderId, $applyResult['trackNumber'], $shippingInfo['shippingCode'], $_SESSION['sysUserId'], 0); //更新跟踪号信息 $result2 = $owOrderMG->changeOrderStatus(911, 910, $orderId); } echo json_encode($returnData); return FALSE; }