예제 #1
0
 public function act_manualSortingCheck()
 {
     $userId = $_SESSION['userId'];
     $waveId = isset($_POST['waveId']) ? $_POST['waveId'] : "";
     $where = "number='{$waveId}'";
     $waveInfo = WhWaveInfoModel::get_wave_info("*", $where);
     if (!$waveInfo) {
         self::$errCode = 502;
         self::$errMsg = "此配货单号不存在!";
         return false;
     }
     if ($waveInfo[0]['waveStatus'] != WAVE_FINISH_GET_GOODS) {
         self::$errCode = 514;
         self::$errMsg = "此配货单不在【配货完成】状态,不能进行分拣操作!";
         return false;
     }
     if ($waveInfo[0]['waveType'] == 3) {
         self::$errCode = 518;
         self::$errMsg = "此配货单属于多SKU生成的配货单,不能进行人工分拣!";
         return false;
     }
     //一个发货单对应多个配货单的时候,发货单是唯一的,
     if ($waveInfo[0]['waveType'] == 1) {
         $waveId = $waveInfo[0]['id'];
         $result = WhWaveShippingRelationModel::select_not_scanning($waveId);
         $shipOrderId = $result[0]['shipOrderId'];
         if ($result[0]['pickUserId'] != 0) {
             self::$errCode = 520;
             self::$errMsg = "此配货单已经分拣过了!";
             return false;
         }
         WhShippingOrderModel::begin();
         $update = WhWaveShippingRelationModel::update(array('pickUserId' => $userId, 'pickTime' => time()), array('is_delete' => 0, 'waveId' => $waveId));
         if (!$update) {
             self::$errCode = 519;
             self::$errMsg = "扫描该配货单失败,请联系负责人!";
             WhShippingOrderModel::rollback();
             return false;
             // $result = WhWaveShippingRelationModel::getShippingOrderIdsByWaveId($waveId);
             //$shipOrderId = $result[0]['shipOrderId'];
             //查询还没有扫描的配货单
         }
         $select_not_scanning = WhWaveShippingRelationModel::select_not_scanning_by_id($shipOrderId);
         $not_scanning_waveId = '';
         //还没有分拣的配货单
         if ($select_not_scanning) {
             foreach ($select_not_scanning as $val) {
                 $not_scanning_waveId .= $val['waveId'] . ',';
             }
             self::$errMsg = "扫描该配货单'{$waveId}'成功,对应发货单'{$shipOrderId}'的配货单'{$not_scanning_waveId}'还没有分拣!";
         } else {
             self::$errMsg = "扫描该配货单'{$waveId}'成功,对应的发货单'{$shipOrderId}'已经分拣完成,请处理完成之后拿去复核!";
             //获取一个发货单对应多个配货单的每个配货单号
             $result = OmAvailableModel::getTNameList("wh_wave_shipping_relation", "waveId", "where shipOrderId='{$shipOrderId}'  and is_delete=0 ");
             $wave_all = '';
             foreach ($result as $values) {
                 $wave_all .= $values['waveId'] . ',';
             }
             $wave_all = trim($wave_all, ',');
             //得到该发货单下所有配货单的信息
             $scan_record = OmAvailableModel::getTNameList("wh_wave_scan_record", "waveId,sku,skuAmount,amount", "where waveId in ('{$wave_all}')  and scanStatus = 1  and is_delete=0 ");
             $picklist_all = array();
             foreach ($scan_record as $record) {
                 $data = array('waveId' => $record['waveId'], 'shipOrderId' => $shipOrderId, 'sku' => $record['sku'], 'skuAmount' => $record['skuAmount'], 'amount' => $record['amount'], 'pickStatus' => 1, 'pickUserId' => intval($_SESSION['userId']), 'pickTime' => time(), 'deleteUserId' => '0', 'deleteTime' => '0', 'is_delete' => '0');
                 $picklist_all[] = $data;
             }
             if (!WhWavePickRecordModel::insert($picklist_all, true)) {
                 WhShippingOrderModel::rollback();
                 self::$errCode = 517;
                 self::$errMsg = "该配货单插入分拣记录失败!";
                 return false;
             }
             $where = "id = '{$shipOrderId}' AND orderStatus='" . PKS_WAITING_SORTING . "'";
             if (!WhShippingOrderModel::update_shipping_order($where, "orderStatus='" . PKS_WIQC . "'")) {
                 WhShippingOrderModel::rollback();
                 self::$errCode = 516;
                 self::$errMsg = "此配货单所属发货单{$shipOrderId}更新状态失败!";
                 return false;
             }
         }
         WhPushModel::pushOrderStatus($shipOrderId, 'PKS_WIQC', $_SESSION['userId'], time());
         //状态推送,需要改为待复核单(订单系统提供状态常量)
         WhShippingOrderModel::commit();
         self::$errCode = 200;
         return true;
     }
     /*
     		if(empty($waveInfo[0]['sku'])){
     			self::$errCode = 515;
     			self::$errMsg = "此配货单不属于单SKU生成的配货单,不能进行人工分拣!";
     			return false;
     		}
     */
     $waveId = $waveInfo[0]['id'];
     //echo $waveId;
     $shippOrders = WhWaveShippingRelationModel::getShippingOrderIdsByWaveId($waveId);
     //var_dump($shippOrders);
     WhShippingOrderModel::begin();
     foreach ($shippOrders as $shippOrder) {
         $shipOrderId = $shippOrder['shipOrderId'];
         $where = "id = '{$shipOrderId}' AND orderStatus='" . PKS_WAITING_SORTING . "'";
         if (!WhShippingOrderModel::update_shipping_order($where, "orderStatus='" . PKS_WIQC . "'")) {
             WhShippingOrderModel::rollback();
             self::$errCode = 516;
             self::$errMsg = "此配货单所属发货单{$shipOrderId}更新状态失败!";
             return false;
         }
     }
     $pick = WhWavePickRecordModel::find("waveId='{$waveId}'");
     if (!$pick) {
         $picklist = array();
         $list = WhShippingOrderdetailModel::getShippingOrderSkuList($waveId);
         foreach ($list as $val) {
             $data = array('waveId' => $val['waveId'], 'shipOrderId' => $val['shipOrderId'], 'sku' => $val['sku'], 'skuAmount' => $val['amount'], 'amount' => 0, 'pickStatus' => 1, 'pickUserId' => intval($_SESSION['userId']), 'pickTime' => time(), 'deleteUserId' => '0', 'deleteTime' => '0', 'is_delete' => '0');
             $picklist[] = $data;
         }
         if (!WhWavePickRecordModel::insert($picklist, true)) {
             WhShippingOrderModel::rollback();
             self::$errCode = 517;
             self::$errMsg = "该配货单插入分拣记录失败!";
             return false;
         } else {
             foreach ($picklist as $lists) {
                 WhPushModel::pushOrderStatus($lists['shipOrderId'], 'PKS_WIQC', $_SESSION['userId'], time());
                 //状态推送,需要改为待复核单(订单系统提供状态常量)
             }
         }
     }
     WhShippingOrderModel::commit();
     self::$errCode = 200;
     self::$errMsg = "该配货单分拣成功,请处理完成之后拿去复核!";
     return true;
 }
