Exemplo n.º 1
0
 public function view_skupick()
 {
     $waveId = $_POST['waveId'] ? $_POST['waveId'] : $_GET['waveId'];
     $waveId = WhWaveInfoModel::number_decode($waveId);
     $sku = get_goodsSn($_POST['sku'] ? $_POST['sku'] : $_GET['sku']);
     if ($waveId) {
         $wave = WhWaveInfoModel::find($waveId);
     }
     if (!$waveId || !$wave) {
         $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '波次配货单不存在,参数错误');
         echo json_encode($msg);
         exit;
     }
     $recordlist = array();
     $recordlist = WhWaveScanRecordModel::getRecordInfoBySku($sku, $waveId);
     if (!$recordlist) {
         $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '料号对应的发货单不存在,请确认料号输入正确');
         echo json_encode($msg);
         exit;
     }
     $record = array();
     $firstRecord = array();
     foreach ($recordlist as $val) {
         if (!$firstRecord) {
             $firstRecord = $val;
         }
         if (!$val['pickStatus']) {
             $record = $val;
             break;
         }
     }
     if ($record['pickLight']) {
         if ($record && !$record['record_id']) {
             //料号无分拣,插入新记录
             $new_record = array('waveId' => $record['waveId'], 'shipOrderId' => $record['shipOrderId'], 'sku' => $record['sku'], 'skuAmount' => $record['skuAmount'], 'amount' => '1', 'pickStatus' => $record['skuAmount'] == 1 ? 1 : 0, 'pickUserId' => intval($_SESSION['userId']), 'pickTime' => time(), 'deleteUserId' => '0', 'deleteTime' => '0', 'is_delete' => '0');
             $record_id = WhWavePickRecordModel::insert($new_record);
         } else {
             if ($record) {
                 $data = array();
                 $data['amount'] = $record['pickcount'] + 1;
                 if ($data['amount'] >= $record['skuAmount']) {
                     $data['pickStatus'] = 1;
                 }
                 if (!$record['pickUserId']) {
                     $data['pickUserId'] = intval($_SESSION['userId']);
                     $data['pickTime'] = time();
                 }
                 WhWavePickRecordModel::update($data, $record['record_id']);
             }
         }
         $msg = array('status' => 'A' . ($record['pickLight'] >= 10 ? $record['pickLight'] : '0' . $record['pickLight']), 'pickLight' => $record['pickLight'] . '号桶', 'shipOrderId' => $record['shipOrderId'], 'waveStatus' => 'A00', 'msg' => '');
         //检查当前发货单是否已完结分拣
         $pickrecord = WhWavePickRecordModel::find("shipOrderId='" . $record['shipOrderId'] . "' AND pickStatus=0 AND is_delete=0");
         if (!$pickrecord) {
             //快递小包通用待复核
             $data = array('orderStatus' => PKS_WIQC);
             WhShippingOrderModel::update($data, "id='" . $record['shipOrderId'] . "'");
             WhPushModel::pushOrderStatus($record['shipOrderId'], 'PKS_WIQC', $_SESSION['userId'], time());
         }
     } else {
         if ($firstRecord) {
             $msg = array('status' => 'A00', 'pickLight' => $firstRecord['pickLight'] . '号桶', 'shipOrderId' => $firstRecord['shipOrderId'], 'waveStatus' => 'A00', 'msg' => '料号[' . $sku . ']已完成分拣');
         } else {
             $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '料号[' . $sku . ']未找到对应发货单和筒号');
         }
     }
     //检查当前波次是否已分拣完结
     $pickstatus = WhWavePickRecordModel::checkPickStatus($waveId);
     if ($pickstatus === true) {
         /*$data = array(
         			'waveStatus' => 5
         		);
         		WhWaveInfoModel::update($data, $waveId);*/
         //返回波次完结信息
         $msg['waveStatus'] = 'A99';
         $msg['msg'] = '波次配货单已分拣完结';
     }
     echo json_encode($msg);
 }