Пример #1
0
 public function view_waveinit()
 {
     $waveId = WhWaveInfoModel::number_decode($_POST['waveId']);
     //判断每个区域是否已配货完结
     $list = WhWaveReceiveRecordModel::select("waveId='{$waveId}'");
     if (!$list) {
         $result = array('status' => 'A00', 'msg' => '配货单收货记录不存在');
         echo json_encode($result);
         exit;
     } else {
         $areas = array();
         foreach ($list as $val) {
             if ($val['scanStatus'] < 2) {
                 $areas[] = $val['area'];
             }
         }
         if ($areas) {
             $result = array('status' => 'A00', 'msg' => '部分区域未完成收货,暂不能执行分拣<br/>' . implode(', ', $areas));
             echo json_encode($result);
             exit;
         }
     }
     //分配筒号(亮灯)
     $orderlist = WhWaveShippingRelationModel::select("waveId='{$waveId}' AND is_delete=0 order by shipOrderId asc");
     $light = 1;
     $shipOrderPickData = array();
     foreach ($orderlist as $val) {
         $data = array('pickLight' => $light, 'pickTime' => time(), 'pickUserId' => $_SESSION['userId']);
         WhWaveShippingRelationModel::update($data, $val['id']);
         //生成发货单投放记录表
         $shipOrderPickData[] = array('waveId' => $waveId, 'shipOrderId' => $val['shipOrderId'], 'pickStatus' => 0, 'pickTime' => 0, 'pickUserId' => 0, 'is_delete' => 0);
         $light++;
     }
     //查看是否有此波次的发货单投放记录
     $shipOrderPick = WhWaveShippingPickRecordModel::find(' waveId=' . $waveId);
     if (!$shipOrderPick) {
         WhWaveShippingPickRecordModel::insert($shipOrderPickData, true);
     }
     //生成分拣记录表
     $pick = WhWavePickRecordModel::find("waveId='{$waveId}'");
     if (!$pick) {
         $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' => 0, 'pickUserId' => 0, 'pickTime' => 0, 'deleteUserId' => '0', 'deleteTime' => '0', 'is_delete' => '0');
             $picklist[] = $data;
         }
         WhWavePickRecordModel::insert($picklist, true);
     }
     //扫描配货单的时候,查看配货单是否已经配货完成
     $shipOrderPicks = WhWaveShippingPickRecordModel::select(' waveId=' . $waveId . ' AND pickStatus = 0', '*');
     $hasShippingPick = false;
     $message = '配货单筒号分配正常,可以执行分拣(当前流程是SKU分拣)';
     if (count($shipOrderPicks) > 0) {
         $hasShippingPick = true;
         $message = '配货单筒号分配正常,可以执行分拣(当前流程是发货单投放)';
     }
     $result = array('status' => 'A99', 'hasShippingPick' => $hasShippingPick, 'msg' => $message);
     echo json_encode($result);
 }
Пример #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;
 }
Пример #3
0
 /**
  * WaveInfoManageView::get_search_where()
  * 处理配货单搜索条件
  * @author Gary
  * @return void
  */
 private function get_search_where()
 {
     $areaUser = trim($_GET['areaUser']) ? intval(trim($_GET['areaUser'])) : '';
     //区域负责人
     $shipOrderId = trim($_GET['shipOrderId']) ? intval(trim($_GET['shipOrderId'])) : '';
     //发货单ID
     $waveType = trim($_GET['waveType']) ? intval(trim($_GET['waveType'])) : '';
     //配货单类型
     $waveZone = trim($_GET['waveZone']) ? intval(trim($_GET['waveZone'])) : '';
     //配货单区域类型
     $storey = isset($_REQUEST['storey']) ? intval(trim($_REQUEST['storey'])) : '';
     //配货单打印楼层
     $choose_area = trim($_GET['choose_area']);
     //选择的区域
     $waveStatus = trim($_GET['waveStatus']);
     //配货单状态
     $waveNumber = trim($_GET['waveNumber']);
     //配货单编号
     $startdate = trim($_GET['startdate']);
     //开始日期
     $enddate = trim($_GET['enddate']);
     //结束日日
     foreach ($_GET as $key => $v) {
         //传递搜索条件到配货单管理页面
         $this->smarty->assign($key, ${$key});
     }
     //print_r($choose_area);exit;
     $searchArr = array();
     $areas = array();
     //区域集合
     $wave_ids = array();
     //配货单ID数组
     if ($choose_area) {
         $areas[] = $choose_area;
     }
     if ($areaUser) {
         //区域负责人
         $areaId = WhWaveAreaUserRelationModel::select(array('userId' => $areaUser, 'is_delete' => 0), 'areaId');
         if (!empty($areaId)) {
             $areaName = WhWaveAreaInfoModel::get_area_info('areaName', $areaId[0]['areaId']);
             if (!empty($areaName)) {
                 $areas[] = $areaName[0]['areaName'];
             }
         }
     }
     if ($waveNumber) {
         $wave_id = WhBaseModel::number_decode($waveNumber);
         //获取配货单ID
         $wave_ids[] = $wave_id;
     }
     if ($startdate) {
         $searchArr['a.createTime >='] = strtotime($startdate);
     }
     if ($enddate) {
         $searchArr['a.createTime <='] = strtotime($enddate);
     }
     if ($shipOrderId) {
         $ids = WhWaveShippingRelationModel::select(array('shipOrderId' => $shipOrderId, 'is_delete' => 0), 'waveId');
         $tmp_ids = array();
         if (!empty($ids)) {
             foreach ($ids as $val) {
                 $tmp_ids[] = $val['waveId'];
             }
         } else {
             $tmp_ids[] = 0;
         }
         if (!empty($wave_ids)) {
             $wave_ids = array_intersect($wave_ids, $tmp_ids);
             $wave_ids = empty($wave_ids) ? array(0) : $wave_ids;
         } else {
             $wave_ids = $tmp_ids;
         }
     }
     if ($waveStatus) {
         $searchArr['a.waveStatus'] = $waveStatus;
     }
     if ($waveType) {
         $searchArr['a.waveType'] = $waveType;
     }
     if ($waveZone) {
         $searchArr['a.waveZone'] = $waveZone;
     }
     if (!empty($areas)) {
         $searchArr['c.area in'] = array_unique($areas);
     }
     if (!empty($wave_ids)) {
         $searchArr['a.id in'] = array_unique($wave_ids);
     }
     if ($storey) {
         $searchArr['a.printStorey'] = $storey;
     }
     $searchArr['a.waveStatus !='] = 0;
     $searchArr['a.createUserId !='] = 0;
     $searchArr['a.is_delete'] = 0;
     $searchArr['group by'] = 'a.id';
     return $searchArr;
 }