/** * 发货单投放 * @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; }
/** * 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; }
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); }
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); } }
/** * 获取配货单的接下来的配货区域 * @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; }