Exemplo n.º 1
0
 /**
  * 发货单投放
  * @author czq
  */
 public function act_shipOrderpick()
 {
     $waveId = isset($_POST['waveId']) ? intval($_POST['waveId']) : '';
     $shipOrderId = isset($_POST['shipOrderId']) ? intval(trim($_POST['shipOrderId'])) : '';
     $waveId = WhWaveInfoModel::number_decode($waveId);
     if (!$waveId || !$shipOrderId) {
         $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '波次配货单不存在,参数错误');
         echo json_encode($msg);
         exit;
     }
     $pickRecord = WhWaveShippingPickRecordModel::getRecordInfoByShipOrderId($shipOrderId);
     if (!$pickRecord) {
         $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '此波次的发货单' . $shipOrderId . '不存在');
         echo json_encode($msg);
         exit;
     } else {
         if ($pickRecord[0]['pickStatus'] == 1) {
             $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '此发货单已投放过,桶号为:' . $pickRecord[0]['pickLight']);
             echo json_encode($msg);
             exit;
         }
     }
     //更新发货单投放记录表
     $data = array('pickStatus' => 1, 'pickUserId' => $_SESSION['userId'], 'pickTime' => time());
     WhWaveShippingPickRecordModel::update($data, ' shipOrderId=' . $shipOrderId);
     //检查当前发货单是否已完结分拣
     $ShipOrderpickrecord = WhWaveShippingPickRecordModel::select("waveId='" . $waveId . "' AND pickStatus=0 AND is_delete=0");
     if (!$ShipOrderpickrecord) {
         //最后一个投放
         $msg = array('status' => 'A' . ($pickRecord[0]['pickLight'] >= 10 ? $pickRecord[0]['pickLight'] : '0' . $pickRecord[0]['pickLight']), 'pickLight' => $pickRecord[0]['pickLight'] . '号桶', 'shipOrderId' => $pickRecord[0]['shipOrderId'], 'waveStatus' => 'A99', 'msg' => '发货单已投放完毕,请投放料号!');
     } else {
         $msg = array('status' => 'A' . ($pickRecord[0]['pickLight'] >= 10 ? $pickRecord[0]['pickLight'] : '0' . $pickRecord[0]['pickLight']), 'pickLight' => $pickRecord[0]['pickLight'] . '号桶', 'shipOrderId' => $pickRecord[0]['shipOrderId'], 'waveStatus' => 'A00', 'msg' => '');
     }
     echo json_encode($msg);
     exit;
 }
