namespace app\api\controller;usethink\Controller;usethink\Db;use think\Log;/**
* desc:仓库扫码入库API*/
class Storage extendsBase
{protected static $erp;public function__construct()
{
parent::__construct();$dbhost =config(‘erp.dbhost‘);
$dbuser = config(‘erp.dbuser‘); //你的mssql用户名
$dbpass = config(‘erp.dbpass‘); //你的mssql密码
$dbname = config(‘erp.dbname‘); //你的mssql库名
try{
self::$erp=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass");
}catch (\Exception $e){
echo ‘ERP数据库连接错误,请检查数据连接‘;
die();
}
}/*----------------------------入库扫码模块开始-------------------------------------*/
/**
* 列出5天内的入库单
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException*/
public functionscan_receipt_list(){$timestart = input(‘param.start‘);$timeend = input(‘param.end‘);$day=config(‘erp.getnum‘);$search_time_start = $timestart ? $timestart : date("Y-m-d",strtotime("-$day day"));//当天日期
$search_time_end = $timeend ? $timeend : date("Y-m-d");//当天最晚日期
//$map[‘insert_time‘] = array(‘between‘, [strtotime($search_time_start), strtotime($search_time_end)]);
//按日期读取erp采购入库单列表
$sql="select cCode from dbo.RdRecord01 where dDate>=‘$search_time_start‘ and dDate<=‘$search_time_end‘";
$exec=odbc_exec(self::$erp,$sql);
$list=[];
while ($row = odbc_fetch_array($exec)){
$list[]=$row[‘cCode‘];
}//$list = Db::name(‘Test‘)->where($map)->field(‘receipt‘)->group(‘receipt‘)->select();
if (count($list)) {$data[‘code‘] = 1;$data[‘datas‘] = $list;$data[‘msg‘] = ‘获取成功‘;
}else{$data[‘code‘] = 0;$data[‘datas‘] = "";$data[‘msg‘] = ‘最近‘.$day.‘日暂无入库单‘;
}return json($data);
}/**
* 仓管扫描入库单,列出入库产品数量
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException*/
public functionscan_receipt_info(){$receipt=input("param.receipt");if ($receipt != ‘‘) {//$list = Db::name(‘Test‘)->where(‘receipt‘, $receipt)->select();
//根据采购入库单号 获取入库单详细$sql="select dDate,cCode as receipt,cinvname as p_name,iQuantity as p_num,cInvCode as p_code,cBatch as batch_number,dMadeDate as brithday,iMassDate as validity,dVDate as expiration from dbo.zpurrkdlist where cCode=‘$receipt‘";
$exec=odbc_exec(self::$erp,$sql);
$list=[];
$i=0;
while ($row = odbc_fetch_array($exec)){
$list[$i]=$row;
$list[$i][‘p_num‘]=(int)$row[‘p_num‘];
$list[$i][‘p_name‘]=iconv(‘gbk‘,‘utf-8‘,$row[‘p_name‘]);
$i++;
}foreach ($list as $key=>$val){$tracking_code=Db::name(‘Products‘)->where(‘p_code‘,$val[‘p_code‘])->value(‘tracking_code‘);$count=Db::name(‘GoodsStockInfo‘)->where([‘delivery_number‘=>$val[‘receipt‘],‘p_code‘=>$val[‘p_code‘]])->count();$needscan=intval($val[‘p_num‘])-intval($count);if($count>=$val[‘p_num‘]){$list[$key][‘flag‘]=1;$list[$key][‘brithday‘]=$val[‘brithday‘];$list[$key][‘expiration‘]=$val[‘expiration‘];$list[$key][‘tracking_code‘]=$tracking_code;$list[$key][‘needscan_num‘]=$needscan;
}else{$list[$key][‘flag‘]=0;$list[$key][‘brithday‘]=$val[‘brithday‘];$list[$key][‘expiration‘]=$val[‘expiration‘];$list[$key][‘tracking_code‘]=$tracking_code;$list[$key][‘needscan_num‘]=$needscan;
}
}$data[‘code‘] = 1;$data[‘datas‘] = $list;$data[‘msg‘] = ‘获取成功‘;
}else{$data[‘code‘] = 0;$data[‘datas‘] = "";$data[‘msg‘] = ‘入库单号不能为空‘;
}//return json($data);
print_r($data);
}
}