Example #1
0
 /**
  * OrderPrintAct::orderPrint()
  * 面单打印公用函数
  * @param array $shipOrderId 发货单ID 数组或者单个id
  * @param string $tranport 运输方式
  * @return void
  */
 public static function orderPrint($shipOrderId, $transport = '', $accountId = '')
 {
     /** 判断挂号是否有跟踪号**/
     $track_carrier = array(2, 4, 6, 79, 83, 88, 89, 91, 92, 95);
     if (in_array($transport, $track_carrier)) {
         $tracknumber = WhOrderTracknumberModel::select_TracknumberByOrderId($shipOrderId);
         if (empty($tracknumber)) {
             self::$errCode = 403;
             self::$errMsg = '发货单' . $shipOrderId . ':没有跟踪号!';
             return FALSE;
         }
     }
     /** end**/
     $file_path = WEB_PATH . 'html/template/v1/';
     if (!$transport) {
         self::$errCode = 404;
         self::$errMsg = '发货单' . $shipOrderId . ':没有运输方式!';
         return FALSE;
     }
     $test = isset($_GET['test']) ? $_GET['test'] : '';
     /*ob_start();  //测试运行
       include $file_path.'test.htm';
       $content    =   ob_get_contents();
       @ob_end_clean();*/
     //$shipingtyplist = CommonModel::getShipingTypeList();
     // print_r($shipingtyplist);exit;
     $file = '';
     //面单打印文件名
     //根据运输方式和账号ID得到面单文件
     switch ($transport) {
         case 1:
         case '中国邮政平邮':
         case 2:
         case '中国邮政挂号':
             $file = 'printlabel_chinapost.php';
             break;
         case 3:
         case '香港小包平邮':
         case 4:
         case '香港小包挂号':
             $file = 'printlabel_hk.php';
             break;
         case 5:
         case 'EMS':
             $file = '';
             break;
         case 6:
         case 'EUB':
             $file = 'printlabel_eub.php';
             break;
         case 8:
         case 'DHL':
             $file = '';
             break;
         case 9:
         case 'FedEx':
             self::$errCode = 203;
             self::$errMsg = '该发货单不能在公司打印,请导出此发货单数据';
             return false;
         case 10:
         case '香港Global Mail':
             $file = '';
             break;
         case 46:
         case 'UPS Ground':
             $file = '';
             break;
         case 47:
         case 'USPS':
             $file = '';
             break;
         case 52:
         case '新加坡邮政':
             $file = '';
             break;
         case '53':
         case '德国邮政挂号':
             $file = 'printlabel_global_mail.php';
             break;
         case 58:
         case 'UPS':
             $file = '';
             break;
         case 59:
         case '飞腾DHL':
             self::$errCode = 203;
             self::$errMsg = '该发货单不能在公司打印,请导出此发货单数据';
             return false;
         case 62:
         case 'UPS美国专线':
             self::$errCode = 203;
             self::$errMsg = '该发货单不能在公司打印,请导出此发货单数据';
             return false;
         case 63:
         case '英国专线挂号':
             $file = '';
             break;
         case 66:
         case '同城速递':
             $file = '';
             break;
         case 71:
         case '城市之星物流':
             $file = '';
             break;
         case 74:
         case '天地华宇物流':
             $file = '';
             break;
         case 75:
         case '德邦物流':
             $file = '';
             break;
         case 76:
         case '盛辉物流':
             $file = '';
             break;
         case 80:
         case '俄速通平邮':
         case 79:
         case '俄速通挂号':
             $file = 'printlabel_est.php';
             break;
         case 81:
         case '俄速通大包':
             $file = '';
             break;
         case 84:
         case '新加坡DHL GM平邮':
         case 83:
         case '新加坡DHL GM挂号':
             $file = 'printlabel_singapore_dhl_gm.php';
             break;
         case 87:
         case '瑞士小包平邮':
         case 88:
         case '瑞士小包挂号':
             $file = 'printlabel_switzerland_package.php';
             break;
         case 89:
         case '比利时小包EU':
         case 90:
         case '比利时小包平邮':
             $file = 'printlabel_bilishi.php';
             break;
         case 91:
         case 'USPS FirstClass':
         case 92:
         case 'UPS Ground Commercia':
         case 95:
         case 'UPS SurePost':
             $file = '';
             break;
         case 93:
         case '澳邮宝挂号':
             $file = '';
             break;
         case 96:
         case 'UPS英国专线':
             $file = '';
             break;
         case 97:
         case 'UPS法国专线':
             $file = '';
             break;
         case 98:
         case 'UPS德国专线':
             $file = '';
             break;
         default:
     }
     if (empty($file)) {
         $result = WhWaveTransportationAccountModel::select_account($accountId, $transport);
         if ($result) {
             $file = trim($result['fileName']);
         } else {
             self::$errCode = 203;
             self::$errMsg = '未知运输方式';
             return false;
         }
     }
     //$file   .=  "?shipOrderId=$shipOrderId&tranport=$tranport";
     $_SESSION['shipOrderId'] = $shipOrderId;
     $_SESSION['transport'] = $transport;
     if (!$test) {
         ob_start();
     }
     include $file_path . $file;
     //echo $file_path.$file;
     if (!$test) {
         $content = ob_get_contents();
         @ob_end_clean();
         return $content;
     }
 }
 /**
  * Pda_orderLoadingAct::act_orderExpress()
  * 如果装车扫描的时候是扫描快递的,那么该模块接收的变量的值是追踪号$ebay_id,发货单号是$shipOrderId
  * @author cxy
  * @return
  */
 public function act_orderExpress()
 {
     $userId = $_SESSION['userId'];
     $shipOrderId = trim($_POST['shipOrderId']);
     //快递单号
     $ebay_id = trim($_POST['ebay_id']);
     //扫描的跟踪号
     if (empty($shipOrderId)) {
         self::$errCode = '201';
         self::$errMsg = '请输入发货单号!';
         return false;
     }
     if (empty($ebay_id)) {
         self::$errCode = '201';
         self::$errMsg = '请输入跟踪号!';
         return false;
     }
     // $arr_track[] = $ebay_id;
     //记录表里和发货单关联的跟踪号
     $tracknumber = WhOrderTracknumberModel::select_TracknumberByOrderId($shipOrderId);
     //print_r($tracknumber);exit();
     $tracking_arr = array();
     foreach ($tracknumber as $track) {
         $tracking_arr[] = $track['tracknumber'];
     }
     // print_r($arr_track);
     // print_r($tracking_arr);exit;
     if (!in_array($ebay_id, $tracking_arr)) {
         self::$errCode = '202';
         self::$errMsg = '输入的跟踪号没有和该发货单号绑定!';
         return false;
     }
     $data = array('packageId' => $shipOrderId, 'scantime' => time(), 'userId' => $userId, 'tracking' => $ebay_id, 'isExpress' => 1);
     $select_loading = WhWaveOrderLoadingModel::select_loading_express($shipOrderId, $ebay_id);
     if ($select_loading) {
         self::$errCode = '003';
         self::$errMsg = '该' . $shipOrderId . '下的跟踪号' . $ebay_id . '已经进行过装车扫描了!';
         return false;
     }
     $insert_loading = WhWaveOrderLoadingModel::insert($data);
     if (empty($insert_loading)) {
         self::$errCode = '003';
         self::$errMsg = '装车扫描失败,请联系负责人!';
         return false;
     }
     $count_load = WhWaveOrderLoadingModel::select_loading_count($shipOrderId);
     //已经装车扫描的记录
     //当需要扫描的跟踪号等于已经扫描的跟踪号的时候就改变发货单的状态
     if ($count_load['muns'] == count($tracknumber)) {
         $result = WhWaveOrderPartionScanReviewModel::updateShippingOrderStatus($shipOrderId, $status = PKS_DONE);
         if (!$result) {
             self::$errCode = '003';
             self::$errMsg = '更新' . $shipOrderId . '发货单号失败,请联系负责人!';
             return false;
         }
         WhPushModel::pushOrderStatus($shipOrderId, 'PKS_DONE', $_SESSION['userId'], time());
         //状态推送,需要改为已发货(订单系统提供状态常量)
         self::$errMsg = '扫描' . $shipOrderId . '快递单成功,请扫描下一个发货单号!';
     } else {
         self::$errMsg = '扫描' . $shipOrderId . '快递单的跟踪号成功,请扫描该快递单的下一个跟踪号!';
     }
     self::$errCode = '200';
     return true;
     // WhOrderTracknumberModel::select_ByTracknumber($ebay_id);
     // echo $ebay_id.'--'.$shipOrderId;exit;
 }