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); }
/** * 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; }
/** * 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; }