Exemplo n.º 2
0
 /**
  * WaveOrderPrintingView::view_print_all()
  * 对配货单进行判断是否符合要求
  * @author cxy
  * @return void
  */
 public function view_print_all()
 {
     $_POST['waveId'] = $_POST['waveId'] ? $_POST['waveId'] : $_GET['waveId'];
     $_POST['waveIds'] = $_POST['waveIds'] ? $_POST['waveIds'] : $_GET['waveIds'];
     $_POST['shipOrderId'] = $_POST['shipOrderId'] ? $_POST['shipOrderId'] : $_GET['shipOrderId'];
     $confirm = $_GET['confirm'] ? true : false;
     // print_r($_POST);exit;
     $waveId = WhWaveInfoModel::number_decode($_POST['waveId']);
     if (!$waveId) {
         $return = array('status' => 0, 'msg' => '配货单不存在,请检查是否输入正确');
         echo json_encode($return);
         exit;
     }
     $wave = array();
     if ($waveId) {
         $wave = WhWaveInfoModel::find($waveId);
     }
     //波次配货单状态
     $waveTypes = array('many' => array(5, 6), 'one' => array(2, 3, 4), 'order' => array(1));
     if (!$wave) {
         //	echo '该配货单不存在,不能打印';
         $return = array('status' => 1, 'msg' => '该配货单不存在,不能打印');
         echo json_encode($return);
         exit;
     } else {
         if ($wave['waveStatus'] < 3 && !$confirm) {
             $return = array('status' => 1, 'msg' => '该配货单未完成配货,不能打印');
             echo json_encode($return);
             exit;
         }
         if (in_array($wave['waveType'], $waveTypes['order'])) {
             //单发货单,检查是否被拆分多波次,验证全部波次
             $vo = WhWaveShippingRelationModel::find("waveId='" . $waveId . "' AND is_delete=0");
             if (!$vo) {
                 $return = array('status' => 1, 'msg' => '该配货单下无发货单,不能打印');
                 echo json_encode($return);
                 exit;
             }
             $orders = WhWaveShippingRelationModel::select("shipOrderId='" . $vo['shipOrderId'] . "'");
             //已收到波次
             $temp_waveIds = explode(',', $_POST['waveIds']);
             $waveIds = array();
             foreach ($temp_waveIds as $val) {
                 if ($val) {
                     $waveIds[] = WhWaveInfoModel::number_decode($val);
                 }
             }
             $notWaveIds = array();
             foreach ($orders as $val) {
                 if (!in_array($val['waveId'], $waveIds)) {
                     $notWaveIds[] = $val['waveId'];
                 }
             }
             if ($notWaveIds) {
                 $return = array('status' => 1, 'msg' => '该波次为单发货单拆分波次,请连续扫描多个配货单后再打印');
                 echo json_encode($return);
                 exit;
             }
         }
     }
     /*
         	if(in_array($wave['waveType'], $waveTypes['one'])){
         		//单料号的配货单
         		$orderlist = WhWaveScanRecordModel::getShipOrders($waveId, $_POST['shipOrderId']);
         $onesku = true ;
         	//	$this->smarty->assign('onesku', true);
         	}else{
         		$orderlist = WhWaveShippingRelationModel::getShipOrders($waveId, $_POST['shipOrderId']);	
         		//$this->smarty->assign('onesku', false);
          $onesku = false ;
         	}
            // echo $_POST['shipOrderId'];
           //  print_r($orderlist);exit;
     
         	if(!$orderlist){
         	    $return = array(
         			'status'	=> 1,
         			'msg'		=> '该配货单下无发货单,不能打印',
         	    	);
             echo json_encode($return);
         	      	exit; 
     	    //	echo '该配货单下无发货单,不能打印';
       //   echo "<script>alert('该配货单下无发货单,不能打印');</script>";
        //         redirect_to("index.php?mod=waveOrderPrinting&act=index");
     	    //	exit;
         	}
         	//if(!in_array($wave['waveType'], $waveTypes['many'])){
         		//非多料号波次,更新状态为待复核
         		//WhWaveInfoModel::update(array('waveStatus' => 6), $wave['id']);
         	//}
         	$carries = WhBaseModel::cache('trans.carrier.info.get');
         	if(!$carries){
     	    	//接口获取快递运输方式
     			require_once WEB_PATH."html/api/include/opensys_functions.php";
     			$paramArr = array(
     				'method'	=> 'trans.carrier.info.get',
     				'format'	=> 'json',
     				'v'			=> '1.0',
     				'username'	=> 'purchase',
     				'type'		=> 1	//0非快递,1-快递,2-全部
     			);
     	    	$result = json_decode(callOpenSystem($paramArr), true);
     	    	$templist = $result['data'];
     	    	if($templist){
     		    	foreach($templist as $val){
     		    		$carries[$val['id']] = $val;
     		    		$carries['express_ids'][] = $val['id'];
     		    	}
     		    }
     		    WhBaseModel::cache('trans.carrier.info.get', $carries);
     		}
         	foreach($orderlist as $key => $val){
         		if($val['transportId'] && in_array($val['transportId'], $carries['express_ids'])){
         			$val['isexpress'] = 1;
         			$express_ordids[] = $val['shipOrderId'];
         		}else{
         			$val['isexpress'] = 0;
         			$ordids[] = $val['shipOrderId'];
         		}
         		$orderlist[$key] = $val;
         	}
     */
     $return = array('status' => 200, 'msg' => '请打印', 'waveId' => $_POST['waveId'], 'shipOrderId' => $_POST['shipOrderId']);
     echo json_encode($return);
     exit;
 }
Exemplo n.º 3
0
 public function view_stoppicking()
 {
     $_POST['waveId'] = $_POST['waveId'] ? $_POST['waveId'] : $_GET['waveId'];
     $waveId = WhWaveInfoModel::number_decode($_POST['waveId']);
     if ($waveId) {
         $wave = WhWaveInfoModel::find($waveId);
     }
     if (!$waveId || !$wave) {
         $msg = array('status' => 'A00', 'waveStatus' => 'A00', 'msg' => '波次配货单不存在,参数错误');
         echo json_encode($msg);
     }
     //检查当前波次是否已分拣完结
     $list = WhWavePickRecordModel::getSkuPickRecord($waveId);
     if ($list) {
         //把未完结的发货记录手动完结,修改配货记录状态为手动完结
         $Pickmessage = '异常发货单:<br/>';
         foreach ($list as $val) {
             if (WhWavePickRecordModel::update(array('pickStatus' => 3), ' shipOrderId=' . $val['shipOrderId'] . ' AND pickStatus = 0 AND is_delete = 0')) {
                 //修改配货单的状态为待复核
                 if (WhShippingOrderModel::update(array('orderStatus' => PKS_UNUSUAL_SHIPPING_INVOICE), ' id=' . $val['shipOrderId'])) {
                     $Pickmessage .= "发货单:{$val['shipOrderId']}--桶号:{$val['pickLight']}<br/>";
                 }
             }
         }
         $msg = array('waveStatus' => 'A99', 'msg' => $Pickmessage);
     } else {
         $msg = array('status' => 'A00', 'waveStatus' => 'A99', 'msg' => '波次已完成分拣,不需要手动完结');
     }
     echo json_encode($msg);
 }
