<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 掃描商品唯一碼,判斷唯一碼是否符合發貨條件 **位置:** Common\Lib\FlowLib.class.php **參數:** * @param $data array 訂單信息(如:訂單類型,訂單ID) * @return array 判斷唯一碼返回提示信息 **調用:** * $flow = new FlowLib(); * $order_arr = $flow->scanGoods($data); **完整代碼:** ~~~ /** * 掃描商品 * @param $data array 訂單ID、發貨位置ID、掃描的唯一碼 * @return array 返回提示信息數組 * whz 2018-01-30 * */ public function scanGoods($data) { //1、判斷唯一碼是否存在 $exit_res = M("goods_no") ->where(array('no'=>$data['no'], 'is_delete'=>0)) ->select(); if (count($exit_res) == 0) { return array('success'=>false, 'code'=>201, 'msg'=>"此商品不存在或未入庫,請重新掃描!"); } if ($data['del'] != 1) { if (in_array($data['no'],$data['no_arr'])) { return array('success'=>false, 'code'=>209, 'msg'=>'唯一碼'.$data['no'].'已添加,請勿重復'); } } M()->startTrans(); //首次生成裝箱單 if ($data['box_id'] == "" && $data['del'] != 1) { //2、裝箱單ID沒有生成,就是首次生成裝箱單 $order_type = M('wms_flow') ->field('type') ->where(array('id'=>$data['id'])) ->find(); //商品部新建的訂單(需要考慮掃描唯一碼是否超過了SKU數量) if ($order_type['type'] == 1) { //第一步、計算SKU所屬唯一碼數(還沒有封箱保存的) $sku_num = 0; //用來存儲計算的數量(唯一碼狀態:未掃描) $sku = substr($data['no'],0,strlen($data['no'])-4); //當前掃描唯一碼SKU //判斷掃描唯一碼是否在發貨范圍 $goods_id = M('wms_sku') ->field('id, num') ->where(array('type'=>$data['order_type'], 'order_id'=>$data['id'], 'sku'=>$sku)) ->find(); if (count($goods_id)<1) { return array('success'=>false, 'code'=>209, 'msg'=>'掃描的唯一碼不在發貨范圍!'); } foreach ($data['sku_arr'] as $k => $v) { if($sku == $v){ $sku_num += 1; } } //第二步、統計已經封箱所屬SKU唯一碼數量(唯一碼狀態:已掃描) $sku_nums = M('wms_no') ->where(array('goods_id'=>$goods_id['id'], 'status'=>1, 'is_delete'=>0)) ->count(); //掃描唯一碼數量是否超過要配SKU數量 if ($sku_num + $sku_nums >= $goods_id['num']) { return array('success'=>false, 'code'=>209, 'msg'=>'掃描的唯一碼超過了發貨SKU數量!'); } } } //3、勾選刪除后偽刪除唯一碼 if ($data['del'] == 1) { $wheres['no'] = $data['no']; $wheres['status'] = 1; $wheres['type'] = $data['order_type']; $wheres['order_id'] = $data['id']; $wheres['is_delete'] = 0; //查詢流通唯一碼表保證當前掃描的商品已經掃描 $exit_num = M("wms_no") ->where($wheres) ->find(); if (count($exit_num)>0) { //(第一步、在流通唯一碼表表里面刪除要刪的唯一碼。2、要刪的唯一碼所屬裝箱單箱內商品數量減一) $del_num = M('wms_no') ->where(array('id'=>$exit_num['id'])) ->save(array('is_delete' => 1)); if ($del_num === false) { M()->rollback(); return array('success'=>false, 'code' => 205, 'msg'=>"唯一碼偽刪除失敗!"); } //查詢當前裝箱單現在箱內商品數量 $num = M("wms_box") ->field('num,box_no') ->where(array('id'=>$data['box_id'])) ->find(); $edit_box = M("wms_box") ->where(array('id'=>$data['box_id'])) ->save(array('num'=>$num['num']-1)); if ($edit_box === false) { M()->rollback(); return array('success'=>false, 'code' => 206, 'msg'=>"裝箱單數量更新失敗!"); } //刪除已經封箱的唯一碼,還原商品狀態 if ($data['order_type'] == 1 || $data['order_type'] == 4) { $delivery = 1; } if ($data['order_type'] == 2 || $data['order_type'] == 3) { $delivery = 2; } $status_no = M('goods_no') ->where(array('no'=>$data['no'], 'is_delete'=>0)) ->save(array('delivery_status'=>$delivery)); if ($status_no === false) { M()->rollback(); return array('success'=>false, 'code'=>206, 'msg'=>"唯一碼狀態改變失敗!"); } //記錄日志信息 $add_log['description'] = $data['no'] . "已從箱號:".$num['box_no'] . "拿出!"; $add_log['order_id'] = $data['id']; $add_log['type']= $data['order_type']; $log_add = $this->addLog($add_log); if(!$log_add){ M()->rollback(); return array('success'=>false, 'code'=>202, 'msg'=>'日志記錄失敗!'); } M()->commit(); return array('success'=>true, 'code'=>200, 'msg'=>$data['no'] . "已從箱號:" . $num['box_no'] . "拿出!", 'url'=>U('aview',array('id'=>$data['id'], 'box_id'=>$data['box_id']))); } else { return array('success'=>false, 'code'=>205, 'msg'=>"找不到該掃描商品,刪除失敗!"); } } else { //第一步:判斷掃描唯一碼是否已經掃描 $where['no'] = $data['no']; $where['is_delete'] = 0; $where['status'] = 1; $nos = M('wms_no') ->where($where) ->select(); if (count($nos)>0) { return array('success'=>false, 'code'=>205, 'msg'=>'唯一碼' . $data['no'] . '已掃描,請勿重復'); } //第二步:判斷掃描唯一碼在發貨位置是否存在,是否超過了發貨數量 $res = $this->scansGoods($data['id'], $data['no']); if (!$res['success']) { return $res; } $array = $res['data']; return array('success'=>true, 'code'=>200, 'data'=>$array); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看