public function act_postalldate() { $sku = isset($_POST['sku']) ? trim($_POST['sku']) : ''; $sku = get_goodsSn($sku); $num = intval($_POST['num']); if ($num < 0) { $res['res_code'] = '502'; $res['res_msg'] = "{$sku}入库数量{$num}有误,请重新扫描订单!"; $res['sku'] = $sku; echo json_encode($res); exit; } if (empty($ebay_id) || empty($sku)) { $res['res_code'] = '502'; $res['res_msg'] = "入库数据有误,请重新扫描订单!"; $res['sku'] = $sku; echo json_encode($res); exit; } $sql = "SELECT * FROM ebay_onhandle WHERE goods_sn ='{$sku}' AND ebay_user ='******'"; $sql = $dbcon->execute($sql); $checkonhandle = $dbcon->num_rows($sql); if ($checkonhandle == 0) { $res['res_code'] = '502'; $res['res_msg'] = "{$sku}产品未导入库存信息表!"; $res['sku'] = $sku; echo json_encode($res); exit; } $ss = "select * from ebay_order_scan_record where ebay_id={$ebay_id} and sku='{$sku}' and is_show = 0"; $ss = $dbcon->execute($ss); $ss = $dbcon->fetch_one($ss); if ($ss['amount'] < $num) { $res['res_code'] = '502'; $res['res_msg'] = "实际配货数量为{$ss['amount']}比输入的数量小!"; $res['sku'] = $sku; echo json_encode($res); exit; } if ($ss['amount'] == $num) { $sql = "update ebay_order_scan_record set amount=0,is_show=1,canceltime='{$mctime}' where ebay_id={$ebay_id} and sku= '{$sku}' and is_show = 0 "; } else { $sql = "update ebay_order_scan_record set amount=amount-{$num} where ebay_id={$ebay_id} and sku= '{$sku}' and is_show = 0 "; } $update_sql = "UPDATE ebay_onhandle SET goods_count=goods_count+{$num} WHERE store_id ={$defaultstoreid} AND goods_sn ='{$sku}' AND ebay_user ='******'"; $note = "PDA异常退货入库sku[{$sku}]{$num}个!"; if ($dbcon->execute($update_sql) && $dbcon->execute($sql)) { into_warehouse_log($sku, $num, $note, '异常订单PDA扫描入库', $truename, $ebay_id); $res['res_code'] = "200"; $res['res_msg'] = "{$sku}入库{$num}个成功!"; $res['sku'] = $sku; echo json_encode($res); exit; } else { $res['res_code'] = '001'; $res['res_msg'] = "入库失败,请重新扫描订单!"; echo json_encode($res); exit; } }
public function act_recheckInfoSubmit() { $shipOrderGroup = isset($_POST['orderid']) ? $_POST['orderid'] : ''; if (empty($shipOrderGroup)) { self::$errCode = 0; self::$errMsg = '请输入提货单信息!'; return; } $sku = isset($_POST['sku']) ? trim($_POST['sku']) : 0; $sku = get_goodsSn($sku); if (empty($sku)) { self::$errCode = 0; self::$errMsg = '请输入sku'; return; } $num = isset($_POST['num']) ? intval($_POST['num']) : 0; if ($num < 1) { self::$errCode = 0; self::$errMsg = '请输入正确的数量'; return; } $skulist = ReviewBModel::getReviewListB("*", "where shipOrderGroup='{$shipOrderGroup}' and sku='{$sku}' and status=0"); if (empty($skulist)) { self::$errCode = 0; self::$errMsg = '该料号[' . $sku . ']已复核或者不存在,请确认'; return; } if ($num != $skulist[0]['totalNums']) { self::$errCode = 0; self::$errMsg = '提货单数量为[' . $skulist[0]['totalNums'] . '],请确认'; return; } $data = array('amount' => $num, 'snapStock' => $num, 'scanTime' => time(), 'scanUserId' => $_SESSION['userId'], 'status' => 1); $update_info = ReviewBModel::update($data, "and shipOrderGroup='{$shipOrderGroup}' and sku='{$sku}' and status=0 "); if ($update_info) { $skulist = ReviewBModel::getReviewListB("*", "where shipOrderGroup='{$shipOrderGroup}' and status=0"); if (empty($skulist)) { self::$errCode = 2; self::$errMsg = '提货单复核完成'; return; } else { self::$errCode = 1; self::$errMsg = '料号及数量正确,请复核下一料号'; return $skulist; } } else { self::$errCode = 0; self::$errMsg = '料号[' . $sku . ']复核失败'; return; } }
/** * Pda_makeAssignListAct::act_checkNum() * 检测输入的料号数量并提交 * @return void */ public function act_checkSkuNum() { $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $sku_num = intval(trim($_POST['sku_num'])); if (!$sku_num || !$sku) { self::$errCode = '001'; self::$errMsg = '信息不完整!'; return FALSE; } if ($sku_num < 0) { self::$errCode = '002'; self::$errMsg = '调拨数量不能小于0!'; return FALSE; } $actualStock = whShelfModel::selectSkuNums($sku, 1); //获取A仓库的总库存 if ($actualStock < $sku_num) { self::$errCode = '003'; self::$errMsg = '调拨数量不能该料号的实际库存!'; return FALSE; } $location = WhGoodsAssignModel::getSkuLocation($sku, 1, $sku_num); if (!$location) { self::$errCode = '004'; self::$errMsg = '没有满足调拨数量的仓位!'; return FALSE; } $res = WhGoodsAssignModel::getDetail('0', " and a.sku ='{$sku}'"); //检测是否有未生成调拨单的该料号信息 if (empty($res)) { $info = WhGoodsAssignModel::insertAssignDetail(0, $sku, $sku_num, $location); //插入调拨详情表 } else { $nums = $res['num'] + $sku_num; //调拨数量总和 $info = WhGoodsAssignModel::updateAssignDetail(array('id' => $res['id']), array('num' => $nums)); } if ($info) { self::$errCode = '200'; self::$errMsg = '请输入下一料号!'; return TRUE; } else { self::$errCode = '005'; self::$errMsg = '插入料号失败!'; return FALSE; } }
function act_checkSkuNum() { $assignNUmber = $_POST['order_group']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $sku_num = intval($_POST['sku_num']); if (!is_numeric($sku_num)) { self::$errCode = '001'; self::$errMsg = '请输入正确数量!'; return false; } $goodsAssignId = intval($_POST['now_group_id']); $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'"); //获取sku信息 $sku_info = WhGoodsAssignModel::getDetail($goodsAssignId, " and a.sku='{$sku}'"); //调拨单明细中的sku信息 if ($sku_info['inCheckNum'] >= $sku_info['assignNum']) { self::$errCode = '002'; self::$errMsg = '该料号已接收复核完毕!'; return false; } $inCheckNum = $sku_info['inCheckNum'] + $sku_num; if ($inCheckNum > $sku_info['assignNum']) { self::$errCode = '003'; self::$errMsg = '接收数不能大于配货数!'; return false; } $where = array('goodsAssignId' => $goodsAssignId, 'sku' => $sku); //生成where条件 $update = array('inCheckNum' => $inCheckNum); //if($inCheckNum == $sku_info['assignNum']){ $update['inCheckTime'] = time(); $update['inCheckUid'] = $_SESSION['userId']; $checkAssignList = true; //} $arr = array('sku' => $sku, 'sku_amount' => $sku_info['assignNum'], 'check_num' => $inCheckNum); $info = WhGoodsAssignModel::updateAssignDetail($where, $update); if (!$info) { self::$errCode = "004"; self::$errMsg = "更新接收明细失败!"; return false; } self::$errCode = "200"; self::$errMsg = isset($checkAssignList) ? '该料号接收复核完毕' : '该料号已复核,请录入下一料号!'; return $arr; }
public function act_selectsku() { $sku = isset($_POST['sku']) ? trim($_POST['sku']) : ""; $sku = get_goodsSn($sku); $goodsinfo = wrapperSkuOutModel::skuinfo($sku); $res = array(); if (empty($goodsinfo)) { self::$errCode = 3; self::$errMsg = "<font color='red'>系统没有相应包装材料,请核对!</font>" . $sku; return $sku; } else { self::$errCode = 2; self::$errMsg = "包装材料正确,请扫描仓位!"; $cguser = getUserNameById($goodsinfo['purchaseId']); $res['res_info'] = $goodsinfo['goodsName'] . "<br>采购:" . $cguser; $res['sku'] = $sku; return $res; } }
public static function act_getImgBySku() { $sku = isset($_POST['sku']) ? $_POST['sku'] : ''; $size = isset($_POST['size']) ? $_POST['size'] : 100; if (empty($sku)) { self::$errCode = 400; self::$errMsg = "sku参数有误!"; return false; } $sku = get_goodsSn($sku); $resUrl = ''; $url = CommonModel::getImgBySku($sku, $size); if ($url) { self::$errMsg = $sku; $resUrl = $url; } else { self::$errMsg = $sku; $resUrl = './images/no_image.gif'; } return $resUrl; }
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); } }
function act_submitInfo() { $userId = $_SESSION['userId']; $show_mes = array(); $shipOrderGroup = $_POST['order_group']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $submit_orders = trim($_POST['submit_orders'], ','); $submit_nums = trim($_POST['submit_nums'], ','); $group_id = $_POST['now_group_id']; $now_sku = trim($_POST['now_sku']); $now_sku = get_goodsSn($now_sku); $now_pname = $_POST['now_pname']; $orders_arr = explode(',', $submit_orders); $nums_arr = explode(',', $submit_nums); if ($sku != $now_sku) { $sku = $now_sku; } if ($sku != 'undefined') { foreach ($orders_arr as $key => $order) { $i_data = array('status' => 1, 'amount' => $nums_arr[$key]); $inser_info = GroupDistributionModel::update($i_data, "and shipOrderGroup='{$shipOrderGroup}' and sku='{$sku}' and shipOrderId='{$order}'"); if ($inser_info) { //outskunums2($sku,$nums_arr[$key],$order); //出库记录 $position_info = OmAvailableModel::getTNameList("wh_position_distribution", "id", "where pName='{$now_pname}' and storeId=1"); $positionId = $position_info[0]['id']; $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'"); $paraArr = array('ordersn' => $order, 'sku' => $sku, 'amount' => $nums_arr[$key], 'purchaseId' => $skuinfo['purchaseId'], 'ioType' => 1, 'ioTypeId' => 2, 'userId' => $userId, 'reason' => '清单配货出库', 'positionId' => $positionId); $WhIoRecordsAct = new WhIoRecordsAct(); $WhIoRecordsAct->act_addIoRecoresForWh($paraArr); //出库记录 $this->inser_scan_record_by_sku($order, $sku, $nums_arr[$key], $userId); //插入扫描表 $complete_sql = GroupDistributionModel::getGroupDistList("*", "where shipOrderGroup='{$shipOrderGroup}' and shipOrderId='{$order}' and status=0"); if (empty($complete_sql)) { //更新订单到复核状态 GroupDistributionModel::updateShipOrder(array('orderStatus' => 403), "and id='{$order}' and orderStatus=402"); WhPushModel::pushOrderStatus($order, 'STATESHIPPED_PENDREVIEW', $_SESSION['userId'], time()); //状态推送 } } } } $status_sql = GroupDistributionModel::getGroupDistList("*", "where shipOrderGroup='{$shipOrderGroup}' and status=0"); if (empty($status_sql)) { self::$errCode = 1; self::$errMsg = "配货清单出库完成,请扫描下一清单1!"; return true; } else { $show_info = array(); $show_sql = GroupDistributionModel::getGroupSkuInfo("and a.shipOrderGroup='{$shipOrderGroup}' and a.status=0 and a.groupId>'{$group_id}' group by a.pName order by a.groupId asc"); if (!empty($show_sql)) { foreach ($show_sql as $show) { $order_sku_info = $this->get_valid_order($show['shipOrderGroup'], $show['sku'], $show['pName']); if ($order_sku_info['sku_amount'] != 0) { $show_info['group_id'] = $show['groupId']; $show_info['sku'] = $show['sku']; $show_info['sku_amount'] = $order_sku_info['sku_amount']; $show_info['goods_location'] = $show['pName']; break; } } } if (empty($show_info)) { $show_info2 = array(); $show_sql = GroupDistributionModel::getGroupSkuInfo("and a.shipOrderGroup='{$shipOrderGroup}' and a.status=0 and a.groupId<'{$group_id}' group by a.pName order by a.groupId asc"); if (!empty($show_sql)) { foreach ($show_sql as $show) { $order_sku_info = $this->get_valid_order($show['shipOrderGroup'], $show['sku'], $show['pName']); if ($order_sku_info['sku_amount'] != 0) { $show_info2['group_id'] = $show['groupId']; $show_info2['sku'] = $show['sku']; $show_info2['sku_amount'] = $order_sku_info['sku_amount']; $show_info2['goods_location'] = $show['pName']; break; } } } else { self::$errCode = 1; self::$errMsg = "配货清单出库完成,请扫描下一清单2!"; return true; } if (!empty($show_info2)) { $show_mes = $show_info2; } else { self::$errCode = 1; self::$errMsg = "配货清单出库完成,请扫描下一清单3!"; return true; } } else { $show_mes = $show_info; } self::$errMsg = "出库成功,请扫描下一个料号!"; return $show_mes; } }
public function act_whShelf() { //print_r($_POST); $log_file = 'whselfB_log/' . date('Ymd') . '.txt'; //日志文件路径 $date = date('Y-m-d H:i:s'); $userCnName = $_SESSION['userCnName']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $nums = $_POST['nums']; $now_position_id = intval(trim($_POST['now_position_id'])); //现在存放该料号的仓位id $goodsAssignId = intval(trim($_POST['now_group_id'])); $positionId = intval(trim($_POST['position_id'])); //分配的仓位id $assignList = WhGoodsAssignModel::getAssignList("and a.id = {$goodsAssignId}", '', '', ''); if ($assignList[0]['status'] != 106) { self::$errCode = 400; self::$errMsg = "该调拨单不在等待上架状态!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } if (empty($sku)) { self::$errCode = 401; self::$errMsg = "sku不能为空"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } if (empty($now_position_id) && !$positionId) { self::$errCode = 401; self::$errMsg = "上架仓位不能为空"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } if ($nums < 1) { self::$errCode = 403; self::$errMsg = "上架数量不能小于1"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } $sku_info = WhGoodsAssignModel::getDetail($goodsAssignId, " and a.sku='{$sku}' and a.inCheckNum != 0"); if (empty($sku_info)) { self::$errCode = "404"; self::$errMsg = "该调拨单无此料号!"; return FALSE; } $whselfNums = $nums + $sku_info['whselfNum']; if ($whselfNums > $sku_info['assignNum']) { self::$errCode = "405"; self::$errMsg = "总上架数不能大于配货数!"; return FALSE; } $where = " where sku = '{$sku}'"; $skuinfo = whShelfModel::selectSku($where); if (empty($skuinfo)) { self::$errCode = 404; self::$errMsg = "无该料号信息"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s \r\n", $sku, $date, self::$errMsg); write_log($log_file, $log_info); return false; } else { $skuId = $skuinfo['id']; $purchaseId = $skuinfo['purchaseId']; } $ioTypeId = 35; //35 调拨入库上架 出入库类型表id $return_num = $nums; $in_positionId = 0; $userId = $_SESSION['userId']; //$where = "where pId ={$skuId} and positionId = {$now_position_id} and is_delete=0 and storeId = 2"; TransactionBaseModel::begin(); if ($now_position_id) { //存在料号仓位关系 $positioninfo = whShelfModel::selectRelationShip('', '', 2, $now_position_id); //检测该料号是否有对应仓位关系 /***无料号对应仓位的关系时更新关系表***/ $relationId = $positioninfo[0]['id']; $positionId = $positioninfo[0]['positionId']; //仓位id $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$relationId}'"); if (!$update_position) { self::$errCode = 410; self::$errMsg = "更新仓位库存失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $update_position, $num, $select_now_store); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s') . '更新仓位库存成功!' . "{$sku}\r\n"); } else { if ($positionId) { //没有料号仓位关系则插入一条数据 $relationId = whShelfModel::insertRelation($skuinfo['id'], $positionId, $nums, 2); //插入关系表 //$update_position = whShelfModel::updateProductPositionRelation($nums,"where id='$relationId'"); if (!$relationId) { self::$errCode = 410; self::$errMsg = "插入仓位关系失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $update_position, $num, $select_now_store); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s') . '插入仓位关系成功!' . "{$sku}\r\n"); } } /**** 更新总库存 *****/ $actualStock = whShelfModel::selectSkuNums($sku, 2); if (!empty($actualStock)) { $where = "where sku='{$sku}' and storeId=2"; $info = whShelfModel::updateStoreNum($nums, $where); if (!$info) { self::$errCode = 412; self::$errMsg = "更新总库存失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $info, $nums, $where); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s') . '更新总库存成功!' . "{$sku}\r\n"); } else { $info = whShelfModel::insertStore($sku, $nums, 2); if (!$info) { self::$errCode = 413; self::$errMsg = "更新总库存失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s, %s \r\n", $sku, $date, self::$errMsg, $info, $sku, $nums); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s') . '更新总库存成功!' . "{$sku}\r\n"); } /**** 插入出入库记录 *****/ $paraArr = array('sku' => $sku, 'amount' => $nums, 'positionId' => $positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => $ioTypeId, 'userId' => $userId, 'reason' => '调拨入库上架'); $record = CommonModel::addIoRecores($paraArr); //出库记录 if (!$record) { self::$errCode = 414; self::$errMsg = "插入出入库记录失败!"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s,返回值:%s, 参数:%s \r\n", $sku, $date, self::$errMsg, $record, json_encode($paraArr)); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } write_log($log_file, date('Y-m-d H:i:s') . '插入入库记录成功!' . "{$sku}\r\n"); //更新调拨单料号上架数量 $where = array('goodsassignId' => $goodsAssignId, 'sku' => $sku); $update = array('whselfNum' => $whselfNums); $info = WhGoodsAssignModel::updateAssignDetail($where, $update); if ($info === FALSE) { self::$errCode = 415; self::$errMsg = "更新上架数量失败"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s ,参数:s%\r\n", $sku, $date, self::$errMsg, $nums); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } //更新料号调拨库存 $where = array('sku' => $sku, 'storeId' => $assignList[0]['outStoreId']); $update = array('assignStock' => "assignStock - {$nums}"); $info = WhGoodsAssignModel::updateSkuLocation($where, $update); if ($info == FALSE) { self::$errCode = 416; self::$errMsg = "更新调拨库存失败"; $log_info = sprintf("料号:%s, 时间:%s,错误信息:%s ,参数:s%\r\n", $sku, $date, self::$errMsg, $nums); write_log($log_file, $log_info); TransactionBaseModel::rollback(); return false; } /** 同步老ERP库存**/ $pName = whShelfModel::selectPositionInfo('pName', array('id' => $positionId)); //获取仓位名称 $pName = $pName['pName']; $info = CommonModel::updateIoRecord($sku, $nums, 1, '仓库调拨入库上架', $_SESSION['userCnName'], $pName); //var_dump($info);exit; if ($info['errCode'] != 200) { TransactionBaseModel::rollback(); self::$errCode = "004"; self::$errMsg = "同步旧ERP库存失败!"; $log_info = sprintf("料号:%s, 时间:%s,信息:%s ,参数:%s\r\n", $sku, $date, self::$errMsg, is_array($info) ? json_encode($info) : $info); write_log($log_file, $log_info); return false; } TransactionBaseModel::commit(); self::$errMsg = "料号[{$sku}]上架成功!"; return true; }
function act_checkSkuNum() { $orderId = intval(trim($_POST['orderId'])); $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); //转义sku $sku_num = intval(trim($_POST['sku_num'])); if (!$orderId) { self::$errCode = "001"; self::$errMsg = "请扫描订单id!"; return FALSE; } if (!$sku) { self::$errCode = "002"; self::$errMsg = "请扫描料号!"; return FALSE; } if (!$sku_num) { self::$errCode = "003"; self::$errMsg = "请输入料号接收数!"; return FALSE; } $where = array('orderId' => $orderId, 'sku' => $sku); $sku_info = Pda_orderOutBModel::selectOrderRecord($where); //获取订单下该料号的信息 if (empty($sku_info)) { self::$errCode = "004"; self::$errMsg = "该订单没有此料号!"; return FALSE; } $sku_info = $sku_info[0]; $now_num = $sku_num + $sku_info['checkNum']; //已接收数加上本次接收数 if (!is_numeric($sku_num) || $now_num <= 0) { self::$errCode = "005"; self::$errMsg = "接收总数必须大于0,请确认!"; return FALSE; } if ($sku_info['scanNum'] < $now_num) { self::$errCode = "006"; self::$errMsg = "接收数不能大于订单配货数!"; return false; } $uid = $_SESSION['userId']; $scanTime = time(); $where = array('orderId' => $orderId, 'sku' => $sku); //拼接where条件 $update = array('checkUser' => $uid, 'checkTime' => $scanTime, 'checkNum' => $now_num); //拼接更新字段 $info = Pda_orderOutBModel::updateOrderRecord($where, $update); if ($info == FALSE) { self::$errCode = "007"; self::$errMsg = "更新料号状态失败!"; return FALSE; } $where = array('orderId' => $orderId, 'checkUser' => 0); $info = Pda_orderOutBModel::selectOrderRecord($where); //查看该订单下是否还有未接受料号 if (empty($info)) { self::$errCode = "200"; self::$errMsg = "该订单接收完成,请扫描下一订单号!"; return TRUE; } self::$errCode = "0"; self::$errMsg = "接收成功,请扫描下一个料号!"; $arr['sku'] = $sku; $arr['num'] = $sku_info['scanNum']; $arr['assignNum'] = $now_num; return $arr; }
/** * pda扫描退箱,包含整箱退和部分退 * add time:2014-05-07 * add name:wangminwei */ public function view_pdaReturnBox() { $boxId = isset($_GET['boxId']) ? $_GET['boxId'] : ''; $sku = isset($_GET['sku']) ? $_GET['sku'] : ''; $num = isset($_GET['num']) ? $_GET['num'] : ''; $ismark = $_GET['ismark']; $sku = get_goodsSn($sku); $boxObj = new OwInBoxStockModel(); $rtnCode = $boxObj->pdaCheckReturnBox($boxId, $sku, $num, $ismark); switch ($rtnCode) { case 'Null': $rtnData['code'] = '404'; $rtnData['msg'] = '箱号信息有误'; break; case 'noPass': $rtnData['code'] = '403'; $rtnData['msg'] = '箱子未发出,无需退箱'; break; case 'moreQty': $rtnData['code'] = '405'; $rtnData['msg'] = '退箱料号数量超过装箱料号数量'; break; case 'sameQty': $rtnData['code'] = '406'; $rtnData['msg'] = '退箱数量与装箱数量相同,请退整箱'; break; case 'failure': $rtnData['code'] = '407'; $rtnData['msg'] = '退箱失败'; break; case 'success': $rtnData['code'] = '200'; $rtnData['msg'] = '退箱成功'; break; default: $rtnData['code'] = '409'; $rtnData['msg'] = '数据有问题'; break; } $rtnData['sku'] = $sku; echo json_encode($rtnData); }
public function act_whReturnSkuShelf() { //print_r($_POST); $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $nums = $_POST['nums']; $select_now_position = $_POST['select_now_position']; $select_now_store = $_POST['select_now_store']; $select_hope_position = $_POST['select_hope_position']; $select_hope_store = $_POST['select_hope_store']; if (empty($sku)) { self::$errCode = 401; self::$errMsg = "sku不能为空"; return false; } if (empty($select_now_position) && empty($select_now_store) && empty($select_hope_position) && empty($select_hope_store)) { self::$errCode = 401; self::$errMsg = "上架位置不能为空"; return false; } $where = "where sku='{$sku}' and status=0"; $tallying_list = PostReturnModel::getReturnList("*", $where); if (empty($tallying_list)) { self::$errCode = 402; self::$errMsg = "无该料号退回信息"; return false; } else { $tallying_num = 0; foreach ($tallying_list as $tallying) { $tallying_num += $tallying['ichibanNums'] - $tallying['shelvesNums']; } if ($nums > $tallying_num) { self::$errCode = 402; self::$errMsg = "上架数不能大于qc良品数[{$tallying_num}]"; return false; } } if ($nums < 1) { self::$errCode = 403; self::$errMsg = "入库数量不能小于1"; return false; } $where = " where sku = '{$sku}'"; $skuinfo = whShelfModel::selectSku($where); if (empty($skuinfo)) { self::$errCode = 404; self::$errMsg = "无该料号信息"; return false; } else { $skuId = $skuinfo['id']; $purchaseId = $skuinfo['purchaseId']; } $userId = $_SESSION['userId']; $in_positionId = 0; TransactionBaseModel::begin(); /***无料号对应仓位的关系时更新关系表***/ if ($select_hope_store != 0 || $select_hope_position != 0) { $type = 1; $positionId = $select_hope_position; if ($select_hope_store != 0) { $type = 2; $positionId = $select_hope_store; } $in_positionId = $positionId; $tname = "wh_product_position_relation"; $set = "set pId='{$skuId}',positionId='{$positionId}',nums='{$nums}',type='{$type}'"; $insert_relation = OmAvailableModel::insertRow($tname, $set); if (!$insert_relation) { self::$errCode = 408; self::$errMsg = "插入关系表失败!"; TransactionBaseModel::rollback(); return false; } //更新仓位使用状态 $update_position = OmAvailableModel::updateTNameRow("wh_position_distribution", "set is_enable=1", "where id={$positionId}"); if ($update_position === false) { self::$errCode = 409; self::$errMsg = "更新仓位使用状态失败!"; TransactionBaseModel::rollback(); return false; } } //更新指定仓位存货数量 if ($select_now_store != 0) { $positioninfo = whShelfModel::selectRelation("where id={$select_now_store}"); $in_positionId = $positioninfo[0]['positionId']; $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_store}'"); if (!$update_position) { self::$errCode = 410; self::$errMsg = "更新仓位库存失败!"; TransactionBaseModel::rollback(); return false; } } if ($select_now_store == 0 && $select_hope_position == 0 && $select_hope_store == 0) { $positioninfo = whShelfModel::selectRelation("where id={$select_now_position}"); $in_positionId = $positioninfo[0]['positionId']; $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_position}'"); if (!$update_position) { self::$errCode = 411; self::$errMsg = "更新仓位库存失败!"; TransactionBaseModel::rollback(); return false; } } /**** 更新总库存 *****/ $where = "where sku='{$sku}'"; $info = whShelfModel::updateStoreNumOnly($nums, $where); if (!$info) { self::$errCode = 412; self::$errMsg = "更新总库存失败!"; TransactionBaseModel::rollback(); return false; } /**** 插入出入库记录 *****/ $paraArr = array('sku' => $sku, 'amount' => $nums, 'positionId' => $in_positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => 14, 'userId' => $userId, 'reason' => '退货料号入库'); $record = CommonModel::addIoRecores($paraArr); //出库记录 if (!$record) { self::$errCode = 413; self::$errMsg = "插入出入库记录失败!"; TransactionBaseModel::rollback(); return false; } //更新邮局退回记录状态 $where = "where sku='{$sku}' and status=0 and ichibanNums>0"; $list = PostReturnModel::getReturnList("*", $where); $i = 0; while ($list[$i] && $nums) { $need_nums = $list[$i]['ichibanNums'] - $list[$i]['shelvesNums']; if ($nums >= $need_nums) { //更改状态 $msg = PostReturnModel::updateReturnStatus($list[$i]['id'], $need_nums); if (!$msg) { self::$errCode = 413; self::$errMsg = "更新邮局退回记录状态失败!"; TransactionBaseModel::rollback(); return false; } $nums = $nums - $need_nums; } else { $msg = PostReturnModel::updateReturnShelfNum($list[$i]['id'], $nums); if (!$msg) { self::$errCode = 414; self::$errMsg = "更新邮局退回记录已上架数量失败!"; TransactionBaseModel::rollback(); return false; } $nums = 0; } $i++; } TransactionBaseModel::commit(); self::$errMsg = "料号[{$sku}]入库成功!"; return true; }
public function act_postalldate() { $sku = isset($_POST['sku']) ? trim($_POST['sku']) : ''; $ebay_id = isset($_POST['ebay_id']) ? trim($_POST['ebay_id']) : ''; $sku = get_goodsSn($sku); $num = intval($_POST['num']); if ($num < 0) { self::$errCode = 502; self::$errMsg = "{$sku}入库数量{$num}有误,请重新扫描订单!"; return $sku; } if (empty($ebay_id) || empty($sku)) { self::$errCode = 503; self::$errMsg = "入库数据有误,请重新扫描订单!"; return $sku; } $checkonhandle = skuReturnModel::selectStockRecord($sku); if (!$checkonhandle) { self::$errCode = 504; self::$errMsg = "{$sku}产品未导入库存信息表!"; return $sku; } $msg = skuReturnModel::selectscanRecord($sku, $ebay_id); if ($msg['amount'] < $num) { self::$errCode = 506; self::$errMsg = "实际配货数量为{$msg['amount']}比输入的数量小!"; return $sku; } if ($msg['amount'] == $num) { $info1 = skuReturnModel::updatescanRecord("all", $ebay_id, $sku); } else { $info1 = skuReturnModel::updatescanRecord($num, $ebay_id, $sku); } //$update_sql = "UPDATE ebay_onhandle SET goods_count=goods_count+$num WHERE store_id ={$defaultstoreid} AND goods_sn ='{$sku}' AND ebay_user ='******'"; $info = skuReturnModel::updateStock($sku, $num); //$note = "PDA异常退货入库sku[{$sku}]{$num}个!"; if ($info && $info1) { //into_warehouse_log($sku,$num,$note,'异常订单PDA扫描入库',$truename,$ebay_id); self::$errCode = 200; self::$errMsg = "{$sku}入库{$num}个成功!"; return $sku; } else { self::$errCode = 505; self::$errMsg = "入库失败,请重新扫描订单!"; return; } }
function act_searchSku() { $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $eosr_arr = whShelfModel::selectSkuNums($sku); if (empty($eosr_arr)) { self::$errCode = "401"; self::$errMsg = "找不到该料号的库存信息!"; return false; } else { $info = GroupRouteModel::getSkuPosition("where a.sku='{$sku}' and b.is_delete=0"); self::$errCode = "400"; self::$errMsg = '成功搜索该料号信息!' . $sku; return $info; } }
function act_searchSku() { $order_id = $_POST['ebay_id']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $now_pname = trim($_POST['now_pname']); $state_status = array(402); //准备状态 $final_status = array(403); //配货完成状态 $no_express_delivery = array('中国邮政平邮', '中国邮政挂号', '香港小包平邮', '香港小包挂号', '德国邮政', '新加坡邮政', 'EUB', 'Global Mail'); //先核对订单 //兼容 EUB或者 包裹 扫描的是 trackno 而非ebayid $p_real_ebayid = '#^\\d+$#'; $p_trackno_eub = '#^(LK|RA|RB|RC|RR|RF|LN)\\d+(CN|HK|DE200)$#'; $is_eub_package_type = false; if (preg_match($p_real_ebayid, $order_id)) { } else { if (preg_match($p_trackno_eub, $order_id)) { $is_eub_package_type = true; } else { self::$errCode = "001"; self::$errMsg = "订单号[" . $order_id . "]格式有误"; return false; } } if ($is_eub_package_type === true) { $ordercheck = ShippingOrderModel::getShippingOrderInfo("b.*", "where a.tracknumber='{$order_id}' and a.is_delete=0"); } else { $ordercheck = ShippingOrderModel::getShippingOrder("*", "where id='{$order_id}'"); } if (empty($ordercheck)) { self::$errCode = '001'; self::$errMsg = '未找到订单/跟踪号[' . $order_id . ']'; return false; } else { $ebay_carrier = CommonModel::getShipingNameById($ordercheck[0]['transportId']); //$ebay_carrier = '中国邮政平邮'; if (!in_array($ebay_carrier, $no_express_delivery)) { self::$errCode = '001'; self::$errMsg = '请选择非快递订单!'; return false; } } if ($ordercheck[0]['orderStatus'] == 900) { self::$errCode = '002'; self::$errMsg = "该发货单[{$order_id}][已经废弃]!"; return false; } else { if (in_array($ordercheck[0]['orderStatus'], $final_status)) { self::$errCode = '005'; self::$errMsg = "该发货单已经扫描完成!"; return false; } } if (!in_array($ordercheck[0]['orderStatus'], $state_status)) { self::$errCode = '002'; self::$errMsg = "该发货单[{$order_id}][不在待配货]!"; return false; } //配货单所有料号及数量 $skuinfos = array(); $skuinfo = GroupRouteModel::getOrderPositionID($ordercheck[0]['id']); foreach ($skuinfo as $info) { $s_key = $info['sku'] . "-" . $info['pName']; $skuinfos[$s_key] = $info['amount']; } $eosr_arr = OrderPickingRecordsModel::getPickingRecords("*", "where shipOrderId={$ordercheck[0]['id']} and sku='{$sku}' and is_delete=0"); if (!$eosr_arr) { self::$errCode = "012"; self::$errMsg = "请扫描正确料号!"; return false; } else { $sku_stock = GroupRouteModel::getSkuPosition("where a.sku='{$sku}' and c.pName='{$now_pname}' and b.is_delete=0"); $s_key = $sku . "-" . $now_pname; $goods_sn = array(); //$gsi = get_sku_info($sku); $goods_sn['sku'] = $sku; //$goods_sn['gc'] = $gsi['realnums']; $goods_sn['gc'] = isset($sku_stock[0]['nums']) ? $sku_stock[0]['nums'] : 0; //$goods_sn['day']= floor($gsi['realnums']/$gsi['everyday_sale']); //库存天数 $goods_sn['day'] = ""; //库存天数 $goods_sn['nums'] = $skuinfos[$s_key]; $goods_sn['is_scan'] = $eosr_arr[0]['isScan'] == 1 ? "已扫描" : "未扫描"; //$eg = GroupRouteModel::getSkuPosition("where a.sku='$sku'"); $goods_sn['gl'] = $now_pname; self::$errCode = "400"; self::$errMsg = '成功搜索该料号信息!' . $sku; return $goods_sn; } }
function act_checkSku() { $shipOrderGroup = $_POST['order_group']; $sku = trim($_POST['sku']); $now_sku = trim($_POST['now_sku']); $sku = get_goodsSn($sku); $now_sku = get_goodsSn($now_sku); if ($sku != $now_sku) { self::$errCode = "003"; self::$errMsg = "所扫描料号与当前料号不符,请确认!"; return $sku; } $sku_info = GroupDistributionBModel::getGroupDistListB("*", "where shipOrderGroup='{$shipOrderGroup}' and sku='{$sku}' and status=0"); if (empty($sku_info)) { self::$errCode = "004"; self::$errMsg = "该料号已扫描出库,请扫描其他料号!"; return false; } else { self::$errMsg = "请输入该料号实际出库配货数量!"; return $sku; } }
function act_checkSkuNum() { $bool = false; //标志是否有摒弃订单 $assignNUmber = $_POST['order_group']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'"); //获取sku信息 //print_r($skuinfo);exit; //var_dump($skuinfo);exit; //$sku = getGoodsSn2($sku); $sku_num = $_POST['sku_num']; $assignId = $_POST['now_group_id']; $now_pname = $_POST['now_pname']; $sku_info = WhGoodsAssignModel::getDetail($assignId, " and a.sku='{$sku}' and a.checkUid=0"); //调拨单明细中的sku信息 //$sku_onhand = GroupDistributionModel::getSkuPositionStock("and c.sku='$sku' and b.pName='$now_pname'"); //$order_sku_info = $this->get_valid_order($sku_info[0]['shipOrderGroup'],$sku_info[0]['sku'],$sku_info[0]['pName']); $now_num = $sku_num + $sku_info['assignNum']; //已配货数加上本次配货数 if (!is_numeric($sku_num) || $now_num < 0) { self::$errCode = "007"; self::$errMsg = "出库数量必须为正整数,请确认!"; return false; } if ($sku_info['num'] < $now_num) { self::$errCode = "008"; self::$errMsg = "配货数量不能大于原始需求数量!"; return false; } //print_r($sku_info);exit; $erp_onhand = CommonModel::getErpSkuInfo($sku); //获取老ERP料号库存信息 if ($erp_onhand['errocode'] != 200) { self::$errCode = "014"; self::$errMsg = "拉取老ERP库存信息失败,请稍后再试!"; return false; } //根据转出仓库获取库存 $goods_count = $sku_info['storeId'] == 1 ? $erp_onhand['data']['goods_count'] : $erp_onhand['data']['second_count']; if ($sku_num > $goods_count) { self::$errCode = "009"; self::$errMsg = "配货数量不能大于旧ERP系统库存[{$goods_count}],请确认!"; return false; } $uid = $_SESSION['userId']; $scanTime = time(); $where = array('goodsAssignId' => $assignId, 'sku' => $sku); //拼接where条件 $update = array('scanUid' => $uid, 'scanTime' => $scanTime, 'assignNum' => "assignNum+{$sku_num}"); //拼接更新字段 TransactionBaseModel::begin(); $info = WhGoodsAssignModel::updateAssignDetail($where, $update); if ($info) { $where = array('sku' => $sku, 'storeId' => $sku_info['storeId']); $update = array('actualStock' => "actualStock - {$sku_num}", 'assignStock' => "assignStock + {$sku_num}"); $info = WhGoodsAssignModel::updateSkuLocation($where, $update); //更新wh_sku_location的调拨库存和总库存 if (!$info) { TransactionBaseModel::rollback(); self::$errCode = "010"; self::$errMsg = "更新总库存失败!"; return false; } $where = array('pId' => $skuinfo['id'], 'positionId' => $sku_info['positionId']); $update = array('nums' => "nums - {$sku_num}"); $info = WhGoodsAssignModel::updateProdcutPosition($where, $update); //更新wh_product_position_relation的仓位库存 if (!$info) { TransactionBaseModel::rollback(); self::$errCode = "011"; self::$errMsg = "更新仓位库存失败!"; return false; } /**** 插入出库记录 *****/ $paraArr = array('sku' => $sku, 'amount' => $sku_num, 'positionId' => $sku_info['positionId'], 'purchaseId' => $skuinfo['purchaseId'], 'ioType' => 1, 'ioTypeId' => 34, 'userId' => $_SESSION['userId'], 'reason' => '调拨出库'); $record = CommonModel::addIoRecores($paraArr); //出库记录 /** 暂时取消同步老ERP库存**/ $info = CommonModel::updateIoRecord($sku, $sku_num, 2, '仓库调拨', $_SESSION['userCnName'], $sku_info['pName']); //var_dump($info);exit; if ($info['errCode'] != 200) { TransactionBaseModel::rollback(); self::$errCode = "012"; self::$errMsg = "同步旧ERP库存失败!"; return false; } TransactionBaseModel::commit(); self::$errCode = "0"; self::$errMsg = "配货成功,请扫描下一个料号!"; $arr['sku'] = $sku; $arr['num'] = $sku_info['num']; $arr['assignNum'] = $sku_info['assignNum'] + $sku_num; return $arr; } else { self::$errCode = "013"; self::$errMsg = "更新料号状态失败!"; return false; } }
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); }
function act_scanNum() { $userId = $_SESSION['userId']; $order_id = trim($_POST['ebay_id']); $ebay_sku = trim($_POST['ebay_sku']); $ebay_sku = get_goodsSn($ebay_sku); $sku_num = trim($_POST['sku_num']); $state_status = array(PKS_WIQC); //先核对订单 $p_real_ebayid = '#^\\d+$#'; if (!preg_match($p_real_ebayid, $order_id)) { self::$errCode = "1100"; self::$errMsg = "订单号[" . $order_id . "]格式有误"; return false; } if ($is_eub_package_type === true) { $ordercheck = ShippingOrderModel::getShippingOrderInfo("b.*", "where a.tracknumber='{$order_id}' and a.is_delete=0"); } else { $ordercheck = ShippingOrderModel::getShippingOrder("*", "where id='{$order_id}'"); } if (empty($ordercheck)) { self::$errCode = '100'; self::$errMsg = '未找到订单[' . $order_id . ']'; return false; } else { if (!in_array($ordercheck[0]['orderStatus'], $state_status)) { self::$errCode = '100'; self::$errMsg = "该订单[{$order_id}]在" . LibraryStatusModel::getStatusNameByStatusCode($ordercheck[0]['orderStatus']) . "状态,请确认!"; return false; } } $bool = 0; $sku_info = OrderReviewModel::getReviewList("*", "where shipOrderId='{$ordercheck[0]['id']}' and sku='{$ebay_sku}' and is_delete=0 and storeId=1"); if (empty($sku_info)) { self::$errCode = '005'; self::$errMsg = '订单不存在该料号[' . $ebay_sku . '],请重试'; return false; } elseif ($sku_num != $sku_info[0]['totalNums']) { self::$errCode = '007'; self::$errMsg = '料号[' . $ebay_sku . ']正确数量应为[' . $sku_info[0]['totalNums'] . '],请检查输入数量'; $u_sql = OrderReviewModel::updateRow("set amount='{$sku_num}',isScan=1", "where shipOrderId='{$ordercheck[0]['id']}' and sku='{$ebay_sku}' and is_delete=0 and storeId=1"); } else { self::$errMsg = '料号[' . $ebay_sku . ']数量[' . $sku_info[0]['totalNums'] . ']正确,如无误请扫描下一料号 '; $u_sql = OrderReviewModel::updateRow("set amount='{$sku_num}',isScan=1", "where shipOrderId='{$ordercheck[0]['id']}' and sku='{$ebay_sku}' and is_delete=0 and storeId=1"); if ($u_sql) { $skuinfos = OrderReviewModel::getReviewList("*", "where shipOrderId='{$ordercheck[0]['id']}' and is_delete=0 and storeId=1"); } //判断料号是否全部符合正确 foreach ($skuinfos as $info) { if ($info['isScan'] == 0) { $bool = 0; break; } else { $bool = 1; } } } self::$errCode = $bool; return $skuinfos; }
public function act_whShelf() { //print_r($_POST); $userCnName = $_SESSION['userCnName']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $nums = $_POST['nums']; $select_now_position = $_POST['select_now_position']; $select_now_store = $_POST['select_now_store']; $select_hope_position = $_POST['select_hope_position']; $select_hope_store = $_POST['select_hope_store']; if (empty($sku)) { self::$errCode = 401; self::$errMsg = "sku不能为空"; return false; } if (empty($select_now_position) && empty($select_now_store) && empty($select_hope_position) && empty($select_hope_store)) { self::$errCode = 401; self::$errMsg = "上架位置不能为空"; return false; } /* $where = "where sku='{$sku}' and tallyStatus=0"; $tallying_list = packageCheckModel::selectList($where); if(empty($tallying_list)){ self::$errCode = 402; self::$errMsg = "无该料号点货信息"; return false; }else{ $tallying_num = 0; foreach($tallying_list as $tallying){ $tallying_num += $tallying['ichibanNums']-$tallying['shelvesNums']; } if($nums>$tallying_num){ self::$errCode = 402; self::$errMsg = "上架数不能大于点货良品数[{$tallying_num}]"; return false; } } */ if ($nums < 1) { self::$errCode = 403; self::$errMsg = "上架数量不能小于1"; return false; } $where = " where sku = '{$sku}'"; $skuinfo = whShelfModel::selectSku($where); if (empty($skuinfo)) { self::$errCode = 404; self::$errMsg = "无该料号信息"; return false; } else { $skuId = $skuinfo['id']; $purchaseId = $skuinfo['purchaseId']; } /* $purInfo = CommonModel::endPurchaseOrder($sku,$nums); //api获取采购订单处理情况 if($purInfo!=0){ self::$errCode = 405; self::$errMsg = "完结采购订单出错,上架失败"; return false; } //更新旧erp库存 $update_onhand = CommonModel::updateOnhand($sku,$nums); if($update_onhand==0){ self::$errCode = 415; self::$errMsg = "更新erp库存失败"; return false; }*/ $return_num = $nums; $in_positionId = 0; $userId = $_SESSION['userId']; TransactionBaseModel::begin(); /****插入采购未订单记录****/ /* if($return_num>0){ $where = " where sku = '{$sku}' and tallyStatus=0"; $list = whShelfModel::selectList($where); $purchaseId = $list[0]['purchaseId']; $totalNums = 0; foreach($list as $key=>$value){ $totalNums += $value['num']; } if ($return_num==$nums){ $reach_note = "sku[{$sku}]到货{$nums}个,未找到该料号的订单,请物料点货确认和采购补单!"; }else{ $reach_note = "sku[{$sku}]到货{$nums}个,入库完毕后还多余{$return_num}个,请物料点货确认和采购补单!"; } $msg = whShelfModel::insertNoOrder($sku,$return_num,$totalNums,$purchaseId,$userId,$reach_note); if(!$msg){ self::$errCode = whShelfModel::$errCode; self::$errMsg = whShelfModel::$errMsg; return false; } } */ /***无料号对应仓位的关系时更新关系表***/ if ($select_hope_store != 0 || $select_hope_position != 0) { $type = 1; $positionId = $select_hope_position; if ($select_hope_store != 0) { $type = 2; $positionId = $select_hope_store; } $in_positionId = $positionId; $tname = "wh_product_position_relation"; $set = "set pId='{$skuId}',positionId='{$positionId}',nums='{$nums}',type='{$type}',storeId=2"; $insert_relation = OmAvailableModel::insertRow($tname, $set); if (!$insert_relation) { self::$errCode = 408; self::$errMsg = "插入关系表失败!"; TransactionBaseModel::rollback(); return false; } //更新仓位使用状态 $update_position = OmAvailableModel::updateTNameRow("wh_position_distribution", "set is_enable=1", "where id={$positionId}"); if ($update_position === false) { self::$errCode = 409; self::$errMsg = "更新仓位使用状态失败!"; TransactionBaseModel::rollback(); return false; } } //更新指定仓位存货数量 if ($select_now_store != 0) { $positioninfo = whShelfModel::selectRelation("where id={$select_now_store}"); $in_positionId = $positioninfo[0]['positionId']; $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_store}'"); if (!$update_position) { self::$errCode = 410; self::$errMsg = "更新仓位库存失败!"; TransactionBaseModel::rollback(); return false; } } if ($select_now_store == 0 && $select_hope_position == 0 && $select_hope_store == 0) { $positioninfo = whShelfModel::selectRelation("where id={$select_now_position}"); $in_positionId = $positioninfo[0]['positionId']; $update_position = whShelfModel::updateProductPositionRelation($nums, "where id='{$select_now_position}'"); if (!$update_position) { self::$errCode = 411; self::$errMsg = "更新仓位库存失败!"; TransactionBaseModel::rollback(); return false; } } /**** 更新总库存 *****/ $actualStock = whShelfModel::selectSkuNums($sku, 2); if (!empty($actualStock)) { $where = "where sku='{$sku}' and storeId=2"; $info = whShelfModel::updateStoreNum($nums, $where); if (!$info) { self::$errCode = 412; self::$errMsg = "更新总库存失败!"; TransactionBaseModel::rollback(); return false; } } else { $info = packageCheckModel::insertStore($sku, $nums, 2); if (!$info) { self::$errCode = 412; self::$errMsg = "更新总库存失败!"; TransactionBaseModel::rollback(); return false; } } /**** 插入出入库记录 *****/ $paraArr = array('sku' => $sku, 'amount' => $nums, 'positionId' => $in_positionId, 'purchaseId' => $purchaseId, 'ioType' => 2, 'ioTypeId' => 13, 'userId' => $userId, 'reason' => '上架入库', 'storeId' => 2); $record = CommonModel::addIoRecores($paraArr); //出库记录 if (!$record) { self::$errCode = 413; self::$errMsg = "插入出入库记录失败!"; TransactionBaseModel::rollback(); return false; } /* //更新点货记录状态 $where = "where sku='{$sku}' and tallyStatus=0 and ichibanNums>0"; $list = packageCheckModel::selectList($where); $i = 0; while($list[$i]&&$nums){ $need_nums = $list[$i]['ichibanNums']-$list[$i]['shelvesNums']; if($nums >= $need_nums){ //更改状态 $msg = whShelfModel::updateTallyStatus($list[$i]['id'],$need_nums); if(!$msg){ self::$errCode = 413; self::$errMsg = "更新点货记录状态失败!"; TransactionBaseModel :: rollback(); return false; } $nums = $nums-$need_nums; }else{ $msg = whShelfModel::updateShelfNum($list[$i]['id'],$nums); if(!$msg){ self::$errCode = 414; self::$errMsg = "更新点货记录已上架数量失败!"; TransactionBaseModel :: rollback(); return false; } $nums = 0; } $i++; } */ /* $purInfo = CommonModel::endPurchaseOrder($sku,$return_num); //api获取采购订单处理情况 if($purInfo!=0){ self::$errCode = 405; self::$errMsg = "完结采购订单出错,上架失败"; TransactionBaseModel :: rollback(); return false; } //更新旧erp库存 $position_info = PositionModel::getPositionList("pName","where id={$in_positionId}"); $update_onhand = CommonModel::updateOnhand($sku,$return_num,$userCnName,$position_info[0]['pName']); if($update_onhand==0){ self::$errCode = 415; self::$errMsg = "更新旧erp库存失败"; TransactionBaseModel :: rollback(); return false; } */ TransactionBaseModel::commit(); self::$errMsg = "料号[{$sku}]上架成功!"; return true; }
function act_checkSkuNum() { $bool = false; //标志是否有摒弃订单 $assignNUmber = $_POST['order_group']; $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $sku_num = intval($_POST['sku_num']); $goodsAssignId = intval($_POST['now_group_id']); $sku_info = WhGoodsAssignModel::getDetail($goodsAssignId, " and a.sku='{$sku}' and a.scanUid != 0"); if (empty($sku_info)) { self::$errCode = "001"; self::$errMsg = "该调拨单无此出库复核料号!"; return FALSE; } else { if ($sku_info['assignNum'] <= $sku_info['outCheckNum']) { self::$errCode = "002"; self::$errMsg = "该料号已完成出库复核!"; return FALSE; } $outCheckNum = $sku_info['outCheckNum'] + $sku_num; //系统累计出库复核数量 if ($outCheckNum > $sku_info['assignNum']) { self::$errCode = "003"; self::$errMsg = "总复核数量不能大于配货数量,请确认!"; return false; } //print_r($sku_info);exit; $where = array('goodsAssignId' => $goodsAssignId, 'sku' => $sku); //生成where条件 $update = array('outCheckNum' => $outCheckNum); if ($outCheckNum >= $sku_info['assignNum']) { $update['checkTime'] = time(); $update['checkUid'] = $_SESSION['userId']; } $arr = array('sku' => $sku, 'sku_amount' => $sku_info['assignNum'], 'check_num' => $outCheckNum); $info = WhGoodsAssignModel::updateAssignDetail($where, $update); if (!$info) { self::$errCode = "004"; self::$errMsg = "更新出库明细复核数量失败!"; return $arr; } if (isset($update['checkUid'])) { $assignList = WhGoodsAssignModel::getDetail($goodsAssignId, ' and a.checkUid=0 and a.scanUid !=0'); if (empty($assignList)) { //该调拨单下所有料号复核完毕 $where = array('id' => $goodsAssignId); $update = array('statusTime' => time(), 'status' => 103); $info = WhGoodsAssignModel::updateAssignListStatus($where, $update); if ($info) { self::$errCode = "006"; self::$errMsg = "该调拨单出库复核完毕!"; return $arr; } else { self::$errCode = "005"; self::$errMsg = "调拨单更新失败!"; return FALSE; } } else { self::$errCode = "0"; self::$errMsg = "该料号复核完毕!"; return $arr; } } else { self::$errCode = "0"; self::$errMsg = "该料号已复核,请录入下一料号!"; return $arr; } } }
public function act_recheckInfoSubmit() { $orderid = isset($_POST['orderid']) ? intval($_POST['orderid']) : 0; if (empty($orderid)) { self::$errCode = 0; self::$errMsg = '请输入发货单信息!'; return; } $sku = isset($_POST['sku']) ? trim($_POST['sku']) : 0; $sku = get_goodsSn($sku); if (empty($sku)) { self::$errCode = 0; self::$errMsg = '请输入sku'; return; } $num = isset($_POST['num']) ? intval($_POST['num']) : 0; if ($num < 1) { self::$errCode = 0; self::$errMsg = '请输入正确的数量'; return; } $po_obj = new PackingOrderModel(); $orderinfo = $po_obj->getOrderInfoById($orderid); if (empty($orderinfo)) { self::$errCode = 0; self::$errMsg = '订单不存在!'; return; } if ($orderinfo['orderStatus'] != PKS_WIQC) { //该订单不在待复核状态 self::$errCode = 0; self::$errMsg = '该发货单不在待复核组!'; return; } $sod_obj = new ShipingOrderDetailModel(); $skulist = $sod_obj->getSkuListByOrderId($orderid); if (count($skulist) == 0) { //没有料号 self::$errCode = 0; self::$errMsg = '该订单下没有料号信息,请及时反馈!'; return; } $rr_obj = new ReviewRecordsModel(); $scan_rocords = $rr_obj->getRiewRecordsByOrderid($orderid); $scanskus = array(); foreach ($scan_rocords as $sval) { if (array_key_exists($sval['shipOrderdetailId'], $skulist)) { $scanskus[] = $sval['sku']; unset($skulist[$sval['shipOrderdetailId']]); } } if (in_array($sku, $scanskus)) { self::$errCode = 0; self::$errMsg = $sku . '已复核过了'; return; } $isfound = FALSE; $numcorrect = true; foreach ($skulist as $skuval) { if ($skuval['sku'] == $sku) { $isfound = $skuval; if ($skuval['amount'] != $num) { $numcorrect = false; } break; } } if ($isfound === FALSE) { //没找到对应的料号信息 self::$errCode = 0; self::$errMsg = '料号[' . $sku . ']不存在'; return; } if ($numcorrect == false) { self::$errCode = 0; self::$errMsg = '复核数量与分拣数不符'; return; } $data = array(); $data['orderid'] = $orderid; //单号 $data['detailid'] = $isfound['id']; //detailid号 $data['sku'] = $sku; //sku $data['amount'] = $num; //复核数量 $data['totalNums'] = $isfound['amount']; //料号原始总数 $data['userid'] = $_SESSION['userId']; //复核扫描用户id $data['storeId'] = 1; //仓库id $islast = 0; if (count($skulist) == 1) { //当前为最后一个复核sku $data['islast'] = TRUE; $islast = 1; } else { $data['islast'] = FALSE; } $result = $rr_obj->recordReviewInfo($data); if ($result == FALSE) { self::$errCode = 0; self::$errMsg = '复核失败,复核记录插入失败'; return; } else { self::$errMsg = '成功!'; if ($islast) { //最后一个复核 WhPushModel::pushOrderStatus($orderid, 'PKS_WWEIGHING', $_SESSION['userId'], time()); //状态推送 //更新状态为待包装称重 $data = array('orderStatus' => PKS_WWEIGHING); WhShippingOrderModel::update($data, "id='" . $orderinfo['shipOrderId'] . "'"); self::$errCode = 2; return; } else { self::$errCode = 1; unset($skulist[$isfound['id']]); return $skulist; } } }
public function act_skuWeighing() { $sku = isset($_POST['sku']) ? $_POST['sku'] : ""; $sku = get_goodsSn($sku); $skuweight = isset($_POST['skuweight']) ? $_POST['skuweight'] : ""; if (empty($sku) || empty($skuweight)) { self::$errCode = 333; self::$errMsg = "料号或重量不能为空!"; return false; } $info = CommonModel::updateSkuWeight($sku, $skuweight, $_SESSION['userId']); if ($info == 200) { self::$errCode = 200; self::$errMsg = "重量录入成功!"; return true; } else { self::$errCode = 404; self::$errMsg = "重量录入出错!"; return false; } }
private function handelScanSubmit($ordertype) { $sku = isset($_POST['sku']) ? trim($_POST['sku']) : 0; //sku $sku = get_goodsSn($sku); if (empty($sku)) { self::$errCode = 0; self::$errMsg = '请输入sku'; return FALSE; } $orderid = isset($_POST['orderid']) ? abs(intval($_POST['orderid'])) : 0; //单号 if (empty($orderid)) { self::$errCode = 0; self::$errMsg = '请输入单号!'; return FALSE; } $num = isset($_POST['num']) ? intval($_POST['num']) : 0; //数量 if (!(is_int($num) && $num > 0)) { self::$errCode = 0; self::$errMsg = '请输入正确的数量!'; return FALSE; } $pName = isset($_POST['pname']) ? trim($_POST['pname']) : ''; //仓位 if (empty($pName)) { self::$errCode = 0; self::$errMsg = '仓位有误,请联系it'; return FALSE; } $pcko_obj = new PackingOrderModel(); $orderinfo = $pcko_obj->getOrderInfoById($orderid, ' and orderStatus=' . PKS_WGETGOODS); //发货单完整信息 if (empty($orderinfo)) { //订单号不存在 self::$errCode = 0; self::$errMsg = '订单号不存在!'; return FALSE; } /* 验证该订单的类型是否符合要求 */ if ($ordertype == 1) { //为快递单 if (!ShipingTypeModel::isExpressShiping($orderinfo['transportId'])) { self::$errCode = 0; self::$errMsg = '该订单为非快递单!'; return FALSE; } } elseif ($ordertype == 2) { //为非快递单 if (!ShipingTypeModel::isSmallpressShiping($orderinfo['transportId'])) { self::$errCode = 0; self::$errMsg = '该订单非小包订单!'; return FALSE; } } elseif ($ordertype == 3) { if (!ShipingTypeModel::isInlandShiping($orderinfo['transportId'])) { self::$errCode = 0; self::$errMsg = '该订单非国内快递订单!'; return FALSE; } } /***添加料号、配货数量验证 start ***/ if ($ordertype == 1) { $sod_obj = new ShipingOrderDetailModel(); $rtnNum = $sod_obj->checkOrderSku($orderid, $sku); if ($rtnNum == 0) { self::$errCode = 20; self::$errMsg = '发货单号不存在料号[' . $sku . ']'; return false; } else { $rtnNum = $sod_obj->checkSkuPickRecord($orderid, $sku, $pName); if ($rtnNum != 0) { self::$errCode = 20; self::$errMsg = '料号[' . $sku . ']已配货'; return false; } else { $actualNum = $sod_obj->checkSkuQty($orderid, $sku); $diffNum = $num - $actualNum; if ($diffNum > 0) { self::$errCode = 20; self::$errMsg = '料号[' . $sku . ']需配货' . $actualNum . '件现配' . $num . '件多配' . $diffNum . '件'; return false; } else { if ($diffNum < 0) { self::$errCode = 20; self::$errMsg = '料号[' . $sku . ']需配货' . $actualNum . '件现配' . $num . '件少配-' . $diffNum . '件'; return false; } else { } } } } } /***添加料号、配货数量验证 end ***/ $sod_obj = new ShipingOrderDetailModel(); $skulist = $sod_obj->getSkuListByOrderId($orderid); //该发货单下的全部sku列表 $sku_scaned = $sod_obj->getSkuHavedone($orderid); //该订单下的已配货的sku列表 foreach ($sku_scaned as $skval) { //去掉已配货的 if (array_key_exists($skval['shipOrderdetailId'], $skulist)) { unset($skulist[$skval['shipOrderdetailId']]); } } $matched = null; foreach ($skulist as $val) { if ($val['amount'] == $num && $val['sku'] == $sku) { //找到匹配的 $matched = $val; break; } } $islast = FALSE; if (count($skulist) == 1) { //为最后一个配货料号 $islast = TRUE; } if (empty($matched)) { //没找到数量匹配的 self::$errCode = 0; self::$errMsg = 'sku数量不对!'; return FALSE; } //删除库存 插入配货记录 $data = array('num' => $num, 'sku' => $sku, 'pName' => $pName, 'orderid' => $orderid, 'detailid' => $matched['id'], 'amount' => $num, 'totalnum' => $matched['amount'], 'userid' => $_SESSION['userId'], 'islast' => $islast, 'orderTypeId' => $orderinfo['orderTypeId'], 'shiptype' => $ordertype); $dbresult = $sod_obj->recordDataToSystem($data); if (!$dbresult) { //插入数据失败 self::$errCode = 0; self::$errMsg = '配货失败,请重试!'; return FALSE; } if ($islast) { //最后一个配货完成 // WhPushModel::pushOrderStatus($orderid,'STATESHIPPED_PENDREVIEW',$_SESSION['userId'],time()); //状态推送 self::$errCode = 2; self::$errMsg = '配货成功!'; return TRUE; } else { $skulist = $sod_obj->getSkuListInOneOrder($orderid); $sign = 0; $skulists = array(); foreach ($skulist as $k => $v) { $sku = $v['sku']; $amount = $v['amount']; //配货数量 $posId = $v['positionId']; //仓位ID $pName = $v['pName']; //仓位名称 $storeId = $v['storeId']; //仓库ID,默认1:深圳赛维 $skuInfo = getSkuInfoBySku($sku); //获取料号信息 $skuId = $skuInfo['id']; //料号ID $stockQty = get_SkuStockQty($skuId, $posId, $storeId); //库存数量 $skulists[$sign]['sku'] = $sku; $skulists[$sign]['amount'] = $amount; $skulists[$sign]['pName'] = $pName; $skulists[$sign]['positionId'] = $posId; $skulists[$sign]['stockqty'] = $stockQty; $sign++; } $skulist = $skulists; self::$errCode = 1; self::$errMsg = '配货成功!'; self::$data = $skulist; return TRUE; } }
/** * Pda_inventorySearchAct::getInfo() * 获取盘点信息 * GARY * @return */ public function act_getInfo() { $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); if (!$sku) { self::$errCode = 101; self::$errMsg = '请扫描料号!'; return FALSE; } $info = CommonModel::getSkuInevntory($sku); if ($info['res_code'] != 200) { self::$errCode = 102; self::$errMsg = '获取sku盘点信息失败!'; return FALSE; } self::$errCode = $info['res_code']; self::$errMsg = '拉取数据成功!'; return $info['res_data']; }
function act_checkSkuNum() { $orderId = intval(trim($_POST['orderId'])); $sku = trim($_POST['sku']); $sku = get_goodsSn($sku); $sku_num = intval(trim($_POST['sku_num'])); $log_file = 'pda_orderOutB/' . date('Y-m-d') . '.txt'; $date = date('Y-m-d-H'); if (!$orderId) { self::$errCode = "001"; self::$errMsg = "请扫描订单id!"; return FALSE; } if (!$sku) { self::$errCode = "002"; self::$errMsg = "请扫描料号!"; return FALSE; } if (!$sku_num) { self::$errCode = "003"; self::$errMsg = "请输入料号配货数!"; return FALSE; } $skuinfo = whShelfModel::selectSku(" where sku = '{$sku}'"); //获取sku信息 $where = array('orderId' => $orderId, 'sku' => $sku); $sku_info = Pda_orderOutBModel::selectOrderRecord($where); //获取订单下该料号的信息 if (empty($sku_info)) { self::$errCode = "004"; self::$errMsg = "该订单没有此料号!"; return FALSE; } $sku_info = $sku_info[0]; $sku_onhand = GroupDistributionModel::getSkuPositionStock("and c.sku='{$sku}' and a.storeId = 2"); //查看该料号的B仓库存 $now_num = $sku_num + $sku_info['scanNum']; //已配货数加上本次配货数 if (!is_numeric($sku_num) || $now_num <= 0) { self::$errCode = "005"; self::$errMsg = "配货数量必须大于0,请确认!"; return FALSE; } if ($sku_info['amount'] < $now_num) { self::$errCode = "006"; self::$errMsg = "配货数量不能大于订单数!"; return false; } if ($sku_num > $sku_onhand[0]['nums']) { self::$errCode = "007"; self::$errMsg = "配货数不能大于系统库存,请确认!"; return false; } $uid = $_SESSION['userId']; $scanTime = time(); $where = array('orderId' => $orderId, 'sku' => $sku); //拼接where条件 $update = array('scanUser' => $uid, 'scanTime' => $scanTime, 'scanNum' => $now_num); //拼接更新字段 TransactionBaseModel::begin(); $info = Pda_orderOutBModel::updateOrderRecord($where, $update); if ($info) { $where = array('sku' => $sku, 'storeId' => 2); $update = array('actualStock' => "actualStock - {$sku_num}"); $info = WhGoodsAssignModel::updateSkuLocation($where, $update); //更新wh_sku_location的调拨库存和总库存 if (!$info) { TransactionBaseModel::rollback(); self::$errCode = "010"; self::$errMsg = "更新总库存失败!"; return false; } $positionInfo = whShelfModel::selectPositionInfo('id', array('pName' => $sku_info['pName'])); //仓位信息 $where = array('pId' => $skuinfo['id'], 'positionId' => $positionInfo['id'], 'storeId' => 2); $update = array('nums' => "nums - {$sku_num}"); $info = WhGoodsAssignModel::updateProdcutPosition($where, $update); //更新wh_product_position_relation的仓位库存 if (!$info) { TransactionBaseModel::rollback(); self::$errCode = "011"; self::$errMsg = "更新仓位库存失败!"; return false; } /**** 插入出库记录 *****/ $paraArr = array('sku' => $sku, 'amount' => $sku_num, 'positionId' => $positionInfo['id'], 'purchaseId' => $skuinfo['purchaseId'], 'ioType' => 1, 'ioTypeId' => 6, 'userId' => $_SESSION['userId'], 'reason' => 'B仓订单配货出库', 'ordersn' => $orderId); $record = CommonModel::addIoRecores($paraArr); //出库记录 /** 同步老ERP订单配货记录**/ $is_scan = $sku_info['amount'] == $now_num ? 1 : 0; $info = CommonModel::updateOrderScanRecord($orderId, $sku, $sku_num, $sku_info['amount'], $is_scan, $_SESSION['userCnName']); if ($info['errCode'] != 200) { TransactionBaseModel::rollback(); self::$errCode = "012"; self::$errMsg = "更新ERP配货记录失败!"; $log_info = sprintf("订单号:%s, 时间:%s, 提示信息:%s, 信息记录: %s \r\n", $orderId, $date, self::$errMsg, is_array($info) ? json_encode($info) : $info); write_log($log_file, $log_info); return false; } TransactionBaseModel::commit(); $where = array('orderId' => $orderId, 'scanUser' => 0); $info = Pda_orderOutBModel::selectOrderRecord($where); //查看该订单下是否还有未配货料号 if (empty($info)) { self::$errCode = "200"; self::$errMsg = "该订单已配货完成, 请扫描下一订单号!"; return TRUE; } else { self::$errCode = "0"; self::$errMsg = "配货成功,请扫描下一个料号!"; $arr['sku'] = $sku; $arr['num'] = $sku_info['amount']; $arr['assignNum'] = $now_num; return $arr; } } else { self::$errCode = "013"; self::$errMsg = "更新料号状态失败!"; return false; } }