合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
### 扫描唯一码判断是否满足验收条件 **位置:** Common\Lib\FlowLib.class.php **参数:** * @param $data array 订单信息(如:订单ID,扫描的唯一码,装箱单ID) * @return array 验收返回提示信息 **调用:** * $flow = new FlowLib(); * $order_arr = $flow->checkGoods($data); **完整代码:** ~~~ /** * 门店最终的验货扫描商品 * @param $data array 订单信息 * @return array 验收返回提示信息 * whz 2018-01-30 * */ public function checkGoods($data) { M()->startTrans(); //1、根据装箱单ID查询扫的这件商品是否存在,如果存在进行验货操作 $no_info = M('wms_box as x') ->field('x.id,x.box_no,o.status') ->join('coscia_wms_no as o on x.id=o.box_id','left') ->where(array('o.no'=>$data['no'], 'x.id'=>$data['box_id'], 'x.type'=>$data['type'], 'x.order_id'=>$data['id'], 'o.is_delete'=>0)) ->find(); //2、判断扫描唯一码信息在当前装箱单是否存在 if ($no_info) { //查询配货门店信息 $shop_info = M('wms_flow') ->where(array('id' => $data['id'])) ->find(); if (count($shop_info) == 0) { return array('success'=>false, 'code'=>201, 'msg'=>'订单信息查找失败!'); } //3、判断扫描唯一码是否已经验收 if ($no_info['status'] == 2) { return array('success'=>false, 'code'=>202, 'msg'=>'扫描的商品在装箱单已经验收!'); } else { //3、记录扫描商品的验收人和验收时间 $edit_data = array( 'status' => 2, 'in_uid' => $_SESSION['userInfo']['id'], 'in_time' => time() ); $result = M('wms_no') ->where(array('no'=>$data['no'], 'box_id'=>$data['box_id'], 'is_delete'=>0)) ->save($edit_data); if ($result === false) { M()->rollback(); return array('success'=>false, 'code'=>202, 'msg'=>'验收人和验收时间记录失败!'); } //4、唯一码验收之后改变商品状态 if ($data['type'] == 1 || $data['type'] == 2) { $shop_id = $shop_info['receive_id']; $warehouse = 0; $delivery_status = 2; } if ($data['type'] == 3 || $data['type'] == 4) { $shop_id = 0; $warehouse = $shop_info['receive_id']; $delivery_status = 1; } $status = M('goods_no') ->where(array('no'=>$data['no'], 'is_delete'=>0)) ->save(array('delivery_status'=>$delivery_status, 'warehouse'=>$warehouse, 'max_shops_id'=>$shop_id)); if ($status === false) { M()->rollback(); return array('success'=>false, 'code'=>202, 'msg'=>'验收商品状态改变失败!'); } M()->commit(); return array('success'=>true, 'code'=>200, 'msg'=>'扫描商品验收成功!'); } } else { return array('success'=>false, 'code'=>201, 'msg'=>'扫描的商品在装箱单不存在!'); } } ~~~