Model_apiyyv1.php 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325
  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 gcxsdWaiXiaoCreateBk($params,$token){
  98. $list = $this->xsdDataTransGC($params);
  99. foreach($list as $k=>$v){
  100. $list[$k]['DescFlexField']["PrivateDescSeg3"] = $params['number'];
  101. $list[$k]['DescFlexField']["PrivateDescSeg6"] = 'MJ00199';
  102. $list[$k]['DescFlexField']["PubDescSeg6"] = 'MJ00199';
  103. $list[$k]['DescFlexField']["PubDescSeg3"] = $params['number'];
  104. // foreach($v['SOLineDTOList'] as $kk=>$vv){
  105. // $list[$k]['SOLineDTOList'][$kk]['DescFlexField']['PrivateDescSeg3'] = $params['number'];
  106. // $list[$k]['SOLineDTOList'][$kk]['DescFlexField']['PubDescSeg3'] = $params['number'];
  107. // }
  108. }
  109. $url = '/U9C/webapi/SO/Create';
  110. $url = $this->base_url.$url;
  111. $header[] = "Content-Type: application/json";
  112. $header[] = "Token: ".$token;
  113. $res = $this->sendReq($url,$header,json_encode($list));
  114. return array($res,$list);
  115. }
  116. /**
  117. * 销售单状态查询 看看是否是审核状态
  118. */
  119. public function xsdCxByNo($xcd_no,$token){
  120. $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 ";;
  121. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  122. $url = $this->base_url.$url;
  123. $header[] = "Content-Type: application/json";
  124. $header[] = "Token: ".$token;
  125. $res = $this->sendReq($url,$header,json_encode($list));
  126. return array($res,$list);
  127. }
  128. /**
  129. * 生成u9的销售单
  130. * 只是财务记录 不牵扯到库存
  131. */
  132. public function xsdTwoCreate($params,$token){
  133. $list = $this->xsdTwoDataTrans($params);
  134. $url = '/U9C/webapi/SO/Create';
  135. $url = $this->base_url.$url;
  136. $header[] = "Content-Type: application/json";
  137. $header[] = "Token: ".$token;
  138. $res = $this->sendReq($url,$header,json_encode($list));
  139. return array($res,$list);
  140. }
  141. /**
  142. * 销售单提交
  143. */
  144. public function xsdSubmit($params,$token){
  145. $list = [
  146. [
  147. 'Code'=>$params['number'] //单号
  148. ]
  149. ];
  150. $url = '/U9C/webapi/SO/Submit';
  151. $url = $this->base_url.$url;
  152. $header[] = "Content-Type: application/json";
  153. $header[] = "Token: ".$token;
  154. $res = $this->sendReq($url,$header,json_encode($list));
  155. return array($res,$list);
  156. }
  157. /**
  158. * 销售单审核
  159. */
  160. public function xsdApprove($params,$token){
  161. $list = [
  162. [
  163. 'Code'=>$params['number'] //单号
  164. ]
  165. ];
  166. $url = '/U9C/webapi/SO/Approve';
  167. $url = $this->base_url.$url;
  168. $header[] = "Content-Type: application/json";
  169. $header[] = "Token: ".$token;
  170. $res = $this->sendReq($url,$header,json_encode($list));
  171. return array($res,$list);
  172. }
  173. /**
  174. * 根据调入单查询调入单的审核状态
  175. */
  176. public function drdcxBydrd($drd_no,$token){
  177. $list["SqlString"] = "select docno,status from InvDoc_TransferIn where docno ='".$drd_no."'";
  178. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  179. $url = $this->base_url.$url;
  180. $header[] = "Content-Type: application/json";
  181. $header[] = "Token: ".$token;
  182. $res = $this->sendReq($url,$header,json_encode($list));
  183. return array($res,$list);
  184. }
  185. /**
  186. * 根据调出单的单号做关联查询 然后匹配存储调入单的审核
  187. */
  188. public function drdcxBydcd($dcd_no,$token){
  189. // $list["SqlString"] = "select DescFlexField_PubDescSeg4 ,DocNo from InvDoc_TransferIn where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  190. $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."'";
  191. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  192. $url = $this->base_url.$url;
  193. $header[] = "Content-Type: application/json";
  194. $header[] = "Token: ".$token;
  195. $res = $this->sendReq($url,$header,json_encode($list));
  196. return array($res,$list);
  197. }
  198. //销售单按照多单号查询
  199. public function xscsByordernos($xs_no_list,$token){
  200. $str = '';
  201. foreach($xs_no_list as $k=>$v){
  202. if($k==0){
  203. $str .="'".$v."'";
  204. }else{
  205. $str .=",'".$v."'";
  206. }
  207. }
  208. //$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 ";
  209. $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 ";
  210. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  211. $url = $this->base_url.$url;
  212. $header[] = "Content-Type: application/json";
  213. $header[] = "Token: ".$token;
  214. $res = $this->sendReq($url,$header,json_encode($list));
  215. return array($res,$list);
  216. }
  217. /**
  218. * 调入单提交
  219. */
  220. public function drdSubmit($params,$token){
  221. $list = [
  222. [
  223. 'Code'=>$params['number'] //单号
  224. ]
  225. ];
  226. $url = '/U9C/webapi/TransferIn/Submit';
  227. $url = $this->base_url.$url;
  228. $header[] = "Content-Type: application/json";
  229. $header[] = "Token: ".$token;
  230. $res = $this->sendReq($url,$header,json_encode($list));
  231. return array($res,$list);
  232. }
  233. /**
  234. * 调入单审核
  235. */
  236. public function drdApprove($params,$token){
  237. $list = [
  238. [
  239. 'Code'=>$params['number'] //单号
  240. ]
  241. ];
  242. $url = '/U9C/webapi/TransferIn/Approve';
  243. $url = $this->base_url.$url;
  244. $header[] = "Content-Type: application/json";
  245. $header[] = "Token: ".$token;
  246. $res = $this->sendReq($url,$header,json_encode($list));
  247. return array($res,$list);
  248. }
  249. /**
  250. * 生成u9的采购单
  251. * 只是财务记录 不牵扯到库存
  252. * 目前采用的是无源的
  253. */
  254. public function cgdCreate($params,$token){
  255. $list = $this->cgdDataTrans($params);
  256. $url = '/U9C/webapi/PurchaseOrder/Create';
  257. $url = $this->base_url.$url;
  258. $header[] = "Content-Type: application/json";
  259. $header[] = "Token: ".$token;
  260. $res = $this->sendReq($url,$header,json_encode($list));
  261. return array($res,$list);
  262. }
  263. /**
  264. * 采购单提交
  265. */
  266. public function cgdSubmit($params,$token){
  267. $list = [
  268. [
  269. 'Code'=>$params['number'] //单号
  270. ]
  271. ];
  272. $url = '/U9C/webapi/PurchaseOrder/Submit';
  273. $url = $this->base_url.$url;
  274. $header[] = "Content-Type: application/json";
  275. $header[] = "Token: ".$token;
  276. $res = $this->sendReq($url,$header,json_encode($list));
  277. return array($res,$list);
  278. }
  279. /**
  280. * 采购单审核
  281. */
  282. public function cgdApprove($params,$token){
  283. $list = [
  284. [
  285. 'Code'=>$params['number'] //单号
  286. ]
  287. ];
  288. $url = '/U9C/webapi/PurchaseOrder/Approve';
  289. $url = $this->base_url.$url;
  290. $header[] = "Content-Type: application/json";
  291. $header[] = "Token: ".$token;
  292. $res = $this->sendReq($url,$header,json_encode($list));
  293. return array($res,$list);
  294. }
  295. /**
  296. * 生成u9的标准出货单
  297. * 会造成库存变动
  298. * 使用的是有源的就是销售单
  299. */
  300. public function bzchCreate($params,$token){
  301. $list = $this->yybzchDataTrans($params);
  302. $url = '/U9C/webapi/Ship/CreateBySrcDoc';
  303. $url = $this->base_url.$url;
  304. $header[] = "Content-Type: application/json";
  305. $header[] = "Token: ".$token;
  306. $res = $this->sendReq($url,$header,json_encode($list));
  307. return array($res,$list);
  308. }
  309. /**
  310. * 创建生产单
  311. */
  312. public function scdCreate($params,$token){
  313. $list = $this->scdDataTrans($params);
  314. $url = '/U9C/webapi/MODoc/Create';
  315. $url = $this->base_url.$url;
  316. $header[] = "Content-Type: application/json";
  317. $header[] = "Token: ".$token;
  318. $res = $this->sendReq($url,$header,json_encode($list));
  319. return array($res,$list);
  320. }
  321. /**
  322. * 查询生产订单状态
  323. */
  324. public function cxScdStatus($doc_no,$token){
  325. $list["SqlString"] = "select top 2 docno,DocState from mo_mo where docno = '".$doc_no."'";
  326. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  327. $url = $this->base_url.$url;
  328. $header[] = "Content-Type: application/json";
  329. $header[] = "Token: ".$token;
  330. $res = $this->sendReq($url,$header,json_encode($list));
  331. return array($res,$list);
  332. }
  333. /**
  334. * 标准出货单提交并审核
  335. */
  336. public function bzchSubmitAndApprove($params,$token){
  337. $list = [
  338. [
  339. 'Code'=>$params['number'] //单号
  340. ]
  341. ];
  342. $url = '/U9C/webapi/Ship/SubmitAndApprove';
  343. $url = $this->base_url.$url;
  344. $header[] = "Content-Type: application/json";
  345. $header[] = "Token: ".$token;
  346. $res = $this->sendReq($url,$header,json_encode($list));
  347. return array($res,$list);
  348. }
  349. /**
  350. * 生成u9的标准收获单
  351. * 会造成库存变动
  352. * 这个也是有源的是采购单 不过估计用不上 先不写
  353. */
  354. public function bzshCreate($params,$token){
  355. }
  356. /**
  357. * 生成成品入库单
  358. */
  359. public function cprkCreate($params,$token){
  360. $list = $this->cprkDataTrans($params);
  361. $url = '/U9C/webapi/RcvRptDoc/Create';
  362. $url = $this->base_url.$url;
  363. $header[] = "Content-Type: application/json";
  364. $header[] = "Token: ".$token;
  365. $res = $this->sendReq($url,$header,json_encode($list));
  366. return array($res,$list);
  367. }
  368. /**
  369. * 成品入库单提交
  370. */
  371. public function cprkApprove($params,$token){
  372. $url = '/U9C/webapi/RcvRptDoc/Approve';
  373. $url = $this->base_url.$url;
  374. $header[] = "Content-Type: application/json";
  375. $header[] = "Token: ".$token;
  376. $res = $this->sendReq($url,$header,json_encode($params));
  377. return array($res,$params);
  378. }
  379. /**
  380. * 成品入库查询
  381. */
  382. public function cprkCx($params,$token){
  383. $url = '/U9C/webapi/RcvRptDoc/Query';
  384. $url = $this->base_url.$url;
  385. $header[] = "Content-Type: application/json";
  386. $header[] = "Token: ".$token;
  387. $res = $this->sendReq($url,$header,json_encode($params));
  388. return array($res,$params);
  389. }
  390. /**
  391. * 成品入库单审核
  392. */
  393. //根据erp的单号查询调出单是够存在
  394. public function xcDcdByOtherId($dcd_no,$token){
  395. $list["SqlString"] = "select DescFlexField_PubDescSeg4,DocNo from InvDoc_TransferOut where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  396. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  397. $url = $this->base_url.$url;
  398. $header[] = "Content-Type: application/json";
  399. $header[] = "Token: ".$token;
  400. $res = $this->sendReq($url,$header,json_encode($list));
  401. return array($res,$list);
  402. }
  403. /**
  404. * 调出单的二次验证
  405. * 避免因为其他组织使用相同的erp单号导致的冲突 不能创建成品库的数据
  406. */
  407. public function xcDcdByOtherIdCheck($dcd_no,$token){
  408. $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."' ";
  409. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  410. $url = $this->base_url.$url;
  411. $header[] = "Content-Type: application/json";
  412. $header[] = "Token: ".$token;
  413. $res = $this->sendReq($url,$header,json_encode($list));
  414. return array($res,$list);
  415. }
  416. /**
  417. * 查询料品
  418. */
  419. public function cxLp($params,$token){
  420. $list = [];
  421. foreach($params as $k=>$v){
  422. $list[] =[
  423. "ItemMaster"=>[
  424. "Code"=>$v['jm']
  425. ]
  426. ];
  427. }
  428. $url = '/U9C/webapi/ItemMaster/Query';
  429. $url = $this->base_url.$url;
  430. $header[] = "Content-Type: application/json";
  431. $header[] = "Token: ".$token;
  432. $res = $this->sendReq($url,$header,json_encode($list));
  433. return array($res,$list);
  434. }
  435. /**
  436. * 查询料品
  437. */
  438. public function cxLpByJm($jm,$token){
  439. $list = [];
  440. $list[] =[
  441. "ItemMaster"=>[
  442. "Code"=>$jm
  443. ]
  444. ];
  445. $url = '/U9C/webapi/ItemMaster/Query';
  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 $res;
  451. }
  452. /**
  453. * 创建料品
  454. */
  455. public function cjLp($params,$token){
  456. $list = $this->cjlpDataTrans($params);
  457. $url = '/U9C/webapi/ItemMaster/Create';
  458. $url = $this->base_url.$url;
  459. $header[] = "Content-Type: application/json";
  460. $header[] = "Token: ".$token;
  461. $res = $this->sendReq($url,$header,json_encode($list));
  462. $this->logic_ding->sendToDing("创建料品监听".json_encode($params,JSON_UNESCAPED_UNICODE)."||".json_encode($res,JSON_UNESCAPED_UNICODE)."||".$url);
  463. return array($res,$list);
  464. }
  465. /**
  466. * 创建料品 并且同步到各个平台
  467. */
  468. public function cjLpAndtbLp($info,$token){
  469. $list = $this->cjlpAndtbLpDataTrans($info);
  470. $url = '/U9C/webapi/ItemMaster/Create';
  471. $url = $this->base_url.$url;
  472. $header[] = "Content-Type: application/json";
  473. $header[] = "Token: ".$token;
  474. $res = $this->sendReq($url,$header,json_encode($list));
  475. $this->logic_ding->sendToDing("创建料品监听".json_encode($info,JSON_UNESCAPED_UNICODE)."||".json_encode($res,JSON_UNESCAPED_UNICODE)."||".$url);
  476. if(empty($res["Data"])){
  477. return array($res,$list);
  478. if(empty($res["Data"][0])){
  479. return array($res,$list);
  480. }
  481. if(!empty($res["Data"][0]["m_errorMsg"])){
  482. return array($res,$list);
  483. }
  484. }
  485. return array($res,$list);
  486. }
  487. public function tbLpNew($info,$token){
  488. $tb_list = [];
  489. $tb_owner = [120,130];
  490. foreach($tb_owner as $k=>$v){
  491. if($info['owner_code'] == $v){
  492. unset($tb_owner[$k]);
  493. }
  494. }
  495. $tb_owner = array_values($tb_owner);
  496. $tb_list[] = [
  497. "EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名
  498. "EntityCode"=>$info['jm'],
  499. "FromOrgCode"=>$info['owner_code'],//创建组织编码
  500. "ToOrgCodeList"=>$tb_owner,//要同步的组织
  501. "OtherID"=>'',
  502. "ContextDTO"=>[
  503. "EntCode"=>$info['ztcode'],//企业编码
  504. "OrgCode"=>$info['owner_code'],//组织编码
  505. "UserCode"=>'xk',//用户编码
  506. "UserPwd"=>'',//用户密码
  507. ]
  508. ];
  509. $url = '/U9C/webapi/ControlObjSend/ControlObjSend';
  510. $url = $this->base_url.$url;
  511. $header[] = "Content-Type: application/json";
  512. $header[] = "Token: ".$token;
  513. $res = $this->sendReq($url,$header,json_encode($tb_list));
  514. return array($res,$tb_list);
  515. }
  516. /**
  517. * 同步通知
  518. */
  519. public function tbLp($params,$token){
  520. $list = [];
  521. foreach($params['list'] as $k=>$v){
  522. $list[] = [
  523. "EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名
  524. "EntityCode"=>$v['jm'],
  525. "FromOrgCode"=>$params['owner_code'],//创建组织编码
  526. "ToOrgCodeList"=>[140],//要同步的组织
  527. "OtherID"=>'',
  528. "ContextDTO"=>[
  529. "EntCode"=>$params['ztcode'],//企业编码
  530. "OrgCode"=>$params['owner_code'],//组织编码
  531. "UserCode"=>'xk',//用户编码
  532. "UserPwd"=>'',//用户密码
  533. ]
  534. ];
  535. }
  536. $url = '/U9C/webapi/ControlObjSend/ControlObjSend';
  537. $url = $this->base_url.$url;
  538. $header[] = "Content-Type: application/json";
  539. $header[] = "Token: ".$token;
  540. $res = $this->sendReq($url,$header,json_encode($list));
  541. return array($res,$list);
  542. }
  543. //由于逻辑修改造成 需要查询调出单是审核完毕
  544. public function xdlsCxDcd($dcd_no,$token){
  545. $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."'";
  546. //$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."'";
  547. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  548. $url = $this->base_url.$url;
  549. $header[] = "Content-Type: application/json";
  550. $header[] = "Token: ".$token;
  551. $res = $this->sendReq($url,$header,json_encode($list));
  552. return array($res,$list);
  553. }
  554. //通过erp的单号查询相关生产单和调出单好
  555. public function cxDcdByErpNo($erp_no,$token){
  556. $list["SqlString"] = "select top 50 a.docno ruku_danhao,d.DescFlexField_PubDescSeg4 erp_danhao,a.CreatedBy,a.createdon,a.DocState,b.mo,d.docno mo_no,e.docno dianchu_danhao from Complete_RcvRptDoc a left join Complete_RcvRptDocLine b on b.RcvRptDoc=a.id left join CBO_ItemMaster c on b.item=c.id left join MO_MO d on b.mo=d.id left join InvDoc_TransferOut e on e.DescFlexField_PubDescSeg4=d.DescFlexField_PubDescSeg4 Where d.DescFlexField_PubDescSeg4='".$erp_no."' order by a.createdon ";
  557. //"select top 50 a.docno ruku_danhao,d.DescFlexField_PubDescSeg4 erp_danhao,a.CreatedBy,a.createdon,a.DocState,b.mo,d.docno mo_no,e.docno dianchu_danhao " +
  558. //" from Complete_RcvRptDoc a " +
  559. //" left join Complete_RcvRptDocLine b on b.RcvRptDoc=a.id " +
  560. //" left join CBO_ItemMaster c on b.item=c.id " +
  561. //" left join MO_MO d on b.mo=d.id " +
  562. //" left join InvDoc_TransferOut e on e.DescFlexField_PubDescSeg4=d.DescFlexField_PubDescSeg4 " +
  563. //"where d.DescFlexField_PubDescSeg4='QQS-31229-005' " +
  564. //" (e.docno is not null ) and (a.createdon >'2023-12-26' and a.createdon >'2023-12-27')" +
  565. //" order by a.createdon ";
  566. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  567. $url = $this->base_url.$url;
  568. $header[] = "Content-Type: application/json";
  569. $header[] = "Token: ".$token;
  570. $res = $this->sendReq($url,$header,json_encode($list));
  571. return array($res,$list);
  572. }
  573. //通过调出单号 获取调出单对应的erp单号
  574. public function cxDcdAboutErp($dcd_no,$token){
  575. $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,b.DescFlexSegments_PubDescSeg4 erp_no from InvDoc_TransferOut as a left join InvDoc_TransOutLine as b on a.id = b.TransferOut where a.DocNo = '".$dcd_no."'";
  576. //$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."'";
  577. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  578. $url = $this->base_url.$url;
  579. $header[] = "Content-Type: application/json";
  580. $header[] = "Token: ".$token;
  581. $res = $this->sendReq($url,$header,json_encode($list));
  582. return array($res,$list);
  583. }
  584. //获取erp的料号 不分大小写
  585. public function getLp($params,$token){
  586. $list = [];
  587. foreach($params as $k=>$v){
  588. $list[] = strtoupper($v['jm']);
  589. }
  590. $u9_jm_list = implode("','",$list);
  591. //select top 2 a.code '料号',a.name '品名' ,b.code '物料分类编码',c.name '物料分类名称',c.combinename '完整物料分类名称',a.SPECS '规格',a.ItemFormAttribute '料品形态属性编码',a.IsPurchaseEnable '可采购',a.IsBuildEnable '可生产',a.IsSalesEnable '可销售',d.name '库存分类名称',d.combinename '完整库存分类名称', a.descflexfield_privatedescseg1 '私有自定义项1', a.* from CBO_ItemMaster a left join CBO_Category b on a.MainItemCategory=b.id left join CBO_Category_trl c on a.MainItemCategory=c.id and c.sysmlflag='zh-CN' left join CBO_Category_trl d on a.StockCategory=d.id and d.sysmlflag='zh-CN' where a.code='1510101' and a.masterorg is null
  592. $list['SqlString'] = "select top 2 a.code 'm_code',a.name '品名' ,b.code '物料分类编码',c.name '物料分类名称',c.combinename '完整物料分类名称',a.SPECS '规格',a.ItemFormAttribute '料品形态属性编码',a.IsPurchaseEnable '可采购',a.IsBuildEnable '可生产',a.IsSalesEnable '可销售',d.name '库存分类名称',d.combinename '完整库存分类名称', a.descflexfield_privatedescseg1 '私有自定义项1', a.* from CBO_ItemMaster a left join CBO_Category b on a.MainItemCategory=b.id left join CBO_Category_trl c on a.MainItemCategory=c.id and c.sysmlflag='zh-CN' left join CBO_Category_trl d on a.StockCategory=d.id and d.sysmlflag='zh-CN' where LOWER(a.code) in ('".$u9_jm_list."') and a.masterorg is null";
  593. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  594. $url = $this->base_url.$url;
  595. $header[] = "Content-Type: application/json";
  596. $header[] = "Token: ".$token;
  597. $res = $this->sendReq($url,$header,json_encode($list));
  598. return array($res,$list);
  599. }
  600. public function sendReq($url,$header,$list){
  601. $ch = curl_init();
  602. curl_setopt($ch, CURLOPT_URL, $url);
  603. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  604. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  605. curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
  606. curl_setopt($ch, CURLOPT_POST, 1);
  607. curl_setopt($ch, CURLOPT_POSTFIELDS, $list);
  608. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  609. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  610. $res = curl_exec($ch);
  611. $res = json_decode($res,true);
  612. return $res;
  613. }
  614. //调出单的数据转化
  615. public function dcDataTrans($params){
  616. $trans_out_lines = [];
  617. foreach($params['list'] as $k=>$v){
  618. $trans_out_lines[] = [
  619. "ItemInfo" =>[
  620. "ItemCode"=>$v['jm'],//用友的简码
  621. ],
  622. "TransOutWh_Code"=>$params['dcckbm'],//调出仓库编码
  623. "StoreUOM_Code"=>"条",//调出库存单位Code 如条
  624. "StoreUOMQty"=>$v['dcsl'],//调出数量
  625. "StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  626. "LotInfo_Code"=>"",//批号Code 不知道有啥用 暂时留空吧
  627. "TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code
  628. "TransOutSubLines"=>[
  629. [
  630. 'TransInWh_Code'=>$params['drckbm']."",//调入仓库编码
  631. 'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  632. 'TransInOrg_Code'=>$params['drzz_code']."",//调入组织Code
  633. 'TransOutOwnerOrg_Code'=>$params['owner_code']."",//货主组织Code
  634. 'StoreUOMQty'=>$v['dcsl'],
  635. ]
  636. ],
  637. "TransOutBins"=>[
  638. [
  639. 'BinInfo_Code'=>'',//库位Code
  640. 'StoreUOMQty'=>$v['dcsl']// 分配数量
  641. ]
  642. ]
  643. ,"DescFlexField"=>[
  644. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  645. "PubDescSeg4"=>$params['number'],//订单编码
  646. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  647. ],
  648. ];
  649. }
  650. $data = [];
  651. $data[] = [
  652. "OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回
  653. "TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看 TransOut001 组织间调拨 TransOut002 仓库转储 TransOut004 委外加工发料 TransOut005 委外加工退料
  654. "BusinessDate"=>date("Y-m-d",$params['time']),//日期
  655. "TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货
  656. "TransOutLines"=>$trans_out_lines,
  657. "DescFlexField"=>[
  658. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  659. "PubDescSeg4"=>$params['number'],//订单编码
  660. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  661. ],
  662. ];
  663. return $data;
  664. }
  665. //销售单的数据转化
  666. public function xsdDataTrans($params){
  667. $so_lines = [];
  668. foreach($params['list'] as $k=>$v){
  669. $so_lines[] = [
  670. 'TU'=>"条",//销售单位编码
  671. 'ItemCode'=>$v['jm'],//用友的编码
  672. 'PU'=>'条',//计价单位编码
  673. "ShipTogetherFlag"=>-1,//成套收发货标志
  674. 'DocLineNo'=>$k+1,
  675. 'CustomerItemNo'=>'',//客户料号
  676. 'CustomerItemName'=>'',//客户品名
  677. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  678. 'PubDescSeg10'=>'',
  679. 'SOShiplineDTOList'=>[ //销售订单计划行
  680. [
  681. 'IsMRPRequire', //MRP需求
  682. 'DemandType',//需求分类
  683. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  684. ]
  685. ],
  686. 'RecTerm'=>'',//目前找不到了
  687. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  688. 'UsableQtyOfInv'=>0,//文档中未查询到
  689. 'PubDescSeg3'=>'',
  690. 'PubDescSeg4'=>'',
  691. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  692. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  693. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  694. 'DescFlexField'=>[
  695. 'PubDescSeg3'=>'',
  696. ],
  697. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  698. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  699. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  700. 'Memo'=>'',//备注
  701. ];
  702. }
  703. $data = [];
  704. $data[] = [
  705. "OrderBy"=>$params['yyid'],//用友的商户的id
  706. "OtherID"=>$params['number'],//第三方传入ID
  707. "SaleDepartment"=>"",//部门编码 可为空
  708. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  709. "DocNo"=>'',//单据类型编码
  710. "AC"=>"C001",//人民币
  711. "TC"=>"C001",//人民币
  712. "ShipToSite"=>"",//收货位置编码
  713. "PubDescSeg2"=>"",
  714. "SOSrcType"=>0,
  715. "Seller"=>"",//业务员编码 可为空
  716. "ConfirmTerm"=>"",//但是现有文档没有
  717. "Memo"=>$params['number'],//备注
  718. "ShipRule"=>"",//但是现有文档没有
  719. "SOLineDTOList"=>$so_lines,
  720. ];
  721. return $data;
  722. }
  723. //销售单的数据转化 工厂对外的销售单
  724. public function xsdDataTransGC($params){
  725. $so_lines = [];
  726. foreach($params['list'] as $k=>$v){
  727. $so_lines[] = [
  728. 'TU'=>"条",//销售单位编码
  729. 'ItemCode'=>$v['jm'],//用友的编码
  730. 'PU'=>'条',//计价单位编码
  731. "ShipTogetherFlag"=>-1,//成套收发货标志
  732. 'DocLineNo'=>$k+1,
  733. 'CustomerItemNo'=>'',//客户料号
  734. 'CustomerItemName'=>'',//客户品名
  735. //'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  736. 'PubDescSeg10'=>'',
  737. 'PriceSource'=>0,//从价目表中 获取价格
  738. 'SOShiplineDTOList'=>[ //销售订单计划行
  739. [
  740. 'IsMRPRequire', //MRP需求
  741. 'DemandType',//需求分类
  742. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  743. ]
  744. ],
  745. 'RecTerm'=>'',//目前找不到了
  746. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  747. 'UsableQtyOfInv'=>0,//文档中未查询到
  748. 'PubDescSeg3'=>'',
  749. 'PubDescSeg4'=>'',
  750. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  751. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  752. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  753. 'DescFlexField'=>[
  754. 'PubDescSeg3'=>'',
  755. ],
  756. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  757. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  758. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  759. 'Memo'=>'',//备注
  760. ];
  761. }
  762. $data = [];
  763. $data[] = [
  764. "OrderBy"=>$params['yyid'],//用友的商户的id
  765. "OtherID"=>$params['number'],//第三方传入ID
  766. "SaleDepartment"=>"",//部门编码 可为空
  767. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  768. "DocNo"=>'',//单据类型编码
  769. "AC"=>"C001",//人民币
  770. "TC"=>"C001",//人民币
  771. "ShipToSite"=>"",//收货位置编码
  772. "PubDescSeg2"=>"",
  773. "SOSrcType"=>0,
  774. "Seller"=>"",//业务员编码 可为空
  775. "ConfirmTerm"=>"",//但是现有文档没有
  776. "Memo"=>$params['number'],//备注
  777. "ShipRule"=>"",//但是现有文档没有
  778. "SOLineDTOList"=>$so_lines,
  779. ];
  780. return $data;
  781. }
  782. public function xsdTwoDataTrans($params){
  783. $so_lines = [];
  784. foreach($params['list'] as $k=>$v){
  785. $so_lines[] = [
  786. 'TU'=>"条",//销售单位编码
  787. 'ItemCode'=>$v['jm'],//用友的编码
  788. 'PU'=>'条',//计价单位编码
  789. "ShipTogetherFlag"=>-1,//成套收发货标志
  790. 'DocLineNo'=>$k+1,
  791. 'CustomerItemNo'=>'',//客户料号
  792. 'CustomerItemName'=>'',//客户品名
  793. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  794. 'PubDescSeg10'=>'',
  795. 'SOShiplineDTOList'=>[ //销售订单计划行
  796. [
  797. 'IsMRPRequire', //MRP需求
  798. 'DemandType',//需求分类
  799. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  800. ]
  801. ],
  802. 'RecTerm'=>'',//目前找不到了
  803. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  804. 'UsableQtyOfInv'=>0,//文档中未查询到
  805. 'PubDescSeg3'=>'',
  806. 'PubDescSeg4'=>'',
  807. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  808. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  809. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  810. 'DescFlexField'=>[
  811. 'PubDescSeg3'=>'',
  812. ],
  813. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  814. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  815. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  816. 'Memo'=>'',//备注
  817. ];
  818. }
  819. $data = [];
  820. $data[] = [
  821. "OrderBy"=>$params['yyid'],//用友的商户的id
  822. "OtherID"=>$params['number'],//第三方传入ID
  823. "SaleDepartment"=>"",//部门编码 可为空
  824. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  825. "DocNo"=>'',//单据类型编码
  826. "AC"=>"C009",//美金
  827. "TC"=>"C009",//美金
  828. "ShipToSite"=>"",//收货位置编码
  829. "PubDescSeg2"=>"",
  830. "SOSrcType"=>0,
  831. "Seller"=>"",//业务员编码 可为空
  832. "ConfirmTerm"=>"",//但是现有文档没有
  833. "Memo"=>$params['number'],//备注
  834. "ShipRule"=>"",//但是现有文档没有
  835. "SOLineDTOList"=>$so_lines,
  836. ];
  837. return $data;
  838. }
  839. public function cgdDataTrans($params){
  840. $po_lines = [];
  841. foreach($params['list'] as $k=>$v){
  842. $po_lines[] = [
  843. //"POLineID"=>0,//采购订单行ID
  844. 'ItemInfo'=>[
  845. 'm_code'=>$v['jm'],//用友料号
  846. ],
  847. "ReqQtyTU"=>$v['dcsl'],//需求数量
  848. "ReqQtyTBU"=>0,//确认数量
  849. "SupplierConfirmQtyTU"=>$v['dcsl'],//确认数量
  850. "SupplierConfirmQtyTBU"=>0,//确认数量
  851. "FinallyPriceTC"=>$v['final_price'],//最终价格
  852. "IsPresent"=>false,//赠品
  853. ];
  854. }
  855. $data = [];
  856. $data[] = [
  857. 'DocNo'=>"",
  858. "DocumentType"=>'PO01',//PO01 标准采购默认值
  859. 'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325
  860. "BusinessDate"=>date("Y-m-d H:i:s"),
  861. 'OtherID'=>$params['number'],
  862. 'DescFlexField'=>(object)[
  863. ],
  864. 'TC'=>'C001',
  865. 'AC'=>'C001',
  866. "Memo"=>$params['number'],
  867. 'Supplier'=>[
  868. 'Code'=>$params['gys'],//供应商编码 到时间找下
  869. ],
  870. 'IsPriceIncludeTax'=>false,
  871. "POLineDTOList"=>$po_lines
  872. ];
  873. return $data;
  874. }
  875. public function yybzchDataTrans($params){
  876. $data = [];
  877. foreach($params['list'] as $k=>$v ){
  878. $data[] = [
  879. "SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4
  880. "SrcDocNo"=>$params['xs_no'],//来源单号
  881. "SrcDocLineNo"=>$v['doclineno'],
  882. "SrcDocSubLineNo"=>$v['docsublineno'],
  883. //"WH"=>'',//存储地点ID 找不到id 那就找个WHcode
  884. 'WHCode'=>$params['drckbm'],//存储地点code 这里的参数为啥这么诡异 是因为 不想在很设置参数了 都按照调出的写法组件数据了
  885. "CurShipQty1"=>$v['dcsl'],//本次出货量
  886. "SOIsConsign"=>false,// 是否补货
  887. "OptionalSplitTerm"=>[],
  888. "DescFlexField"=>(object)[],
  889. "LineDescFlexField"=>(object)[],
  890. //"ShipDate",//出货单日期(该属性可为空,且无默认值)
  891. //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)
  892. "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3
  893. ];
  894. }
  895. return $data;
  896. }
  897. //销售单的数据转化
  898. public function cjlpDataTrans($params){
  899. $list = [];
  900. foreach($params['list'] as $k=>$v){
  901. $list[] = [
  902. "Code"=>$v['jm'],//料号
  903. "Code1"=>"",//参考料号1
  904. "Name"=>$v['zh'],//品名
  905. "MainItemCategory"=>[
  906. "Code"=>$v['bm']
  907. ],
  908. "Org"=>[
  909. "Code"=>$params['ztcode']
  910. ],
  911. "OtherID"=>1,
  912. "PurchaseInfo"=>[
  913. "BudgetControlType"=>-1,//预算控制方式
  914. "PriceSource"=>2,//取价来源
  915. "InquireRule"=>-1,//询价策略
  916. 'InquireFixedPeriod'=>0,//间隔期
  917. "StatisticPeriod"=>-1,//配额统计期间
  918. "IsPUTradePathModify"=>true,//采购贸易路径可改
  919. "IsPURtnTradePathModify"=>true,//采购退货贸易路径可改
  920. ],
  921. "InventoryUOM"=>[
  922. "Code"=>'条'
  923. ],
  924. "InventorySecondUOM"=>[
  925. "Code"=>''
  926. ],
  927. "IsDualUOM"=>false,
  928. "InventoryInfo"=>[
  929. "InventoryPlanningMethod"=>4,//规划方法
  930. "InventoryPlanTime"=>-1,//
  931. "TurnOverRate"=>1,//
  932. "ReserveMode"=>-1,//
  933. "SupplyMethod"=>-1,//
  934. ],
  935. "DescFlexField"=>[
  936. "PrivateDescSeg1"=>"01",
  937. "PubDescSeg5"=>"01"
  938. ],
  939. "Description"=>$v['title'],
  940. "ItemForm"=>2001,//料品形态
  941. "ItemFormAttribute"=>10,//料品形态属性
  942. "IsInventoryEnable"=>true,//可库存交易
  943. "IsPurchaseEnable"=>true,//可采购
  944. "IsSalesEnable"=>true,//可采购
  945. "IsBuildEnable"=>true,//可生产
  946. "IsOutsideOperationEnable"=>true,//可委外
  947. "IsMRPEnable"=>true,//可MRP
  948. "IsBOMEnable"=>true,//可BOM
  949. "IsCostCalByGrade"=>false,//等级影响成本
  950. "IsCostCalByPotency"=>false,//成分影响成本
  951. "IsGradeControl"=>false,//等级控制
  952. "StandardGrade"=>-1,//标准等级
  953. "StartGrade"=>-1,//起始等级
  954. "EndGrade"=>-1,//结束等级
  955. "IsPotencyControl"=>false,//成分控制
  956. "StandardPotency"=>-1,//标准成分
  957. "StartPotency"=>-1,//起始成分
  958. "EndPotency"=>-1,// 结束成分
  959. ];
  960. }
  961. return $list;
  962. }
  963. //创建料片 主要是利用jm 创建的
  964. public function cjlpAndtbLpDataTrans($info){
  965. $list = [];
  966. $list[] = [
  967. "Code"=>$info['jm'],//料号
  968. "Code1"=>"",//参考料号1
  969. "Name"=>$info['zh'],//品名
  970. "MainItemCategory"=>[
  971. "Code"=>$info['bm']
  972. ],
  973. "Org"=>[
  974. "Code"=>$info['ztcode']
  975. ],
  976. "OtherID"=>1,
  977. "PurchaseInfo"=>[
  978. "BudgetControlType"=>-1,//预算控制方式
  979. "PriceSource"=>2,//取价来源
  980. "InquireRule"=>-1,//询价策略
  981. 'InquireFixedPeriod'=>0,//间隔期
  982. "StatisticPeriod"=>-1,//配额统计期间
  983. "IsPUTradePathModify"=>true,//采购贸易路径可改
  984. "IsPURtnTradePathModify"=>true,//采购退货贸易路径可改
  985. ],
  986. "InventoryUOM"=>[
  987. "Code"=>'条'
  988. ],
  989. "InventorySecondUOM"=>[
  990. "Code"=>''
  991. ],
  992. "IsDualUOM"=>false,
  993. "InventoryInfo"=>[
  994. "InventoryPlanningMethod"=>4,//规划方法
  995. "InventoryPlanTime"=>-1,//
  996. "TurnOverRate"=>1,//
  997. "ReserveMode"=>-1,//
  998. "SupplyMethod"=>-1,//
  999. ],
  1000. "DescFlexField"=>[
  1001. "PrivateDescSeg1"=>"01",
  1002. "PubDescSeg5"=>"01"
  1003. ],
  1004. "Description"=>$info['title'],
  1005. "ItemForm"=>2001,//料品形态
  1006. "ItemFormAttribute"=>10,//料品形态属性
  1007. "IsInventoryEnable"=>true,//可库存交易
  1008. "IsPurchaseEnable"=>true,//可采购
  1009. "IsSalesEnable"=>true,//可采购
  1010. "IsBuildEnable"=>true,//可生产
  1011. "IsOutsideOperationEnable"=>true,//可委外
  1012. "IsMRPEnable"=>true,//可MRP
  1013. "IsBOMEnable"=>true,//可BOM
  1014. "IsCostCalByGrade"=>false,//等级影响成本
  1015. "IsCostCalByPotency"=>false,//成分影响成本
  1016. "IsGradeControl"=>false,//等级控制
  1017. "StandardGrade"=>-1,//标准等级
  1018. "StartGrade"=>-1,//起始等级
  1019. "EndGrade"=>-1,//结束等级
  1020. "IsPotencyControl"=>false,//成分控制
  1021. "StandardPotency"=>-1,//标准成分
  1022. "StartPotency"=>-1,//起始成分
  1023. "EndPotency"=>-1,// 结束成分
  1024. ];
  1025. return $list;
  1026. }
  1027. public function cprkDataTrans($params){
  1028. $list = [];
  1029. foreach($params['list'] as $k=>$v){
  1030. $tmp = [
  1031. "MOKey"=>[
  1032. "OtherID"=>"",
  1033. "ID"=>0,
  1034. "DocNo"=>$params['rkcode'],//需要填写入库 rkcode 传递
  1035. "OrgID"=>0,
  1036. "IsSuccess"=>1,
  1037. "ErrorInfo"=>"",
  1038. "CUD"=>0,
  1039. ],
  1040. "Wh"=>[
  1041. "Code"=>$params['rev_wh_code'],//存储地点信息 传递
  1042. ],
  1043. "LineNum"=>$k,//行号
  1044. "StorageType"=>4,//
  1045. "Grade"=>0,//等级
  1046. "Element"=>0,
  1047. "CompleteQty"=>$v['sl'],//申报数量(生产单位)
  1048. "CompleteQtyByWhUOM"=>$v['sl'],//申报数量(库存单位)
  1049. "CompleteQtyByCostUOM"=>$v['sl'],//申报数量(成本单位)
  1050. "CUD"=>0,
  1051. "OwnerOrg"=>[
  1052. "Code"=>$params['org_code'],//货主组织编码
  1053. ],
  1054. "OutputType"=>0,//产出类型
  1055. "Item"=>[
  1056. "Code"=>$v['jm'],//编码 其实是用友的料号
  1057. ],
  1058. "ScrapQty"=>0,//报废数量
  1059. "ScrapQtyByCostUOM"=>0,//报废数量(成本单位)
  1060. "PUToPBURate"=>0,//生产主-生产副
  1061. "CUToCBURate"=>0,//成本主-成本副
  1062. "PBUToCBURate"=>0,//生产-成本
  1063. "SourceRcvRptLine"=>[ //来源入库单行
  1064. "RcvRptDocDTO"=>[ //入库单DTO
  1065. "ID"=>0, //唯一标示
  1066. "DocType"=>[ //单据类型
  1067. 'Code'=>0,
  1068. ],
  1069. "BusinessDate"=>'',//业务日期
  1070. "DocNo"=>"",//单号
  1071. "SourceDoc"=>[ //来源单据
  1072. "MOSrcDocType"=>0,//来源单据类型
  1073. "SrcDocOrg"=>0,//
  1074. "SrcDoc"=>[ //来源单据
  1075. "ID"=>$params['rkid'], //单据ID 徐凯传递的是$data['rkid']
  1076. "EntityType"=>'UFIDA.U9.MO.MO.MO',//单据类型
  1077. ],
  1078. "SrcDocVer"=>'',//单据版本
  1079. "SrcDocLine"=>[
  1080. "ID"=>0,
  1081. "EntityType"=>'',
  1082. ],
  1083. "SrcDocSubline"=>[
  1084. "ID"=>0,
  1085. "EntityType"=>'',
  1086. ],
  1087. "SrcDocNo"=>$params['rkid'],//单据号 徐凯传递了$data['rkid']
  1088. "SrcDocLineNo"=>'',//行号
  1089. "SrcDocSublineNo"=>10+$k,
  1090. "SrcDocID"=>$params['rkid'],//来源单据ID 徐凯传递了$data['rkid']
  1091. "SrcDocLineID"=>0,
  1092. "SrcDocType"=>'',
  1093. ],
  1094. "DocDate"=>date("Y-m-d",time()),
  1095. "RcvOrg"=>[ //入库组织
  1096. "Code"=>$params['rec_code'],//入库组织编码 需填写
  1097. ],
  1098. "Org"=>[
  1099. "Code"=>$params['org_code'],//组织编码 需填写
  1100. ],
  1101. "Direction"=>0,
  1102. "DocState"=>0,
  1103. "RcvDep"=>[
  1104. "ID"=>0,
  1105. "Code"=>'',
  1106. "Name"=>''
  1107. ],
  1108. "RcvPerson"=>[
  1109. "ID"=>0,
  1110. "Code"=>'',
  1111. "Name"=>''
  1112. ],
  1113. "OtherID"=>"",
  1114. ],
  1115. "ProductUOM"=>[
  1116. "Code"=>'条',
  1117. ],
  1118. "ProductBaseUOM"=>[
  1119. "Code"=>'条',
  1120. ],
  1121. "StoreUOM"=>[
  1122. "Code"=>'条',
  1123. ],
  1124. "StoreBaseUOM"=>[
  1125. "Code"=>'条',
  1126. ],
  1127. "CoUOM"=>[
  1128. "Code"=>'条',
  1129. ],
  1130. "CostBaseUOM"=>[
  1131. "Code"=>'条',
  1132. ],
  1133. "OperationState"=>0,
  1134. "OutputType"=>0,
  1135. "Item"=>[
  1136. "Code"=>$v['jm'],//料号 徐凯传递的是$data['jm']
  1137. ],
  1138. "OwnerOrg"=>[
  1139. "Code"=>$params['org_code'],//货主组织编码 需填写
  1140. ],
  1141. "PUToPBURate"=>0,
  1142. "SUToSBURate"=>0,
  1143. "PBUToSBURate"=>0,
  1144. "CUToCBURate"=>0,
  1145. "PBUToCBURate"=>0,
  1146. "Grade"=>0,
  1147. "Element"=>0,
  1148. "Wh"=>[
  1149. "Code"=>$params['rev_wh_code'],//存储地点信息 传递
  1150. ],
  1151. "StorageType"=>4,
  1152. "RcvValiddate"=>0,
  1153. "RcvQtyByProductUOM"=>0,
  1154. "RcvQtyByWhUOM"=>0,
  1155. "RcvQtyByCostUom"=>0,
  1156. "RcvOrg"=>[ //入库组织
  1157. "Code"=>001,//编码
  1158. ],
  1159. "PerformingOrg"=>[ //执行组织
  1160. "Code"=>001 //编码
  1161. ],
  1162. "CUD"=>0,
  1163. "LineNum"=>0,
  1164. "MO"=>[ //生产订单
  1165. "Code"=>$params['rkcode'],//徐凯写了 rkcode
  1166. ],
  1167. "ID"=>0,
  1168. ]
  1169. ];
  1170. $list[] = $tmp;
  1171. }
  1172. $res = [
  1173. "DocNo"=>"",//
  1174. "CompleteList"=>$list,
  1175. "DescFlexField"=>[
  1176. //"PubDescSeg2"=>$params['yyid'],//kh
  1177. "PubDescSeg4"=>$params['number'],//订单编码
  1178. "PubDescSeg5"=>$params['shipremarks'],//备注
  1179. ],
  1180. "DocType"=>[
  1181. "Code"=>0,
  1182. ],
  1183. "BusinessDate"=>(date("Y-m-d",time())),
  1184. "OtherID"=>'',//订单编码
  1185. "Direction"=>0,
  1186. "IsOffLine"=>1, //是否撤线报
  1187. "DocState"=>0,
  1188. "Remark"=>time(),
  1189. "RcvPerson"=>[
  1190. "Code"=>"ERP"
  1191. ]
  1192. ];
  1193. if(!empty($params['yyid'])){
  1194. $res['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户
  1195. }
  1196. return [$res];
  1197. }
  1198. public function scdDataTrans($params){
  1199. $list = [];
  1200. foreach($params['list'] as $k=>$v){
  1201. $info = [
  1202. "OtherID"=>"",
  1203. "Org"=>[
  1204. "Code"=>$params['org_code']//生产组织编码
  1205. ],
  1206. "ItemMaster"=>[
  1207. "Code"=>$v['jm'],//料号
  1208. ],
  1209. "DocType"=>[
  1210. "Code"=>$params['djhlx']//单据类型
  1211. ],
  1212. "Department"=>[
  1213. "Code"=>$params['scbm_code']//生产部门编码
  1214. ],
  1215. "ExpandLevel"=>0, //展开阶数
  1216. "AlternateType"=>0,//生产目的
  1217. "RoutingAlternate"=>0,//工艺生产目的
  1218. "RoutingEffeDate"=>'',//工艺有效日期
  1219. "ProductQty"=>$v['sl'],
  1220. "ProductUOM"=>[
  1221. "Code"=>'条'
  1222. ],
  1223. "StartDate"=>date('Y-m-d',$params['time']),//计划开工日期
  1224. "CompleteDate"=>date('Y-m-d',$params['time']),//计划完工日期
  1225. "MOSourceDocType"=>0,//来源单据类型
  1226. "OwnerOrg"=>[
  1227. "Code"=>$params['owner_org_code']//货主组织编码
  1228. ],
  1229. "SCVWh"=>[
  1230. "Code"=>$v['drck']//完工存储地点编码
  1231. ],
  1232. "DemandCode"=>-1,//需求分类
  1233. "IsFirmed"=>false,//锁定标志
  1234. "IsCapacityLimit"=>false,//有限产能
  1235. "Priority"=>0,// 优先级
  1236. "CUD"=>0,//增删改类型
  1237. "BOMType"=>0,//BOM类型
  1238. "Description"=>$params['title'],//备注
  1239. "MRPQty"=>0,//MRP数量
  1240. "MOID"=>0,//生产订单ID
  1241. "PBUToSBURate"=>0,//生产-库存
  1242. "PBUToCBURate"=>0,//生产-成本
  1243. "DescFlexField"=>[
  1244. "PubDescSeg4"=>$params['title'],//erp单号
  1245. "PubDescSeg5"=>$params['shipremarks'],//erp备注
  1246. ]
  1247. ];
  1248. if(!empty($params['yyid'])){
  1249. $info['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户
  1250. }
  1251. $list[] = $info;
  1252. }
  1253. return $list;
  1254. }
  1255. }