Model_apiyyv1.php 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034
  1. <?php
  2. /**
  3. * 为防后期调用u9接口复用问题这里决定重新封装apiyy的接口
  4. */
  5. class Model_apiyyv1 extends Lin_Model
  6. {
  7. public $base_url = "http://139.129.33.38";
  8. function __construct(){
  9. parent::__construct();
  10. $this->load->database();
  11. $this->table = 'apiyy';
  12. $this->load_table('apiyy');
  13. $this->load->_model("Model_logic_ding","logic_ding");
  14. }
  15. /**
  16. * 生成u9的调出单
  17. */
  18. public function dcdCrate($params,$token){
  19. $list = $this->dcDataTrans($params);
  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,json_encode($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,json_encode($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,json_encode($list));
  57. return array($res,$list);
  58. }
  59. /**
  60. * 生成u9的销售单
  61. * 只是财务记录 不牵扯到库存
  62. */
  63. public function xsdCreate($params,$token){
  64. $list = $this->xsdDataTrans($params);
  65. $url = '/U9C/webapi/SO/Create';
  66. $url = $this->base_url.$url;
  67. $header[] = "Content-Type: application/json";
  68. $header[] = "Token: ".$token;
  69. $res = $this->sendReq($url,$header,json_encode($list));
  70. return array($res,$list);
  71. }
  72. /**
  73. * 工厂外销销售单
  74. */
  75. public function gcxsdWaiXiaoCreate($params,$token){
  76. $list = $this->xsdDataTrans($params);
  77. foreach($list as $k=>$v){
  78. $list[$k]['DescFlexField']["PrivateDescSeg3"] = $params['number'];
  79. $list[$k]['DescFlexField']["PrivateDescSeg6"] = 'MJ00199';
  80. $list[$k]['DescFlexField']["PubDescSeg6"] = 'MJ00199';
  81. $list[$k]['DescFlexField']["PubDescSeg3"] = $params['number'];
  82. // foreach($v['SOLineDTOList'] as $kk=>$vv){
  83. // $list[$k]['SOLineDTOList'][$kk]['DescFlexField']['PrivateDescSeg3'] = $params['number'];
  84. // $list[$k]['SOLineDTOList'][$kk]['DescFlexField']['PubDescSeg3'] = $params['number'];
  85. // }
  86. }
  87. $url = '/U9C/webapi/SO/Create';
  88. $url = $this->base_url.$url;
  89. $header[] = "Content-Type: application/json";
  90. $header[] = "Token: ".$token;
  91. $res = $this->sendReq($url,$header,json_encode($list));
  92. return array($res,$list);
  93. }
  94. /**
  95. * 销售单状态查询 看看是否是审核状态
  96. */
  97. public function xsdCxByNo($xcd_no,$token){
  98. $list["SqlString"] = $list['SqlString'] = "select a.DocNo,a.Status,b.DocLineNo,c.DocSubLineNo,c.ShipPlanQtyPU,c.ItemInfo_ItemCode from SM_SO as a left join SM_SOLine as b on a.id = b.SO left join SM_SOShipline as c on c.SOLine = b.id where a.DocNo = '".$xcd_no."' order by a.CreatedOn desc ";;
  99. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  100. $url = $this->base_url.$url;
  101. $header[] = "Content-Type: application/json";
  102. $header[] = "Token: ".$token;
  103. $res = $this->sendReq($url,$header,json_encode($list));
  104. return array($res,$list);
  105. }
  106. /**
  107. * 生成u9的销售单
  108. * 只是财务记录 不牵扯到库存
  109. */
  110. public function xsdTwoCreate($params,$token){
  111. $list = $this->xsdTwoDataTrans($params);
  112. $url = '/U9C/webapi/SO/Create';
  113. $url = $this->base_url.$url;
  114. $header[] = "Content-Type: application/json";
  115. $header[] = "Token: ".$token;
  116. $res = $this->sendReq($url,$header,json_encode($list));
  117. return array($res,$list);
  118. }
  119. /**
  120. * 销售单提交
  121. */
  122. public function xsdSubmit($params,$token){
  123. $list = [
  124. [
  125. 'Code'=>$params['number'] //单号
  126. ]
  127. ];
  128. $url = '/U9C/webapi/SO/Submit';
  129. $url = $this->base_url.$url;
  130. $header[] = "Content-Type: application/json";
  131. $header[] = "Token: ".$token;
  132. $res = $this->sendReq($url,$header,json_encode($list));
  133. return array($res,$list);
  134. }
  135. /**
  136. * 销售单审核
  137. */
  138. public function xsdApprove($params,$token){
  139. $list = [
  140. [
  141. 'Code'=>$params['number'] //单号
  142. ]
  143. ];
  144. $url = '/U9C/webapi/SO/Approve';
  145. $url = $this->base_url.$url;
  146. $header[] = "Content-Type: application/json";
  147. $header[] = "Token: ".$token;
  148. $res = $this->sendReq($url,$header,json_encode($list));
  149. return array($res,$list);
  150. }
  151. /**
  152. * 根据调出单的单号做关联查询 然后匹配存储调入单的审核
  153. */
  154. public function drdcxBydcd($dcd_no,$token){
  155. // $list["SqlString"] = "select DescFlexField_PubDescSeg4 ,DocNo from InvDoc_TransferIn where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  156. $list["SqlString"] = "select a.docno,b.srcdocinfo_srcdocno from InvDoc_TransferIn as a left join InvDoc_TransInLine as b on a.id=b.TransferIn where srcdocinfo_srcdocno='".$dcd_no."'";
  157. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  158. $url = $this->base_url.$url;
  159. $header[] = "Content-Type: application/json";
  160. $header[] = "Token: ".$token;
  161. $res = $this->sendReq($url,$header,json_encode($list));
  162. return array($res,$list);
  163. }
  164. //销售单按照多单号查询
  165. public function xscsByordernos($xs_no_list,$token){
  166. $str = '';
  167. foreach($xs_no_list as $k=>$v){
  168. if($k==0){
  169. $str .="'".$v."'";
  170. }else{
  171. $str .=",'".$v."'";
  172. }
  173. }
  174. //$list['SqlString'] = "select a.DocNo,b.DocLineNo,c.DocSubLineNo,c.ShipPlanQtyPU from SM_SO as a left join SM_SOLine as b on a.id = b.SO left join SM_SOShipline as c on c.SOLine = b.id where a.DocNo in (".$str.") order by a.CreatedOn desc ";
  175. $list['SqlString'] = "select a.DocNo,b.DocLineNo,c.DocSubLineNo,c.ShipPlanQtyPU,c.ItemInfo_ItemCode from SM_SO as a left join SM_SOLine as b on a.id = b.SO left join SM_SOShipline as c on c.SOLine = b.id where a.DocNo in (".$str.") order by a.CreatedOn desc ";
  176. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  177. $url = $this->base_url.$url;
  178. $header[] = "Content-Type: application/json";
  179. $header[] = "Token: ".$token;
  180. $res = $this->sendReq($url,$header,json_encode($list));
  181. return array($res,$list);
  182. }
  183. /**
  184. * 调入单提交
  185. */
  186. public function drdSubmit($params,$token){
  187. $list = [
  188. [
  189. 'Code'=>$params['number'] //单号
  190. ]
  191. ];
  192. $url = '/U9C/webapi/TransferIn/Submit';
  193. $url = $this->base_url.$url;
  194. $header[] = "Content-Type: application/json";
  195. $header[] = "Token: ".$token;
  196. $res = $this->sendReq($url,$header,json_encode($list));
  197. return array($res,$list);
  198. }
  199. /**
  200. * 调入单审核
  201. */
  202. public function drdApprove($params,$token){
  203. $list = [
  204. [
  205. 'Code'=>$params['number'] //单号
  206. ]
  207. ];
  208. $url = '/U9C/webapi/TransferIn/Approve';
  209. $url = $this->base_url.$url;
  210. $header[] = "Content-Type: application/json";
  211. $header[] = "Token: ".$token;
  212. $res = $this->sendReq($url,$header,json_encode($list));
  213. return array($res,$list);
  214. }
  215. /**
  216. * 生成u9的采购单
  217. * 只是财务记录 不牵扯到库存
  218. * 目前采用的是无源的
  219. */
  220. public function cgdCreate($params,$token){
  221. $list = $this->cgdDataTrans($params);
  222. $url = '/U9C/webapi/PurchaseOrder/Create';
  223. $url = $this->base_url.$url;
  224. $header[] = "Content-Type: application/json";
  225. $header[] = "Token: ".$token;
  226. $res = $this->sendReq($url,$header,json_encode($list));
  227. return array($res,$list);
  228. }
  229. /**
  230. * 采购单提交
  231. */
  232. public function cgdSubmit($params,$token){
  233. $list = [
  234. [
  235. 'Code'=>$params['number'] //单号
  236. ]
  237. ];
  238. $url = '/U9C/webapi/PurchaseOrder/Submit';
  239. $url = $this->base_url.$url;
  240. $header[] = "Content-Type: application/json";
  241. $header[] = "Token: ".$token;
  242. $res = $this->sendReq($url,$header,json_encode($list));
  243. return array($res,$list);
  244. }
  245. /**
  246. * 采购单审核
  247. */
  248. public function cgdApprove($params,$token){
  249. $list = [
  250. [
  251. 'Code'=>$params['number'] //单号
  252. ]
  253. ];
  254. $url = '/U9C/webapi/PurchaseOrder/Approve';
  255. $url = $this->base_url.$url;
  256. $header[] = "Content-Type: application/json";
  257. $header[] = "Token: ".$token;
  258. $res = $this->sendReq($url,$header,json_encode($list));
  259. return array($res,$list);
  260. }
  261. /**
  262. * 生成u9的标准出货单
  263. * 会造成库存变动
  264. * 使用的是有源的就是销售单
  265. */
  266. public function bzchCreate($params,$token){
  267. $list = $this->yybzchDataTrans($params);
  268. $url = '/U9C/webapi/Ship/CreateBySrcDoc';
  269. $url = $this->base_url.$url;
  270. $header[] = "Content-Type: application/json";
  271. $header[] = "Token: ".$token;
  272. $res = $this->sendReq($url,$header,json_encode($list));
  273. return array($res,$list);
  274. }
  275. /**
  276. * 创建生产单
  277. */
  278. public function scdCreate($params,$token){
  279. $list = $this->scdDataTrans($params);
  280. $url = '/U9C/webapi/MODoc/Create';
  281. $url = $this->base_url.$url;
  282. $header[] = "Content-Type: application/json";
  283. $header[] = "Token: ".$token;
  284. $res = $this->sendReq($url,$header,json_encode($list));
  285. return array($res,$list);
  286. }
  287. /**
  288. * 查询生产订单状态
  289. */
  290. public function cxScdStatus($doc_no,$token){
  291. $list["SqlString"] = "select top 2 docno,DocState from mo_mo where docno = '".$doc_no."'";
  292. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  293. $url = $this->base_url.$url;
  294. $header[] = "Content-Type: application/json";
  295. $header[] = "Token: ".$token;
  296. $res = $this->sendReq($url,$header,json_encode($list));
  297. return array($res,$list);
  298. }
  299. /**
  300. * 标准出货单提交并审核
  301. */
  302. public function bzchSubmitAndApprove($params,$token){
  303. $list = [
  304. [
  305. 'Code'=>$params['number'] //单号
  306. ]
  307. ];
  308. $url = '/U9C/webapi/Ship/SubmitAndApprove';
  309. $url = $this->base_url.$url;
  310. $header[] = "Content-Type: application/json";
  311. $header[] = "Token: ".$token;
  312. $res = $this->sendReq($url,$header,json_encode($list));
  313. return array($res,$list);
  314. }
  315. /**
  316. * 生成u9的标准收获单
  317. * 会造成库存变动
  318. * 这个也是有源的是采购单 不过估计用不上 先不写
  319. */
  320. public function bzshCreate($params,$token){
  321. }
  322. /**
  323. * 生成成品入库单
  324. */
  325. public function cprkCreate($params,$token){
  326. $list = $this->cprkDataTrans($params);
  327. $url = '/U9C/webapi/RcvRptDoc/Create';
  328. $url = $this->base_url.$url;
  329. $header[] = "Content-Type: application/json";
  330. $header[] = "Token: ".$token;
  331. $res = $this->sendReq($url,$header,json_encode($list));
  332. return array($res,$list);
  333. }
  334. /**
  335. * 成品入库单提交
  336. */
  337. public function cprkApprove($params,$token){
  338. $url = '/U9C/webapi/RcvRptDoc/Approve';
  339. $url = $this->base_url.$url;
  340. $header[] = "Content-Type: application/json";
  341. $header[] = "Token: ".$token;
  342. $res = $this->sendReq($url,$header,json_encode($params));
  343. return array($res,$params);
  344. }
  345. /**
  346. * 成品入库查询
  347. */
  348. public function cprkCx($params,$token){
  349. $url = '/U9C/webapi/RcvRptDoc/Query';
  350. $url = $this->base_url.$url;
  351. $header[] = "Content-Type: application/json";
  352. $header[] = "Token: ".$token;
  353. $res = $this->sendReq($url,$header,json_encode($params));
  354. return array($res,$params);
  355. }
  356. /**
  357. * 成品入库单审核
  358. */
  359. //根据erp的单号查询调出单是够存在
  360. public function xcDcdByOtherId($dcd_no,$token){
  361. $list["SqlString"] = "select DescFlexField_PubDescSeg4,DocNo from InvDoc_TransferOut where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  362. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  363. $url = $this->base_url.$url;
  364. $header[] = "Content-Type: application/json";
  365. $header[] = "Token: ".$token;
  366. $res = $this->sendReq($url,$header,json_encode($list));
  367. return array($res,$list);
  368. }
  369. /**
  370. * 调出单的二次验证
  371. * 避免因为其他组织使用相同的erp单号导致的冲突 不能创建成品库的数据
  372. */
  373. public function xcDcdByOtherIdCheck($dcd_no,$token){
  374. $list["SqlString"] = "select a.DescFlexField_PubDescSeg4,a.DocNo,b.TransOutwh ,wh_out.code from InvDoc_TransferOut as a left join InvDoc_TransOutLine as b on a.id = b.TransferOut left join CBO_Wh wh_out on b.TransOutWh=wh_out.id where a.DescFlexField_PubDescSeg4 = '".$dcd_no."' ";
  375. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  376. $url = $this->base_url.$url;
  377. $header[] = "Content-Type: application/json";
  378. $header[] = "Token: ".$token;
  379. $res = $this->sendReq($url,$header,json_encode($list));
  380. return array($res,$list);
  381. }
  382. /**
  383. * 查询料品
  384. */
  385. public function cxLp($params,$token){
  386. $list = [];
  387. foreach($params as $k=>$v){
  388. $list[] =[
  389. "ItemMaster"=>[
  390. "Code"=>$v['jm']
  391. ]
  392. ];
  393. }
  394. $url = '/U9C/webapi/ItemMaster/Query';
  395. $url = $this->base_url.$url;
  396. $header[] = "Content-Type: application/json";
  397. $header[] = "Token: ".$token;
  398. $res = $this->sendReq($url,$header,json_encode($list));
  399. return array($res,$list);
  400. }
  401. /**
  402. * 创建料品
  403. */
  404. public function cjLp($params,$token){
  405. $list = $this->cjlpDataTrans($params);
  406. $url = '/U9C/webapi/ItemMaster/Create';
  407. $url = $this->base_url.$url;
  408. $header[] = "Content-Type: application/json";
  409. $header[] = "Token: ".$token;
  410. $res = $this->sendReq($url,$header,json_encode($list));
  411. $this->logic_ding->sendToDing("创建料品监听".json_encode($params,JSON_UNESCAPED_UNICODE)."||".json_encode($res,JSON_UNESCAPED_UNICODE)."||".$url);
  412. return array($res,$list);
  413. }
  414. /**
  415. * 同步通知
  416. */
  417. public function tbLp($params,$token){
  418. $list = [];
  419. foreach($params['list'] as $k=>$v){
  420. $list[] = [
  421. "EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名
  422. "EntityCode"=>$v['jm'],
  423. "FromOrgCode"=>$params['owner_code'],//创建组织编码
  424. "ToOrgCodeList"=>[140],//要同步的组织
  425. "OtherID"=>'',
  426. "ContextDTO"=>[
  427. "EntCode"=>$params['ztcode'],//企业编码
  428. "OrgCode"=>$params['owner_code'],//组织编码
  429. "UserCode"=>'xk',//用户编码
  430. "UserPwd"=>'',//用户密码
  431. ]
  432. ];
  433. }
  434. $url = '/U9C/webapi/ControlObjSend/ControlObjSend';
  435. $url = $this->base_url.$url;
  436. $header[] = "Content-Type: application/json";
  437. $header[] = "Token: ".$token;
  438. $res = $this->sendReq($url,$header,json_encode($list));
  439. return array($res,$list);
  440. }
  441. //由于逻辑修改造成 需要查询调出单是审核完毕
  442. public function xdlsCxDcd($dcd_no,$token){
  443. $list["SqlString"] = "select a.DocNo,a.Status,a.DescFlexField_PubDescSeg2,a.DescFlexField_PubDescSeg4,a.DescFlexField_PubDescSeg5,b.ItemInfo_ItemCode,b.CostUOMQty,b.CostPrice,b.ItemInfo_ItemName from InvDoc_TransferOut as a left join InvDoc_TransOutLine as b on a.id = b.TransferOut where a.Status = 2 and a.DocNo = '".$dcd_no."'";
  444. //$list["SqlString"] = "select a.*,b.* from InvDoc_TransferOut as a left join InvDoc_TransOutLine as b on a.id = b.TransferOut where a.Status = 2 and a.DocNo = '".$dcd_no."'";
  445. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  446. $url = $this->base_url.$url;
  447. $header[] = "Content-Type: application/json";
  448. $header[] = "Token: ".$token;
  449. $res = $this->sendReq($url,$header,json_encode($list));
  450. return array($res,$list);
  451. }
  452. public function sendReq($url,$header,$list){
  453. $ch = curl_init();
  454. curl_setopt($ch, CURLOPT_URL, $url);
  455. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  456. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  457. curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
  458. curl_setopt($ch, CURLOPT_POST, 1);
  459. curl_setopt($ch, CURLOPT_POSTFIELDS, $list);
  460. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  461. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  462. $res = curl_exec($ch);
  463. $res = json_decode($res,true);
  464. return $res;
  465. }
  466. //调出单的数据转化
  467. public function dcDataTrans($params){
  468. $trans_out_lines = [];
  469. foreach($params['list'] as $k=>$v){
  470. $trans_out_lines[] = [
  471. "ItemInfo" =>[
  472. "ItemCode"=>$v['jm'],//用友的简码
  473. ],
  474. "TransOutWh_Code"=>$params['dcckbm'],//调出仓库编码
  475. "StoreUOM_Code"=>"条",//调出库存单位Code 如条
  476. "StoreUOMQty"=>$v['dcsl'],//调出数量
  477. "StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  478. "LotInfo_Code"=>"",//批号Code 不知道有啥用 暂时留空吧
  479. "TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code
  480. "TransOutSubLines"=>[
  481. [
  482. 'TransInWh_Code'=>$params['drckbm']."",//调入仓库编码
  483. 'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  484. 'TransInOrg_Code'=>$params['drzz_code']."",//调入组织Code
  485. 'TransOutOwnerOrg_Code'=>$params['owner_code']."",//货主组织Code
  486. 'StoreUOMQty'=>$v['dcsl'],
  487. ]
  488. ],
  489. "TransOutBins"=>[
  490. [
  491. 'BinInfo_Code'=>'',//库位Code
  492. 'StoreUOMQty'=>$v['dcsl']// 分配数量
  493. ]
  494. ]
  495. ,"DescFlexField"=>[
  496. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  497. "PubDescSeg4"=>$params['number'],//订单编码
  498. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  499. ],
  500. ];
  501. }
  502. $data = [];
  503. $data[] = [
  504. "OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回
  505. "TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看 TransOut001 组织间调拨 TransOut002 仓库转储 TransOut004 委外加工发料 TransOut005 委外加工退料
  506. "BusinessDate"=>date("Y-m-d",$params['time']),//日期
  507. "TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货
  508. "TransOutLines"=>$trans_out_lines,
  509. "DescFlexField"=>[
  510. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  511. "PubDescSeg4"=>$params['number'],//订单编码
  512. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  513. ],
  514. ];
  515. return $data;
  516. }
  517. //销售单的数据转化
  518. public function xsdDataTrans($params){
  519. $so_lines = [];
  520. foreach($params['list'] as $k=>$v){
  521. $so_lines[] = [
  522. 'TU'=>"条",//销售单位编码
  523. 'ItemCode'=>$v['jm'],//用友的编码
  524. 'PU'=>'条',//计价单位编码
  525. "ShipTogetherFlag"=>-1,//成套收发货标志
  526. 'DocLineNo'=>$k+1,
  527. 'CustomerItemNo'=>'',//客户料号
  528. 'CustomerItemName'=>'',//客户品名
  529. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  530. 'PubDescSeg10'=>'',
  531. 'SOShiplineDTOList'=>[ //销售订单计划行
  532. [
  533. 'IsMRPRequire', //MRP需求
  534. 'DemandType',//需求分类
  535. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  536. ]
  537. ],
  538. 'RecTerm'=>'',//目前找不到了
  539. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  540. 'UsableQtyOfInv'=>0,//文档中未查询到
  541. 'PubDescSeg3'=>'',
  542. 'PubDescSeg4'=>'',
  543. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  544. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  545. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  546. 'DescFlexField'=>[
  547. 'PubDescSeg3'=>'',
  548. ],
  549. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  550. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  551. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  552. 'Memo'=>'',//备注
  553. ];
  554. }
  555. $data = [];
  556. $data[] = [
  557. "OrderBy"=>$params['yyid'],//用友的商户的id
  558. "OtherID"=>$params['number'],//第三方传入ID
  559. "SaleDepartment"=>"",//部门编码 可为空
  560. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  561. "DocNo"=>'',//单据类型编码
  562. "AC"=>"C001",//人民币
  563. "TC"=>"C001",//人民币
  564. "ShipToSite"=>"",//收货位置编码
  565. "PubDescSeg2"=>"",
  566. "SOSrcType"=>0,
  567. "Seller"=>"",//业务员编码 可为空
  568. "ConfirmTerm"=>"",//但是现有文档没有
  569. "Memo"=>$params['number'],//备注
  570. "ShipRule"=>"",//但是现有文档没有
  571. "SOLineDTOList"=>$so_lines,
  572. ];
  573. return $data;
  574. }
  575. public function xsdTwoDataTrans($params){
  576. $so_lines = [];
  577. foreach($params['list'] as $k=>$v){
  578. $so_lines[] = [
  579. 'TU'=>"条",//销售单位编码
  580. 'ItemCode'=>$v['jm'],//用友的编码
  581. 'PU'=>'条',//计价单位编码
  582. "ShipTogetherFlag"=>-1,//成套收发货标志
  583. 'DocLineNo'=>$k+1,
  584. 'CustomerItemNo'=>'',//客户料号
  585. 'CustomerItemName'=>'',//客户品名
  586. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  587. 'PubDescSeg10'=>'',
  588. 'SOShiplineDTOList'=>[ //销售订单计划行
  589. [
  590. 'IsMRPRequire', //MRP需求
  591. 'DemandType',//需求分类
  592. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  593. ]
  594. ],
  595. 'RecTerm'=>'',//目前找不到了
  596. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  597. 'UsableQtyOfInv'=>0,//文档中未查询到
  598. 'PubDescSeg3'=>'',
  599. 'PubDescSeg4'=>'',
  600. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  601. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  602. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  603. 'DescFlexField'=>[
  604. 'PubDescSeg3'=>'',
  605. ],
  606. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  607. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  608. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  609. 'Memo'=>'',//备注
  610. ];
  611. }
  612. $data = [];
  613. $data[] = [
  614. "OrderBy"=>$params['yyid'],//用友的商户的id
  615. "OtherID"=>$params['number'],//第三方传入ID
  616. "SaleDepartment"=>"",//部门编码 可为空
  617. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  618. "DocNo"=>'',//单据类型编码
  619. "AC"=>"C009",//美金
  620. "TC"=>"C009",//美金
  621. "ShipToSite"=>"",//收货位置编码
  622. "PubDescSeg2"=>"",
  623. "SOSrcType"=>0,
  624. "Seller"=>"",//业务员编码 可为空
  625. "ConfirmTerm"=>"",//但是现有文档没有
  626. "Memo"=>$params['number'],//备注
  627. "ShipRule"=>"",//但是现有文档没有
  628. "SOLineDTOList"=>$so_lines,
  629. ];
  630. return $data;
  631. }
  632. public function cgdDataTrans($params){
  633. $po_lines = [];
  634. foreach($params['list'] as $k=>$v){
  635. $po_lines[] = [
  636. //"POLineID"=>0,//采购订单行ID
  637. 'ItemInfo'=>[
  638. 'm_code'=>$v['jm'],//用友料号
  639. ],
  640. "ReqQtyTU"=>$v['dcsl'],//需求数量
  641. "ReqQtyTBU"=>0,//确认数量
  642. "SupplierConfirmQtyTU"=>$v['dcsl'],//确认数量
  643. "SupplierConfirmQtyTBU"=>0,//确认数量
  644. "FinallyPriceTC"=>$v['final_price'],//最终价格
  645. "IsPresent"=>false,//赠品
  646. ];
  647. }
  648. $data = [];
  649. $data[] = [
  650. 'DocNo'=>"",
  651. "DocumentType"=>'PO01',//PO01 标准采购默认值
  652. 'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325
  653. "BusinessDate"=>date("Y-m-d H:i:s"),
  654. 'OtherID'=>$params['number'],
  655. 'DescFlexField'=>(object)[
  656. ],
  657. 'TC'=>'C001',
  658. 'AC'=>'C001',
  659. "Memo"=>$params['number'],
  660. 'Supplier'=>[
  661. 'Code'=>$params['gys'],//供应商编码 到时间找下
  662. ],
  663. 'IsPriceIncludeTax'=>false,
  664. "POLineDTOList"=>$po_lines
  665. ];
  666. return $data;
  667. }
  668. public function yybzchDataTrans($params){
  669. $data = [];
  670. foreach($params['list'] as $k=>$v ){
  671. $data[] = [
  672. "SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4
  673. "SrcDocNo"=>$params['xs_no'],//来源单号
  674. "SrcDocLineNo"=>$v['doclineno'],
  675. "SrcDocSubLineNo"=>$v['docsublineno'],
  676. //"WH"=>'',//存储地点ID 找不到id 那就找个WHcode
  677. 'WHCode'=>$params['drckbm'],//存储地点code 这里的参数为啥这么诡异 是因为 不想在很设置参数了 都按照调出的写法组件数据了
  678. "CurShipQty1"=>$v['dcsl'],//本次出货量
  679. "SOIsConsign"=>false,// 是否补货
  680. "OptionalSplitTerm"=>[],
  681. "DescFlexField"=>(object)[],
  682. "LineDescFlexField"=>(object)[],
  683. //"ShipDate",//出货单日期(该属性可为空,且无默认值)
  684. //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)
  685. "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3
  686. ];
  687. }
  688. return $data;
  689. }
  690. //销售单的数据转化
  691. public function cjlpDataTrans($params){
  692. $list = [];
  693. foreach($params['list'] as $k=>$v){
  694. $list[] = [
  695. "Code"=>$v['jm'],//料号
  696. "Code1"=>"",//参考料号1
  697. "Name"=>$v['zh'],//品名
  698. "MainItemCategory"=>[
  699. "Code"=>$v['bm']
  700. ],
  701. "Org"=>[
  702. "Code"=>$params['ztcode']
  703. ],
  704. "OtherID"=>1,
  705. "PurchaseInfo"=>[
  706. "BudgetControlType"=>-1,//预算控制方式
  707. "PriceSource"=>2,//取价来源
  708. "InquireRule"=>-1,//询价策略
  709. 'InquireFixedPeriod'=>0,//间隔期
  710. "StatisticPeriod"=>-1,//配额统计期间
  711. "IsPUTradePathModify"=>true,//采购贸易路径可改
  712. "IsPURtnTradePathModify"=>true,//采购退货贸易路径可改
  713. ],
  714. "InventoryUOM"=>[
  715. "Code"=>'条'
  716. ],
  717. "InventorySecondUOM"=>[
  718. "Code"=>''
  719. ],
  720. "IsDualUOM"=>false,
  721. "InventoryInfo"=>[
  722. "InventoryPlanningMethod"=>4,//规划方法
  723. "InventoryPlanTime"=>-1,//
  724. "TurnOverRate"=>1,//
  725. "ReserveMode"=>-1,//
  726. "SupplyMethod"=>-1,//
  727. ],
  728. "DescFlexField"=>[
  729. "PrivateDescSeg1"=>"01",
  730. "PubDescSeg5"=>"01"
  731. ],
  732. "Description"=>$v['title'],
  733. "ItemForm"=>2001,//料品形态
  734. "ItemFormAttribute"=>10,//料品形态属性
  735. "IsInventoryEnable"=>true,//可库存交易
  736. "IsPurchaseEnable"=>true,//可采购
  737. "IsSalesEnable"=>true,//可采购
  738. "IsBuildEnable"=>true,//可生产
  739. "IsOutsideOperationEnable"=>true,//可委外
  740. "IsMRPEnable"=>true,//可MRP
  741. "IsBOMEnable"=>true,//可BOM
  742. "IsCostCalByGrade"=>false,//等级影响成本
  743. "IsCostCalByPotency"=>false,//成分影响成本
  744. "IsGradeControl"=>false,//等级控制
  745. "StandardGrade"=>-1,//标准等级
  746. "StartGrade"=>-1,//起始等级
  747. "EndGrade"=>-1,//结束等级
  748. "IsPotencyControl"=>false,//成分控制
  749. "StandardPotency"=>-1,//标准成分
  750. "StartPotency"=>-1,//起始成分
  751. "EndPotency"=>-1,// 结束成分
  752. ];
  753. }
  754. return $list;
  755. }
  756. public function cprkDataTrans($params){
  757. $list = [];
  758. foreach($params['list'] as $k=>$v){
  759. $tmp = [
  760. "MOKey"=>[
  761. "OtherID"=>"",
  762. "ID"=>0,
  763. "DocNo"=>$params['rkcode'],//需要填写入库 rkcode 传递
  764. "OrgID"=>0,
  765. "IsSuccess"=>1,
  766. "ErrorInfo"=>"",
  767. "CUD"=>0,
  768. ],
  769. "Wh"=>[
  770. "Code"=>$params['rev_wh_code'],//存储地点信息 传递
  771. ],
  772. "LineNum"=>$k,//行号
  773. "StorageType"=>4,//
  774. "Grade"=>0,//等级
  775. "Element"=>0,
  776. "CompleteQty"=>$v['sl'],//申报数量(生产单位)
  777. "CompleteQtyByWhUOM"=>$v['sl'],//申报数量(库存单位)
  778. "CompleteQtyByCostUOM"=>$v['sl'],//申报数量(成本单位)
  779. "CUD"=>0,
  780. "OwnerOrg"=>[
  781. "Code"=>$params['org_code'],//货主组织编码
  782. ],
  783. "OutputType"=>0,//产出类型
  784. "Item"=>[
  785. "Code"=>$v['jm'],//编码 其实是用友的料号
  786. ],
  787. "ScrapQty"=>0,//报废数量
  788. "ScrapQtyByCostUOM"=>0,//报废数量(成本单位)
  789. "PUToPBURate"=>0,//生产主-生产副
  790. "CUToCBURate"=>0,//成本主-成本副
  791. "PBUToCBURate"=>0,//生产-成本
  792. "SourceRcvRptLine"=>[ //来源入库单行
  793. "RcvRptDocDTO"=>[ //入库单DTO
  794. "ID"=>0, //唯一标示
  795. "DocType"=>[ //单据类型
  796. 'Code'=>0,
  797. ],
  798. "BusinessDate"=>'',//业务日期
  799. "DocNo"=>"",//单号
  800. "SourceDoc"=>[ //来源单据
  801. "MOSrcDocType"=>0,//来源单据类型
  802. "SrcDocOrg"=>0,//
  803. "SrcDoc"=>[ //来源单据
  804. "ID"=>$params['rkid'], //单据ID 徐凯传递的是$data['rkid']
  805. "EntityType"=>'UFIDA.U9.MO.MO.MO',//单据类型
  806. ],
  807. "SrcDocVer"=>'',//单据版本
  808. "SrcDocLine"=>[
  809. "ID"=>0,
  810. "EntityType"=>'',
  811. ],
  812. "SrcDocSubline"=>[
  813. "ID"=>0,
  814. "EntityType"=>'',
  815. ],
  816. "SrcDocNo"=>$params['rkid'],//单据号 徐凯传递了$data['rkid']
  817. "SrcDocLineNo"=>'',//行号
  818. "SrcDocSublineNo"=>10+$k,
  819. "SrcDocID"=>$params['rkid'],//来源单据ID 徐凯传递了$data['rkid']
  820. "SrcDocLineID"=>0,
  821. "SrcDocType"=>'',
  822. ],
  823. "DocDate"=>date("Y-m-d",time()),
  824. "RcvOrg"=>[ //入库组织
  825. "Code"=>$params['rec_code'],//入库组织编码 需填写
  826. ],
  827. "Org"=>[
  828. "Code"=>$params['org_code'],//组织编码 需填写
  829. ],
  830. "Direction"=>0,
  831. "DocState"=>0,
  832. "RcvDep"=>[
  833. "ID"=>0,
  834. "Code"=>'',
  835. "Name"=>''
  836. ],
  837. "RcvPerson"=>[
  838. "ID"=>0,
  839. "Code"=>'',
  840. "Name"=>''
  841. ],
  842. "OtherID"=>"",
  843. ],
  844. "ProductUOM"=>[
  845. "Code"=>'条',
  846. ],
  847. "ProductBaseUOM"=>[
  848. "Code"=>'条',
  849. ],
  850. "StoreUOM"=>[
  851. "Code"=>'条',
  852. ],
  853. "StoreBaseUOM"=>[
  854. "Code"=>'条',
  855. ],
  856. "CoUOM"=>[
  857. "Code"=>'条',
  858. ],
  859. "CostBaseUOM"=>[
  860. "Code"=>'条',
  861. ],
  862. "OperationState"=>0,
  863. "OutputType"=>0,
  864. "Item"=>[
  865. "Code"=>$v['jm'],//料号 徐凯传递的是$data['jm']
  866. ],
  867. "OwnerOrg"=>[
  868. "Code"=>$params['org_code'],//货主组织编码 需填写
  869. ],
  870. "PUToPBURate"=>0,
  871. "SUToSBURate"=>0,
  872. "PBUToSBURate"=>0,
  873. "CUToCBURate"=>0,
  874. "PBUToCBURate"=>0,
  875. "Grade"=>0,
  876. "Element"=>0,
  877. "Wh"=>[
  878. "Code"=>$params['rev_wh_code'],//存储地点信息 传递
  879. ],
  880. "StorageType"=>4,
  881. "RcvValiddate"=>0,
  882. "RcvQtyByProductUOM"=>0,
  883. "RcvQtyByWhUOM"=>0,
  884. "RcvQtyByCostUom"=>0,
  885. "RcvOrg"=>[ //入库组织
  886. "Code"=>001,//编码
  887. ],
  888. "PerformingOrg"=>[ //执行组织
  889. "Code"=>001 //编码
  890. ],
  891. "CUD"=>0,
  892. "LineNum"=>0,
  893. "MO"=>[ //生产订单
  894. "Code"=>$params['rkcode'],//徐凯写了 rkcode
  895. ],
  896. "ID"=>0,
  897. ]
  898. ];
  899. $list[] = $tmp;
  900. }
  901. $res = [
  902. "DocNo"=>"",//
  903. "CompleteList"=>$list,
  904. "DescFlexField"=>[
  905. //"PubDescSeg2"=>$params['yyid'],//kh
  906. "PubDescSeg4"=>$params['number'],//订单编码
  907. "PubDescSeg5"=>$params['shipremarks'],//备注
  908. ],
  909. "DocType"=>[
  910. "Code"=>0,
  911. ],
  912. "BusinessDate"=>(date("Y-m-d",time())),
  913. "OtherID"=>'',//订单编码
  914. "Direction"=>0,
  915. "IsOffLine"=>1, //是否撤线报
  916. "DocState"=>0,
  917. "Remark"=>time(),
  918. "RcvPerson"=>[
  919. "Code"=>"ERP"
  920. ]
  921. ];
  922. if(!empty($params['yyid'])){
  923. $res['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户
  924. }
  925. return [$res];
  926. }
  927. public function scdDataTrans($params){
  928. $list = [];
  929. foreach($params['list'] as $k=>$v){
  930. $info = [
  931. "OtherID"=>"",
  932. "Org"=>[
  933. "Code"=>$params['org_code']//生产组织编码
  934. ],
  935. "ItemMaster"=>[
  936. "Code"=>$v['jm'],//料号
  937. ],
  938. "DocType"=>[
  939. "Code"=>$params['djhlx']//单据类型
  940. ],
  941. "Department"=>[
  942. "Code"=>$params['scbm_code']//生产部门编码
  943. ],
  944. "ExpandLevel"=>0, //展开阶数
  945. "AlternateType"=>0,//生产目的
  946. "RoutingAlternate"=>0,//工艺生产目的
  947. "RoutingEffeDate"=>'',//工艺有效日期
  948. "ProductQty"=>$v['sl'],
  949. "ProductUOM"=>[
  950. "Code"=>'条'
  951. ],
  952. "StartDate"=>date('Y-m-d',$params['time']),//计划开工日期
  953. "CompleteDate"=>date('Y-m-d',$params['time']),//计划完工日期
  954. "MOSourceDocType"=>0,//来源单据类型
  955. "OwnerOrg"=>[
  956. "Code"=>$params['owner_org_code']//货主组织编码
  957. ],
  958. "SCVWh"=>[
  959. "Code"=>$v['drck']//完工存储地点编码
  960. ],
  961. "DemandCode"=>-1,//需求分类
  962. "IsFirmed"=>false,//锁定标志
  963. "IsCapacityLimit"=>false,//有限产能
  964. "Priority"=>0,// 优先级
  965. "CUD"=>0,//增删改类型
  966. "BOMType"=>0,//BOM类型
  967. "Description"=>$params['title'],//备注
  968. "MRPQty"=>0,//MRP数量
  969. "MOID"=>0,//生产订单ID
  970. "PBUToSBURate"=>0,//生产-库存
  971. "PBUToCBURate"=>0,//生产-成本
  972. "DescFlexField"=>[
  973. "PubDescSeg4"=>$params['title'],//erp单号
  974. "PubDescSeg5"=>$params['shipremarks'],//erp备注
  975. ]
  976. ];
  977. if(!empty($params['yyid'])){
  978. $info['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户
  979. }
  980. $list[] = $info;
  981. }
  982. return $list;
  983. }
  984. }