Exemplo n.º 4
0
 public function view_savescan()
 {
     $id = intval($_POST['id'] ? $_POST['id'] : $_GET['id']);
     $waveId = WhWaveInfoModel::number_decode($_POST['waveId'] ? $_POST['waveId'] : $_GET['waveId']);
     $neednum = $_POST['neednum'] ? $_POST['neednum'] : $_GET['neednum'];
     $readynum = $_POST['readynum'] ? $_POST['readynum'] : $_GET['readynum'];
     $sku = get_goodsSn($_POST['sku'] ? $_POST['sku'] : $_GET['sku']);
     $record = WhWaveScanRecordModel::find($id);
     if (!$readynum) {
         $return = array('status' => 0, 'msg' => '配货数量不能为0');
         echo json_encode($return);
         exit;
     }
     if (!$record) {
         $return = array('status' => 0, 'msg' => '错误料号信息,料号不存在');
         echo json_encode($return);
         exit;
     }
     if ($waveId != $record['waveId']) {
         $return = array('status' => 0, 'msg' => '配货单号与系统记录不符');
         echo json_encode($return);
         exit;
     }
     if (strtoupper($sku) != strtoupper($record['sku'])) {
         $return = array('status' => 0, 'msg' => '料号与系统记录不符');
         echo json_encode($return);
         exit;
     }
     if ($readynum > $record['skuAmount']) {
         $return = array('status' => 0, 'msg' => '配货数量不能大于总配货数');
         echo json_encode($return);
         exit;
     }
     $amount = $record['amount'] + $readynum;
     if ($amount > $record['skuAmount']) {
         $return = array('status' => 0, 'msg' => '当前配货数量超过待配货数');
         echo json_encode($return);
         exit;
     }
     $data = array('amount' => $amount, 'scanStatus' => $amount == $record['skuAmount'] ? 1 : 0);
     if ($data['scanStatus']) {
         $data['scanTime'] = time();
     }
     $result = WhWaveScanRecordModel::update($data, $id);
     if ($result) {
         if ($data['scanStatus']) {
             //检查当前配货单在当前区域已否已配完
             $waveId = $record['waveId'];
             $area = $record['area'];
             $wave_area = WhWaveScanRecordModel::find("waveId='{$waveId}' AND area='{$area}' AND scanStatus=0 AND is_delete=0");
             if (!$wave_area) {
                 //当前区域已配完
                 $update_data = array('scanStatus' => 1);
                 WhWaveReceiveRecordModel::update($update_data, "waveId='{$waveId}' AND area='{$area}' AND is_delete=0");
                 $wave = WhWaveScanRecordModel::find("waveId='{$waveId}' AND scanStatus=0 AND is_delete=0");
                 if (!$wave) {
                     /*//当前波次已配完
                     		$update_data = array(
                     			'waveStatus' => 3,
                     		);
                     		WhWaveInfoModel::update($update_data, "id='$waveId' AND is_delete=0");*/
                 }
             }
         }
         $return = array('status' => 1, 'msg' => '配货成功');
         echo json_encode($return);
     } else {
         $return = array('status' => 0, 'msg' => '配货失败,未知错误');
         echo json_encode($return);
     }
 }
Exemplo n.º 5
0
 /**
  * 获取配货单的接下来的配货区域
  * @return string
  * @author czq
  */
 public static function act_orderPickRoute()
 {
     $invoiceNumber = isset($_POST['invoice']) ? trim($_POST['invoice']) : "";
     if (empty($invoiceNumber)) {
         self::$errCode = 502;
         self::$errMsg = "配货单号不能为空!";
         return false;
     }
     $waveId = WhWaveInfoModel::number_decode($invoiceNumber);
     //是否已完结
     $waveInfo = WhWaveInfoModel::find(array('id' => $waveId, 'is_delete' => 0), 'waveStatus');
     if ($waveInfo['waveStatus'] == WAVE_FINISH_GET_GOODS) {
         self::$errCode = 502;
         self::$errMsg = "此配货单已经完结!";
         return false;
     }
     //只获取未配货的三个路由区域
     $waveReceiveInfo = WhWaveReceiveRecordModel::getNextReceiveRoute($waveId);
     if (!$waveReceiveInfo) {
         self::$errCode = 502;
         self::$errMsg = "未找到收货区域!";
         return false;
     }
     $str = '未收货路由(显示部分):';
     $areas = array();
     foreach ($waveReceiveInfo as $wave) {
         $areas[] = $wave['area'];
     }
     $str .= implode('=>', $areas);
     self::$errCode = 200;
     self::$errMsg = "获取收货区域成功!";
     return $str;
 }