<?php
namespace app\api\controller;
use think\Controller;
use think\Db;
use think\Log; /**
* desc:仓库扫码入库API
*/
class Storage extends Base
{
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 function scan_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 function scan_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);
} }

php 访问用友u8数据的更多相关文章

  1. 某企业用友U8+中勒索病毒后数据修复及重新实施过程记录

    近期某客户中了勒索病毒,虽然前期多次提醒客户注意异地备份,但始终未执行,导致悲剧. 经过几天的努力,该客户信息系统已基本恢复正常运行,现将相关过程记录如下,作为警示. 方案抉择 交赎金解密:风险过高, ...

  2. 用友U8合同执行单保存报错,提示“语法错误或违反访问规则”

    问题描述 用户参照合同录入第一阶段的执行单,保存时提示“语法错误或违反访问规则”,其他合同均正常,只有这张合同出现这个问题. 解决过程 语法错误或违反访问规则是SQL Server常见的报错,但其他合 ...

  3. 万物皆可集成系列:低代码释放用友U8+深度价值(2)—数据拓展应用

    在上一篇内容我们介绍了如何利用低代码开发套件实现低代码应用与U8+系统的对接集成,本次给大家带来的是如何将用友U8+系统中的数据进行价值扩展和实际应用. 我们以生产物料齐套分析为例来说明如何利用低代码 ...

  4. 用友U8.70安装说明

    用友U8.70安装说明 U8.70安装说明一.安装前注意事项:1.       在安装U870之前,我们推荐您确保当前计算机操作系统是“干净”的,即计算机在安装过操作系统和更新过必要的系统补丁后没有安 ...

  5. 用友U8客户端连接不上服务器全攻略

    用友U8客户端连接不上服务器全攻略 http://www.enet.com.cn2009年09月23日09:26 来自论坛 [导读]:如果网络不通,就让用户查找网络原因 检查步骤: 1.网络是否通? ...

  6. 用友U8将存货核算期初单价金额回写到库存管理期初单价金额

    在用友U8及相关产品中,库存管理期初要求必须录入数量,但单价和金额并不是必输的.从本人过去实施经验来看,为了保证ERP产品的快速上线,有不少企业只能先提供库存管理期初数量,而单价金额需要后续才能确定. ...

  7. 主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了

    随着月末来临,又到了汇报总结的时刻. (图片来自网络) 到了这个特殊时期,你的老板就一定想要查看企业整体的运转情况.销售业绩.客户实况分析.客户活跃度.Top10 sales. 产品情况.订单处理情况 ...

  8. [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据

    目录 概述 从控制器访问模型中的数据 强类型模型与@model关键字 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net M ...

  9. ASP.NET MVC3快速入门——第五节、从控制器访问模型中的数据

    5.1 从控制器访问模型中的数据在本节中,我们将创建一个新的MoviesController类,并且书写代码来获取数据库中的数据,并通过视图模板来显示在浏览器中.鼠标右击Controller文件夹,点 ...

随机推荐

  1. java中的变量和常量

    也可以先声明后赋值  自动类型转换 1.  目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型 2.  目标类型大于源类型,如 double 类型长度 ...

  2. 清理Visual Studio中VC++工程里不需要的文件

    Visual Studio开发C++,工程的空间几M,几十M甚至几百M的长,生成的中间文件看的眼花缭乱,占空间不说,特别是备份拷贝代码时无奈的等待,有了这个脚本,好吧,整个世界清静了. @echo o ...

  3. Think in java.chm 第14章 多线程

    例子1引入线程概念通过得到当前线程方式循环主线程做某事 例子2演示了在主线程之外开启多个线程的基本方式 ( new一个extends Thread ) 例子3 ( task extends Threa ...

  4. Java 迭代器 Iterator

    迭代器模式 迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式.这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 迭代器模式属于行 ...

  5. git grade 版本下载及安装

    Git 2.11.1x64下载 gradle各版本下载地址 1. Git安装与配置 Gradle 用法总结

  6. qq浏览器如何全屏截图

    对于经常使用qq浏览器的用户可以关注一下~超级使用的功能哦~ http://jingyan.baidu.com/article/a3a3f811f4e0508da2eb8a04.html

  7. Vue 实现微信 jssdk 扫码, 上传图片

    流程 1: 配置微信公众号JS域名 2:前端发送URL后台获取JSSDK配置, 后台Service代码如下, 修改2处位置: WeixinUtil.APPID => 当前公众号APPID Wei ...

  8. Spring cloud @RefreshScope使用

    参数 @RestController @RefreshScope public class HomeController { @Value("${foo}") String foo ...

  9. window10上安装python+CUDA+CuDNN+TensorFlow

    软件 版本 Window10 X64 python 3.6.4(64位) CUDA CUDA Toolkit 9.0 (Sept 2017) CuDNN cuDNN v7.0.5 (Dec 5, 20 ...

  10. cannot nest '/dubboService/src/main/resources' inside '/dubboService/src/main' .To enable the nesting exclude '/resources' from '/dubboService/src/main'

    eclipse Maven--->update Project时出现以上错误: cannot nest '/dubboService/src/main/resources' inside '/d ...