<?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. Intellij Idea上Spring Boot编译报错:Error:(3, 32) java: 程序包org.springframework.boot不存在

    很尴尬,为了使用Spring Boot的Initializr,特意下了个Intellij Idea,刚按提示新建一个Spring Boot的Maven项目后,就出现红叉叉了.因为IDE是新的,开始是M ...

  2. SpringCloud初体验:前言

    体验了一天 SpringCloud 后发现,人们所讲的微服务架构不是一门技术,而是一种风格. 感觉确实可以这么认同,因为一套 SpringCloud 玩下来(未深入.未完整「链路追踪.动态刷新配置…… ...

  3. NLTK在自然语言处理

    nltk-data.zip 本文主要是总结最近学习的论文.书籍相关知识,主要是Natural Language Pracessing(自然语言处理,简称NLP)和Python挖掘维基百科Infobox ...

  4. python + docker, 实现天气数据 从FTP获取以及持久化(一)

    前情提要 最近项目需要天气数据(预报和历史数据)来作为算法程序的输入. 项目的甲方已经购买了天气数据, 依照他们的约定,天气数据的供应商会将数据以"文本" (.TXT)的方式发到F ...

  5. 好记性比如烂笔头--linux学习笔记7关于linux中的shell脚本编程

    之前看的各种面试,貌似都有shell脚本编程,没了解之前感觉很复杂,现在了解了些,没想象中那么难. 逻辑主要是这样的 编写.sh的脚本文件,文件里面的代码,就是在命令行输入的可执行命令的加强版,所谓加 ...

  6. Sublime Text 3 安装+注册+汉化

    参考:https://www.cnblogs.com/h--d/p/7555119.html

  7. excel拼接数据宏

    将sheet2的A2 和 G2   加上  sheet5的A2和B2合一起生成新的sheet--就是将两个sheet的指定列前后拼接一起作为一个新的sheet Sub addwork() Sheets ...

  8. 用logger在控制台打印信息

    第一步: 导入jar包,maven项目可以直接添加 <dependency> <groupId>log4j</groupId> <artifactId> ...

  9. 读取和反序列化Hadoop二进制文件

    目录 问题描述 反序列化代码 问题描述 Hadoop在运行MR时,经常要将一些中间结果存到本地,为了节省存储空间,Hadoop采用序列化机制(Hadoop的序列化机制和Java的有所不同)将数据保存为 ...

  10. 【Git】三、工作区、暂存区、版本库

    一.基础概念 工作区:电脑中可以看到的目录,为电脑中的项目文件 暂存区:暂存修改的地方 版本库:存放项目的各个版本文件 二.详细介绍 工作区为我们工作所使用的目录,在工作区我们对项目文件进行增删改查. ...