Model_apiyyv1.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <?php
  2. /**
  3. * 为防后期调用u9接口复用问题这里决定重新封装apiyy的接口
  4. */
  5. class Model_apiyyv1 extends Lin_Model
  6. {
  7. public $base_url = "http://172.31.105.167";
  8. function __construct(){
  9. parent::__construct();
  10. $this->load->database();
  11. $this->table = 'apiyy';
  12. $this->load_table('apiyy');
  13. }
  14. /**
  15. * 生成u9的调出单
  16. */
  17. public function dcdCrate($params,$token){
  18. $list = $this->dcDataTrans($params);
  19. $list = json_encode($list);
  20. $url = '/U9C/webapi/TransferOut/Create';
  21. $url = $this->base_url.$url;
  22. $header[] = "Content-Type: application/json";
  23. $header[] = "Token: ".$token;
  24. $res = $this->sendReq($url,$header,$list);
  25. return array($res,$list);
  26. }
  27. /**
  28. * 提交调出单
  29. */
  30. public function dcdSubmit($params,$token){
  31. $list = [
  32. [
  33. 'Code'=>$params['number'] //调出单单号
  34. ]
  35. ];
  36. $url = '/U9C/webapi/TransferOut/Submit';
  37. $url = $this->base_url.$url;
  38. $header[] = "Content-Type: application/json";
  39. $header[] = "Token: ".$token;
  40. $res = $this->sendReq($url,$header,$list);
  41. return array($res,$list);
  42. }
  43. /**
  44. * 审核调出单
  45. */
  46. public function dcdApprove($params,$token){
  47. $list = [
  48. [
  49. 'Code'=>$params['number'] //调出单单号
  50. ]
  51. ];
  52. $url = '/U9C/webapi/TransferOut/Approve';
  53. $url = $this->base_url.$url;
  54. $header[] = "Content-Type: application/json";
  55. $header[] = "Token: ".$token;
  56. $res = $this->sendReq($url,$header,$list);
  57. return array($res,$list);
  58. }
  59. /**
  60. * 生成u9的销售单
  61. * 只是财务记录 不牵扯到库存
  62. */
  63. public function xsdCreate($params,$token){
  64. $list = $this->xsdDataTrans($params);
  65. $list = json_encode($list);
  66. $url = '/U9C/webapi/SO/Create';
  67. $url = $this->base_url.$url;
  68. $header[] = "Content-Type: application/json";
  69. $header[] = "Token: ".$token;
  70. $res = $this->sendReq($url,$header,$list);
  71. return array($res,$list);
  72. }
  73. /**
  74. * 销售单提交
  75. */
  76. public function xsdSubmit($params,$token){
  77. $list = [
  78. [
  79. 'Code'=>$params['number'] //单号
  80. ]
  81. ];
  82. $url = '/U9C/webapi/SO/Submit';
  83. $url = $this->base_url.$url;
  84. $header[] = "Content-Type: application/json";
  85. $header[] = "Token: ".$token;
  86. $res = $this->sendReq($url,$header,$list);
  87. return array($res,$list);
  88. }
  89. /**
  90. * 销售单审核
  91. */
  92. public function xsdApprove($params,$token){
  93. $list = [
  94. [
  95. 'Code'=>$params['number'] //单号
  96. ]
  97. ];
  98. $url = '/U9C/webapi/SO/Approve';
  99. $url = $this->base_url.$url;
  100. $header[] = "Content-Type: application/json";
  101. $header[] = "Token: ".$token;
  102. $res = $this->sendReq($url,$header,$list);
  103. return array($res,$list);
  104. }
  105. /**
  106. * 生成u9的采购单
  107. * 只是财务记录 不牵扯到库存
  108. * 目前采用的是无源的
  109. */
  110. public function cgdCreate($params,$token){
  111. $list = $this->cgdDataTrans($params);
  112. $list = json_encode($list);
  113. $url = '/U9C/webapi/PurchaseOrder/Create';
  114. $url = $this->base_url.$url;
  115. $header[] = "Content-Type: application/json";
  116. $header[] = "Token: ".$token;
  117. $res = $this->sendReq($url,$header,$list);
  118. return array($res,$list);
  119. }
  120. /**
  121. * 采购单提交
  122. */
  123. public function cgdSubmit($params,$token){
  124. $list = [
  125. [
  126. 'Code'=>$params['number'] //单号
  127. ]
  128. ];
  129. $url = '/U9C/webapi/PurchaseOrder/Submit';
  130. $url = $this->base_url.$url;
  131. $header[] = "Content-Type: application/json";
  132. $header[] = "Token: ".$token;
  133. $res = $this->sendReq($url,$header,$list);
  134. return array($res,$list);
  135. }
  136. /**
  137. * 采购单审核
  138. */
  139. public function cgdApprove($params,$token){
  140. $list = [
  141. [
  142. 'Code'=>$params['number'] //单号
  143. ]
  144. ];
  145. $url = '/U9C/PurchaseOrder/Approve';
  146. $url = $this->base_url.$url;
  147. $header[] = "Content-Type: application/json";
  148. $header[] = "Token: ".$token;
  149. $res = $this->sendReq($url,$header,$list);
  150. return array($res,$list);
  151. }
  152. /**
  153. * 生成u9的标准出货单
  154. * 会造成库存变动
  155. * 使用的是有源的就是销售单
  156. */
  157. public function bzchCreate($params,$token){
  158. $list = $this->yybzchDataTrans($params);
  159. $list = json_encode($list);
  160. $url = '/U9C/webapi/Ship/CreateBySrcDoc';
  161. $url = $this->base_url.$url;
  162. $header[] = "Content-Type: application/json";
  163. $header[] = "Token: ".$token;
  164. $res = $this->sendReq($url,$header,$list);
  165. return array($res,$list);
  166. }
  167. /**
  168. * 标准出货单提交并审核
  169. */
  170. public function bzchSubmitAndApprove($params,$token){
  171. $list = [
  172. [
  173. 'Code'=>$params['number'] //单号
  174. ]
  175. ];
  176. $url = '/U9C/webapi/Ship/SubmitAndApprove';
  177. $url = $this->base_url.$url;
  178. $header[] = "Content-Type: application/json";
  179. $header[] = "Token: ".$token;
  180. $res = $this->sendReq($url,$header,$list);
  181. return array($res,$list);
  182. }
  183. /**
  184. * 生成u9的标准收获单
  185. * 会造成库存变动
  186. * 这个也是有源的是采购单 不过估计用不上 先不写
  187. */
  188. public function bzshCreate($params,$token){
  189. }
  190. public function sendReq($url,$header,$list){
  191. $ch = curl_init();
  192. curl_setopt($ch, CURLOPT_URL, $url);
  193. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  194. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  195. curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
  196. curl_setopt($ch, CURLOPT_POST, 1);
  197. curl_setopt($ch, CURLOPT_POSTFIELDS, $list);
  198. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  199. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  200. $res = curl_exec($ch);
  201. $res = json_decode($res,true);
  202. return $res;
  203. }
  204. //调出单的数据转化
  205. public function dcDataTrans($params){
  206. $trans_out_lines = [];
  207. foreach($params['list'] as $k=>$v){
  208. $trans_out_lines[] = [
  209. "ItemInfo" =>[
  210. "ItemCode"=>$v['jm'],//用友的简码
  211. ],
  212. "TransOutWh_Code"=>$v['dcckbm'],//调出仓库编码
  213. "StoreUOM_Code"=>"条",//调出库存单位Code 如条
  214. "StoreUOMQty"=>$v['dcsl'],//调出数量
  215. "StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  216. "LotInfo_Code"=>"",//批号Code 不知道有啥用 暂时留空吧
  217. "TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code
  218. "DescFlexField"=>[
  219. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  220. "PubDescSeg4"=>$params['number'],//订单编码
  221. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  222. ],
  223. "TransOutSubLines"=>[
  224. [
  225. 'TransInWh_Code'=>$params['dczzbm'],//调入仓库编码
  226. 'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  227. 'TransInOrg_Code'=>$params['drzz_code'],//调入组织Code
  228. 'TransOutOwnerOrg_Code'=>$params['owner_code'],//货主组织Code
  229. 'StoreUOMQty'=>$v['dcsl'],
  230. ]
  231. ],
  232. "TransOutBins"=>[
  233. [
  234. 'BinInfo_Code'=>'',//库位Code
  235. 'StoreUOMQty'=>1// 分配数量
  236. ]
  237. ]
  238. ];
  239. }
  240. $data = [];
  241. $data[] = [
  242. "OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回
  243. "TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看 TransOut001 组织间调拨 TransOut002 仓库转储 TransOut004 委外加工发料 TransOut005 委外加工退料
  244. "BusinessDate"=>date("Y-m-d",$params['time']),//日期
  245. "TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货
  246. "TransOutLines"=>$trans_out_lines,
  247. ];
  248. return $data;
  249. }
  250. //销售单的数据转化
  251. public function xsdDataTrans($params){
  252. $so_lines = [];
  253. foreach($params['list'] as $k=>$v){
  254. $so_lines[] = [
  255. 'TU'=>"条",//销售单位编码
  256. 'ItemCode'=>"",//用友的编码
  257. 'PU'=>'条',//计价单位编码
  258. "ShipTogetherFlag"=>-1,//成套收发货标志
  259. 'DocLineNo'=>$k+1,
  260. 'CustomerItemNo'=>'',//客户料号
  261. 'CustomerItemName'=>'',//客户品名
  262. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  263. 'PubDescSeg10'=>'',
  264. 'SOShiplineDTOList'=>[ //销售订单计划行
  265. [
  266. 'IsMRPRequire', //MRP需求
  267. 'DemandType',//需求分类
  268. 'RequireDate'=>date('m/d/Y H:i:s',$v['dtime']),
  269. ]
  270. ],
  271. 'RecTerm'=>'',//目前找不到了
  272. 'FreeType'=>'',//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  273. 'UsableQtyOfInv'=>0,//文档中未查询到
  274. 'PubDescSeg3'=>'',
  275. 'PubDescSeg4'=>'',
  276. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  277. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  278. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  279. 'DescFlexField'=>[
  280. 'PubDescSeg3'=>'',
  281. ],
  282. 'OrderByQtyTU'=>'',//销售数量 (该属性可为空,且无默认值)
  283. 'OrderByQtyPU'=>'',//计价数量 (该属性可为空,且无默认值)
  284. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  285. 'Memo'=>'',//备注
  286. ];
  287. }
  288. $data = [];
  289. $data[] = [
  290. "OrderBy"=>$params['yyid'],//用友的商户的id
  291. "OtherID"=>$params['number'],//第三方传入ID
  292. "SaleDepartment"=>"",//部门编码 可为空
  293. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  294. "DocNo"=>"",//单据类型编码
  295. "AC"=>"C009",//美金
  296. "TC"=>"C009",//美金
  297. "ShipToSite"=>"",//收货位置编码
  298. "PubDescSeg2"=>"",
  299. "SOSrcType"=>0,
  300. "Seller"=>"",//业务员编码 可为空
  301. "ConfirmTerm"=>"",//但是现有文档没有
  302. "Memo"=>"",//备注
  303. "ShipRule"=>"",//但是现有文档没有
  304. "SOLineDTOList"=>$so_lines,
  305. ];
  306. return $data;
  307. }
  308. public function cgdDataTrans($params){
  309. $po_lines = [];
  310. foreach($params['list'] as $k=>$v){
  311. $po_lines[] = [
  312. //"POLineID"=>0,//采购订单行ID
  313. 'ItemInfo'=>[
  314. 'm_code'=>'',//用友料号
  315. ],
  316. "ReqQtyTU"=>'',//需求数量
  317. "ReqQtyTBU"=>0,//确认数量
  318. "SupplierConfirmQtyTU"=>'',//确认数量
  319. "SupplierConfirmQtyTBU"=>'',//确认数量
  320. "FinallyPriceTC"=>'',//最终价格
  321. "IsPresent"=>false,//赠品
  322. ];
  323. }
  324. $data = [];
  325. $data[] = [
  326. 'DocNo'=>"",
  327. "DocumentType"=>'PO01',//PO01 标准采购默认值
  328. 'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325
  329. "BusinessDate"=>date("Y-m-d H:i:s"),
  330. 'OtherID'=>"",
  331. 'DescFlexField'=>[],
  332. 'Supplier'=>[
  333. 'Code'=>'',//供应商编码 到时间找下
  334. ],
  335. 'IsPriceIncludeTax'=>false,
  336. "POLineDTOList"=>$po_lines
  337. ];
  338. return $data;
  339. }
  340. public function yybzchDataTrans($params){
  341. $data = [];
  342. foreach($params['list'] as $k=>$v ){
  343. $data[] = [
  344. "SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4
  345. "SrcDocNo"=>'',//来源单号
  346. //"SrcDocLineNo"=>,
  347. //"SrcDocSubLineNo",
  348. "WH"=>'',//存储地点ID
  349. "CurShipQty1"=>'',//本次出货量
  350. "SOIsConsign"=>false,// 是否补货
  351. "OptionalSplitTerm"=>[],
  352. "DescFlexField"=>[],
  353. "LineDescFlexField"=>[],
  354. //"ShipDate",//出货单日期(该属性可为空,且无默认值)
  355. //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)
  356. "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3
  357. ];
  358. }
  359. return $data;
  360. }
  361. }