예제 #2
0
 /**
  * PdaManagementAct::act_searchSortingInfo()
  * @author cxy
  * @param mixed $orderid
  * @return
  */
 function act_searchSortingInfo($orderid)
 {
     if (empty($orderid)) {
         return '请输入分拣的配货单号';
     }
     $orderid = trim($orderid);
     $scan_record = OmAvailableModel::getTNameList("wh_wave_info", "*", "where id='{$orderid}'  and is_delete=0 ");
     if (empty($scan_record)) {
         return '输入分拣的配货单号不存在';
     }
     $waveStatus = $scan_record[0]['waveStatus'];
     if ($waveStatus == WAVE_WAITING_GET_GOODS) {
         $status = '待配货';
     } else {
         if ($waveStatus == WAVE_PROCESS_GET_GOODS) {
             $status = '配货中';
         } else {
             $status = '配货完成';
         }
     }
     if ($scan_record[0]['waveType'] == 1) {
         $detail = WhWaveShippingRelationModel::select_not_scanning($orderid);
         //   echo '<pre>';  print_r($detail);     echo '<pre>';exit;
         if ($detail) {
             //分拣人
             $usermodel = UserModel::getInstance();
             $iqc_user = $usermodel->getGlobalUserLists('global_user_name', "where a.global_user_id={$detail[0]['pickUserId']}");
             $op_name = $iqc_user[0]['global_user_name'];
             $time = empty($detail[0]['pickTime']) ? "" : date('Y-m-d H:i:s', $detail[0]['pickTime']);
             $show = '配货单为' . $orderid . ',属于人工分拣单发货单, ' . '发货单为' . $detail[0]['shipOrderId'] . ',该配货单状态为' . $status . ', 人工分拣操作人为' . $op_name . ', 操作时间为' . $time . '<br />';
             $result = OmAvailableModel::getTNameList("wh_wave_pick_record", "*", "where shipOrderId='{$detail[0]['shipOrderId']}'  and is_delete=0 ");
             foreach ($result as $list) {
                 if ($list['pickStatus'] == 0) {
                     $status_SKU = '未分拣完成';
                 } else {
                     if ($list['pickStatus'] == 1) {
                         $status_SKU = '分拣完成';
                     } else {
                         $status_SKU = '手动完结分拣完成';
                     }
                 }
                 $dataTime = empty($list['pickTime']) ? '' : date('Y-m-d H:i:s', $list['pickTime']);
                 $show .= 'sku为' . $list['sku'] . ',该SKU需要分拣的数量为' . $list['skuAmount'] . ',状态为' . $status_SKU . ',分拣时间为' . $dataTime . '<br />';
             }
             return $show;
         } else {
             return '该配货单的相关信息不存在';
         }
     } else {
         if ($scan_record[0]['waveType'] == 2) {
             $result = OmAvailableModel::getTNameList("wh_wave_pick_record", "*", "where waveId='{$orderid}'  and is_delete=0 ");
             $show = '该配货是属于单SKU配货单,状态为' . $status;
             foreach ($result as $value) {
                 $dataTimes = empty($value['pickTime']) ? '' : date('Y-m-d H:i:s', $value['pickTime']);
                 $show .= '发货单为' . $value['shipOrderId'] . 'sku为' . $value['sku'] . ',该SKU需要分拣的数量为' . $value['skuAmount'] . ',分拣人为' . $value['pickUserId'] . ',分拣时间为' . $dataTimes . '<br/>';
             }
             return $show;
         } else {
             $result = OmAvailableModel::getTNameList("wh_wave_pick_record", "*", "where waveId='{$orderid}'  and is_delete=0 ");
             $show = '该配货是属于多SKU配货单,状态为' . $status;
             foreach ($result as $value) {
                 if ($value['pickStatus'] == 0) {
                     $status_SKU = '未分拣完成';
                 } else {
                     if ($value['pickStatus'] == 1) {
                         $status_SKU = '分拣完成';
                     } else {
                         $status_SKU = '手动完结分拣完成';
                     }
                 }
                 $dataTime = empty($value['pickTime']) ? '' : date('Y-m-d H:i:s', $value['pickTime']);
                 $show .= '发货单为' . $value['shipOrderId'] . ',sku为' . $value['sku'] . ',该SKU需要分拣的数量为' . $value['skuAmount'] . ',已经分拣的数量为' . $value['amount'] . '状态为' . $status_SKU . ',分拣人为' . $value['pickUserId'] . ',分拣时间为' . $dataTime . '<br />';
             }
             return $show;
         }
     }
 }