Пример #1
0
 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;
     }
 }
Пример #2
0
 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;
     }
 }
Пример #3
0
 /**
  * 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;
     }
 }
Пример #4
0
 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;
 }
Пример #5
0
 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;
     }
 }
Пример #6
0
 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;
 }
Пример #7
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);
     }
 }
 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;
 }
Пример #10
0
 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;
 }
Пример #11
0
 /**
  * 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);
 }
Пример #12
0
 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;
 }
Пример #13
0
 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;
     }
 }
Пример #14
0
 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;
     }
 }
Пример #15
0
 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;
     }
 }
Пример #16
0
 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;
     }
 }
Пример #17
0
 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;
     }
 }
Пример #18
0
 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);
 }
Пример #19
0
 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;
 }
Пример #20
0
 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;
 }
Пример #21
0
 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;
         }
     }
 }
Пример #22
0
 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;
         }
     }
 }
Пример #23
0
 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;
     }
 }
Пример #24
0
 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;
     }
 }
Пример #25
0
 /**
  * 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'];
 }
Пример #26
0
 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;
     }
 }