Model_apiyyv1.php 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018
  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 bzchSubmitAndApprove($params,$token){
  291. $list = [
  292. [
  293. 'Code'=>$params['number'] //单号
  294. ]
  295. ];
  296. $url = '/U9C/webapi/Ship/SubmitAndApprove';
  297. $url = $this->base_url.$url;
  298. $header[] = "Content-Type: application/json";
  299. $header[] = "Token: ".$token;
  300. $res = $this->sendReq($url,$header,json_encode($list));
  301. return array($res,$list);
  302. }
  303. /**
  304. * 生成u9的标准收获单
  305. * 会造成库存变动
  306. * 这个也是有源的是采购单 不过估计用不上 先不写
  307. */
  308. public function bzshCreate($params,$token){
  309. }
  310. /**
  311. * 生成成品入库单
  312. */
  313. public function cprkCreate($params,$token){
  314. $list = $this->cprkDataTrans($params);
  315. $url = '/U9C/webapi/RcvRptDoc/Create';
  316. $url = $this->base_url.$url;
  317. $header[] = "Content-Type: application/json";
  318. $header[] = "Token: ".$token;
  319. $res = $this->sendReq($url,$header,json_encode($list));
  320. return array($res,$list);
  321. }
  322. /**
  323. * 成品入库单提交
  324. */
  325. public function cprkApprove($params,$token){
  326. $url = '/U9C/webapi/RcvRptDoc/Approve';
  327. $url = $this->base_url.$url;
  328. $header[] = "Content-Type: application/json";
  329. $header[] = "Token: ".$token;
  330. $res = $this->sendReq($url,$header,json_encode($params));
  331. return array($res,$params);
  332. }
  333. /**
  334. * 成品入库查询
  335. */
  336. public function cprkCx($params,$token){
  337. $url = '/U9C/webapi/RcvRptDoc/Query';
  338. $url = $this->base_url.$url;
  339. $header[] = "Content-Type: application/json";
  340. $header[] = "Token: ".$token;
  341. $res = $this->sendReq($url,$header,json_encode($params));
  342. return array($res,$params);
  343. }
  344. /**
  345. * 成品入库单审核
  346. */
  347. //根据erp的单号查询调出单是够存在
  348. public function xcDcdByOtherId($dcd_no,$token){
  349. $list["SqlString"] = "select DescFlexField_PubDescSeg4,DocNo from InvDoc_TransferOut where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  350. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  351. $url = $this->base_url.$url;
  352. $header[] = "Content-Type: application/json";
  353. $header[] = "Token: ".$token;
  354. $res = $this->sendReq($url,$header,json_encode($list));
  355. return array($res,$list);
  356. }
  357. /**
  358. * 调出单的二次验证
  359. * 避免因为其他组织使用相同的erp单号导致的冲突 不能创建成品库的数据
  360. */
  361. public function xcDcdByOtherIdCheck($dcd_no,$token){
  362. $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."' ";
  363. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  364. $url = $this->base_url.$url;
  365. $header[] = "Content-Type: application/json";
  366. $header[] = "Token: ".$token;
  367. $res = $this->sendReq($url,$header,json_encode($list));
  368. return array($res,$list);
  369. }
  370. /**
  371. * 查询料品
  372. */
  373. public function cxLp($params,$token){
  374. $list = [];
  375. foreach($params as $k=>$v){
  376. $list[] =[
  377. "ItemMaster"=>[
  378. "Code"=>$v['jm']
  379. ]
  380. ];
  381. }
  382. $url = '/U9C/webapi/ItemMaster/Query';
  383. $url = $this->base_url.$url;
  384. $header[] = "Content-Type: application/json";
  385. $header[] = "Token: ".$token;
  386. $res = $this->sendReq($url,$header,json_encode($list));
  387. return array($res,$list);
  388. }
  389. /**
  390. * 创建料品
  391. */
  392. public function cjLp($params,$token){
  393. $list = $this->cjlpDataTrans($params);
  394. $url = '/U9C/webapi/ItemMaster/Create';
  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. $this->logic_ding->sendToDing("创建料品监听".json_encode($params,JSON_UNESCAPED_UNICODE)."||".json_encode($res,JSON_UNESCAPED_UNICODE)."||".$url);
  400. return array($res,$list);
  401. }
  402. /**
  403. * 同步通知
  404. */
  405. public function tbLp($params,$token){
  406. $list = [];
  407. foreach($params['list'] as $k=>$v){
  408. $list[] = [
  409. "EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名
  410. "EntityCode"=>$v['jm'],
  411. "FromOrgCode"=>$params['owner_code'],//创建组织编码
  412. "ToOrgCodeList"=>[140],//要同步的组织
  413. "OtherID"=>'',
  414. "ContextDTO"=>[
  415. "EntCode"=>$params['ztcode'],//企业编码
  416. "OrgCode"=>$params['owner_code'],//组织编码
  417. "UserCode"=>'xk',//用户编码
  418. "UserPwd"=>'',//用户密码
  419. ]
  420. ];
  421. }
  422. $url = '/U9C/webapi/ControlObjSend/ControlObjSend';
  423. $url = $this->base_url.$url;
  424. $header[] = "Content-Type: application/json";
  425. $header[] = "Token: ".$token;
  426. $res = $this->sendReq($url,$header,json_encode($list));
  427. return array($res,$list);
  428. }
  429. //由于逻辑修改造成 需要查询调出单是审核完毕
  430. public function xdlsCxDcd($dcd_no,$token){
  431. $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."'";
  432. //$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."'";
  433. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  434. $url = $this->base_url.$url;
  435. $header[] = "Content-Type: application/json";
  436. $header[] = "Token: ".$token;
  437. $res = $this->sendReq($url,$header,json_encode($list));
  438. return array($res,$list);
  439. }
  440. public function sendReq($url,$header,$list){
  441. $ch = curl_init();
  442. curl_setopt($ch, CURLOPT_URL, $url);
  443. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  444. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  445. curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
  446. curl_setopt($ch, CURLOPT_POST, 1);
  447. curl_setopt($ch, CURLOPT_POSTFIELDS, $list);
  448. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  449. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  450. $res = curl_exec($ch);
  451. $res = json_decode($res,true);
  452. return $res;
  453. }
  454. //调出单的数据转化
  455. public function dcDataTrans($params){
  456. $trans_out_lines = [];
  457. foreach($params['list'] as $k=>$v){
  458. $trans_out_lines[] = [
  459. "ItemInfo" =>[
  460. "ItemCode"=>$v['jm'],//用友的简码
  461. ],
  462. "TransOutWh_Code"=>$params['dcckbm'],//调出仓库编码
  463. "StoreUOM_Code"=>"条",//调出库存单位Code 如条
  464. "StoreUOMQty"=>$v['dcsl'],//调出数量
  465. "StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  466. "LotInfo_Code"=>"",//批号Code 不知道有啥用 暂时留空吧
  467. "TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code
  468. "TransOutSubLines"=>[
  469. [
  470. 'TransInWh_Code'=>$params['drckbm']."",//调入仓库编码
  471. 'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  472. 'TransInOrg_Code'=>$params['drzz_code']."",//调入组织Code
  473. 'TransOutOwnerOrg_Code'=>$params['owner_code']."",//货主组织Code
  474. 'StoreUOMQty'=>$v['dcsl'],
  475. ]
  476. ],
  477. "TransOutBins"=>[
  478. [
  479. 'BinInfo_Code'=>'',//库位Code
  480. 'StoreUOMQty'=>$v['dcsl']// 分配数量
  481. ]
  482. ]
  483. ,"DescFlexField"=>[
  484. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  485. "PubDescSeg4"=>$params['number'],//订单编码
  486. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  487. ],
  488. ];
  489. }
  490. $data = [];
  491. $data[] = [
  492. "OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回
  493. "TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看 TransOut001 组织间调拨 TransOut002 仓库转储 TransOut004 委外加工发料 TransOut005 委外加工退料
  494. "BusinessDate"=>date("Y-m-d",$params['time']),//日期
  495. "TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货
  496. "TransOutLines"=>$trans_out_lines,
  497. "DescFlexField"=>[
  498. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  499. "PubDescSeg4"=>$params['number'],//订单编码
  500. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  501. ],
  502. ];
  503. return $data;
  504. }
  505. //销售单的数据转化
  506. public function xsdDataTrans($params){
  507. $so_lines = [];
  508. foreach($params['list'] as $k=>$v){
  509. $so_lines[] = [
  510. 'TU'=>"条",//销售单位编码
  511. 'ItemCode'=>$v['jm'],//用友的编码
  512. 'PU'=>'条',//计价单位编码
  513. "ShipTogetherFlag"=>-1,//成套收发货标志
  514. 'DocLineNo'=>$k+1,
  515. 'CustomerItemNo'=>'',//客户料号
  516. 'CustomerItemName'=>'',//客户品名
  517. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  518. 'PubDescSeg10'=>'',
  519. 'SOShiplineDTOList'=>[ //销售订单计划行
  520. [
  521. 'IsMRPRequire', //MRP需求
  522. 'DemandType',//需求分类
  523. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  524. ]
  525. ],
  526. 'RecTerm'=>'',//目前找不到了
  527. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  528. 'UsableQtyOfInv'=>0,//文档中未查询到
  529. 'PubDescSeg3'=>'',
  530. 'PubDescSeg4'=>'',
  531. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  532. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  533. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  534. 'DescFlexField'=>[
  535. 'PubDescSeg3'=>'',
  536. ],
  537. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  538. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  539. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  540. 'Memo'=>'',//备注
  541. ];
  542. }
  543. $data = [];
  544. $data[] = [
  545. "OrderBy"=>$params['yyid'],//用友的商户的id
  546. "OtherID"=>$params['number'],//第三方传入ID
  547. "SaleDepartment"=>"",//部门编码 可为空
  548. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  549. "DocNo"=>'',//单据类型编码
  550. "AC"=>"C001",//人民币
  551. "TC"=>"C001",//人民币
  552. "ShipToSite"=>"",//收货位置编码
  553. "PubDescSeg2"=>"",
  554. "SOSrcType"=>0,
  555. "Seller"=>"",//业务员编码 可为空
  556. "ConfirmTerm"=>"",//但是现有文档没有
  557. "Memo"=>$params['number'],//备注
  558. "ShipRule"=>"",//但是现有文档没有
  559. "SOLineDTOList"=>$so_lines,
  560. ];
  561. return $data;
  562. }
  563. public function xsdTwoDataTrans($params){
  564. $so_lines = [];
  565. foreach($params['list'] as $k=>$v){
  566. $so_lines[] = [
  567. 'TU'=>"条",//销售单位编码
  568. 'ItemCode'=>$v['jm'],//用友的编码
  569. 'PU'=>'条',//计价单位编码
  570. "ShipTogetherFlag"=>-1,//成套收发货标志
  571. 'DocLineNo'=>$k+1,
  572. 'CustomerItemNo'=>'',//客户料号
  573. 'CustomerItemName'=>'',//客户品名
  574. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  575. 'PubDescSeg10'=>'',
  576. 'SOShiplineDTOList'=>[ //销售订单计划行
  577. [
  578. 'IsMRPRequire', //MRP需求
  579. 'DemandType',//需求分类
  580. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  581. ]
  582. ],
  583. 'RecTerm'=>'',//目前找不到了
  584. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  585. 'UsableQtyOfInv'=>0,//文档中未查询到
  586. 'PubDescSeg3'=>'',
  587. 'PubDescSeg4'=>'',
  588. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  589. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  590. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  591. 'DescFlexField'=>[
  592. 'PubDescSeg3'=>'',
  593. ],
  594. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  595. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  596. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  597. 'Memo'=>'',//备注
  598. ];
  599. }
  600. $data = [];
  601. $data[] = [
  602. "OrderBy"=>$params['yyid'],//用友的商户的id
  603. "OtherID"=>$params['number'],//第三方传入ID
  604. "SaleDepartment"=>"",//部门编码 可为空
  605. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  606. "DocNo"=>'',//单据类型编码
  607. "AC"=>"C009",//美金
  608. "TC"=>"C009",//美金
  609. "ShipToSite"=>"",//收货位置编码
  610. "PubDescSeg2"=>"",
  611. "SOSrcType"=>0,
  612. "Seller"=>"",//业务员编码 可为空
  613. "ConfirmTerm"=>"",//但是现有文档没有
  614. "Memo"=>$params['number'],//备注
  615. "ShipRule"=>"",//但是现有文档没有
  616. "SOLineDTOList"=>$so_lines,
  617. ];
  618. return $data;
  619. }
  620. public function cgdDataTrans($params){
  621. $po_lines = [];
  622. foreach($params['list'] as $k=>$v){
  623. $po_lines[] = [
  624. //"POLineID"=>0,//采购订单行ID
  625. 'ItemInfo'=>[
  626. 'm_code'=>$v['jm'],//用友料号
  627. ],
  628. "ReqQtyTU"=>$v['dcsl'],//需求数量
  629. "ReqQtyTBU"=>0,//确认数量
  630. "SupplierConfirmQtyTU"=>$v['dcsl'],//确认数量
  631. "SupplierConfirmQtyTBU"=>0,//确认数量
  632. "FinallyPriceTC"=>$v['final_price'],//最终价格
  633. "IsPresent"=>false,//赠品
  634. ];
  635. }
  636. $data = [];
  637. $data[] = [
  638. 'DocNo'=>"",
  639. "DocumentType"=>'PO01',//PO01 标准采购默认值
  640. 'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325
  641. "BusinessDate"=>date("Y-m-d H:i:s"),
  642. 'OtherID'=>$params['number'],
  643. 'DescFlexField'=>(object)[
  644. ],
  645. 'TC'=>'C001',
  646. 'AC'=>'C001',
  647. "Memo"=>$params['number'],
  648. 'Supplier'=>[
  649. 'Code'=>$params['gys'],//供应商编码 到时间找下
  650. ],
  651. 'IsPriceIncludeTax'=>false,
  652. "POLineDTOList"=>$po_lines
  653. ];
  654. return $data;
  655. }
  656. public function yybzchDataTrans($params){
  657. $data = [];
  658. foreach($params['list'] as $k=>$v ){
  659. $data[] = [
  660. "SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4
  661. "SrcDocNo"=>$params['xs_no'],//来源单号
  662. "SrcDocLineNo"=>$v['doclineno'],
  663. "SrcDocSubLineNo"=>$v['docsublineno'],
  664. //"WH"=>'',//存储地点ID 找不到id 那就找个WHcode
  665. 'WHCode'=>$params['drckbm'],//存储地点code 这里的参数为啥这么诡异 是因为 不想在很设置参数了 都按照调出的写法组件数据了
  666. "CurShipQty1"=>$v['dcsl'],//本次出货量
  667. "SOIsConsign"=>false,// 是否补货
  668. "OptionalSplitTerm"=>[],
  669. "DescFlexField"=>(object)[],
  670. "LineDescFlexField"=>(object)[],
  671. //"ShipDate",//出货单日期(该属性可为空,且无默认值)
  672. //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)
  673. "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3
  674. ];
  675. }
  676. return $data;
  677. }
  678. //销售单的数据转化
  679. public function cjlpDataTrans($params){
  680. $list = [];
  681. foreach($params['list'] as $k=>$v){
  682. $list[] = [
  683. "Code"=>$v['jm'],//料号
  684. "Code1"=>"",//参考料号1
  685. "Name"=>$v['zh'],//品名
  686. "MainItemCategory"=>[
  687. "Code"=>$v['bm']
  688. ],
  689. "Org"=>[
  690. "Code"=>$params['ztcode']
  691. ],
  692. "OtherID"=>1,
  693. "PurchaseInfo"=>[
  694. "BudgetControlType"=>-1,//预算控制方式
  695. "PriceSource"=>2,//取价来源
  696. "InquireRule"=>-1,//询价策略
  697. 'InquireFixedPeriod'=>0,//间隔期
  698. "StatisticPeriod"=>-1,//配额统计期间
  699. "IsPUTradePathModify"=>true,//采购贸易路径可改
  700. "IsPURtnTradePathModify"=>true,//采购退货贸易路径可改
  701. ],
  702. "InventoryUOM"=>[
  703. "Code"=>'条'
  704. ],
  705. "InventorySecondUOM"=>[
  706. "Code"=>''
  707. ],
  708. "IsDualUOM"=>false,
  709. "InventoryInfo"=>[
  710. "InventoryPlanningMethod"=>4,//规划方法
  711. "InventoryPlanTime"=>-1,//
  712. "TurnOverRate"=>1,//
  713. "ReserveMode"=>-1,//
  714. "SupplyMethod"=>-1,//
  715. ],
  716. "DescFlexField"=>[
  717. "PrivateDescSeg1"=>"01",
  718. "PubDescSeg5"=>"01"
  719. ],
  720. "Description"=>$v['title'],
  721. "ItemForm"=>2001,//料品形态
  722. "ItemFormAttribute"=>10,//料品形态属性
  723. "IsInventoryEnable"=>true,//可库存交易
  724. "IsPurchaseEnable"=>true,//可采购
  725. "IsSalesEnable"=>true,//可采购
  726. "IsBuildEnable"=>true,//可生产
  727. "IsOutsideOperationEnable"=>true,//可委外
  728. "IsMRPEnable"=>true,//可MRP
  729. "IsBOMEnable"=>true,//可BOM
  730. "IsCostCalByGrade"=>false,//等级影响成本
  731. "IsCostCalByPotency"=>false,//成分影响成本
  732. "IsGradeControl"=>false,//等级控制
  733. "StandardGrade"=>-1,//标准等级
  734. "StartGrade"=>-1,//起始等级
  735. "EndGrade"=>-1,//结束等级
  736. "IsPotencyControl"=>false,//成分控制
  737. "StandardPotency"=>-1,//标准成分
  738. "StartPotency"=>-1,//起始成分
  739. "EndPotency"=>-1,// 结束成分
  740. ];
  741. }
  742. return $list;
  743. }
  744. public function cprkDataTrans($params){
  745. $list = [];
  746. foreach($params['list'] as $k=>$v){
  747. $tmp = [
  748. "MOKey"=>[
  749. "OtherID"=>"",
  750. "ID"=>0,
  751. "DocNo"=>$params['rkcode'],//需要填写入库 rkcode 传递
  752. "OrgID"=>0,
  753. "IsSuccess"=>1,
  754. "ErrorInfo"=>"",
  755. "CUD"=>0,
  756. ],
  757. "Wh"=>[
  758. "Code"=>$params['rev_wh_code'],//存储地点信息 传递
  759. ],
  760. "LineNum"=>$k,//行号
  761. "StorageType"=>4,//
  762. "Grade"=>0,//等级
  763. "Element"=>0,
  764. "CompleteQty"=>$v['sl'],//申报数量(生产单位)
  765. "CompleteQtyByWhUOM"=>$v['sl'],//申报数量(库存单位)
  766. "CompleteQtyByCostUOM"=>$v['sl'],//申报数量(成本单位)
  767. "CUD"=>0,
  768. "OwnerOrg"=>[
  769. "Code"=>$params['org_code'],//货主组织编码
  770. ],
  771. "OutputType"=>0,//产出类型
  772. "Item"=>[
  773. "Code"=>$v['jm'],//编码 其实是用友的料号
  774. ],
  775. "ScrapQty"=>0,//报废数量
  776. "ScrapQtyByCostUOM"=>0,//报废数量(成本单位)
  777. "PUToPBURate"=>0,//生产主-生产副
  778. "CUToCBURate"=>0,//成本主-成本副
  779. "PBUToCBURate"=>0,//生产-成本
  780. "SourceRcvRptLine"=>[ //来源入库单行
  781. "RcvRptDocDTO"=>[ //入库单DTO
  782. "ID"=>0, //唯一标示
  783. "DocType"=>[ //单据类型
  784. 'Code'=>0,
  785. ],
  786. "BusinessDate"=>'',//业务日期
  787. "DocNo"=>"",//单号
  788. "SourceDoc"=>[ //来源单据
  789. "MOSrcDocType"=>0,//来源单据类型
  790. "SrcDocOrg"=>0,//
  791. "SrcDoc"=>[ //来源单据
  792. "ID"=>$params['rkid'], //单据ID 徐凯传递的是$data['rkid']
  793. "EntityType"=>'UFIDA.U9.MO.MO.MO',//单据类型
  794. ],
  795. "SrcDocVer"=>'',//单据版本
  796. "SrcDocLine"=>[
  797. "ID"=>0,
  798. "EntityType"=>'',
  799. ],
  800. "SrcDocSubline"=>[
  801. "ID"=>0,
  802. "EntityType"=>'',
  803. ],
  804. "SrcDocNo"=>$params['rkid'],//单据号 徐凯传递了$data['rkid']
  805. "SrcDocLineNo"=>'',//行号
  806. "SrcDocSublineNo"=>10+$k,
  807. "SrcDocID"=>$params['rkid'],//来源单据ID 徐凯传递了$data['rkid']
  808. "SrcDocLineID"=>0,
  809. "SrcDocType"=>'',
  810. ],
  811. "DocDate"=>date("Y-m-d",time()),
  812. "RcvOrg"=>[ //入库组织
  813. "Code"=>$params['rec_code'],//入库组织编码 需填写
  814. ],
  815. "Org"=>[
  816. "Code"=>$params['org_code'],//组织编码 需填写
  817. ],
  818. "Direction"=>0,
  819. "DocState"=>0,
  820. "RcvDep"=>[
  821. "ID"=>0,
  822. "Code"=>'',
  823. "Name"=>''
  824. ],
  825. "RcvPerson"=>[
  826. "ID"=>0,
  827. "Code"=>'',
  828. "Name"=>''
  829. ],
  830. "OtherID"=>"",
  831. ],
  832. "ProductUOM"=>[
  833. "Code"=>'条',
  834. ],
  835. "ProductBaseUOM"=>[
  836. "Code"=>'条',
  837. ],
  838. "StoreUOM"=>[
  839. "Code"=>'条',
  840. ],
  841. "StoreBaseUOM"=>[
  842. "Code"=>'条',
  843. ],
  844. "CoUOM"=>[
  845. "Code"=>'条',
  846. ],
  847. "CostBaseUOM"=>[
  848. "Code"=>'条',
  849. ],
  850. "OperationState"=>0,
  851. "OutputType"=>0,
  852. "Item"=>[
  853. "Code"=>$v['jm'],//料号 徐凯传递的是$data['jm']
  854. ],
  855. "OwnerOrg"=>[
  856. "Code"=>$params['org_code'],//货主组织编码 需填写
  857. ],
  858. "PUToPBURate"=>0,
  859. "SUToSBURate"=>0,
  860. "PBUToSBURate"=>0,
  861. "CUToCBURate"=>0,
  862. "PBUToCBURate"=>0,
  863. "Grade"=>0,
  864. "Element"=>0,
  865. "Wh"=>[
  866. "Code"=>$params['rev_wh_code'],//存储地点信息 传递
  867. ],
  868. "StorageType"=>4,
  869. "RcvValiddate"=>0,
  870. "RcvQtyByProductUOM"=>0,
  871. "RcvQtyByWhUOM"=>0,
  872. "RcvQtyByCostUom"=>0,
  873. "RcvOrg"=>[ //入库组织
  874. "Code"=>001,//编码
  875. ],
  876. "PerformingOrg"=>[ //执行组织
  877. "Code"=>001 //编码
  878. ],
  879. "CUD"=>0,
  880. "LineNum"=>0,
  881. "MO"=>[ //生产订单
  882. "Code"=>$params['rkcode'],//徐凯写了 rkcode
  883. ],
  884. "ID"=>0,
  885. ]
  886. ];
  887. $list[] = $tmp;
  888. }
  889. $res = [
  890. "DocNo"=>"",//
  891. "CompleteList"=>$list,
  892. "DescFlexField"=>[
  893. //"PubDescSeg2"=>$params['yyid'],//kh
  894. "PubDescSeg4"=>$params['number'],//订单编码
  895. "PubDescSeg5"=>$params['shipremarks'],//备注
  896. ],
  897. "DocType"=>[
  898. "Code"=>0,
  899. ],
  900. "BusinessDate"=>(date("Y-m-d",time())),
  901. "OtherID"=>'',//订单编码
  902. "Direction"=>0,
  903. "IsOffLine"=>1, //是否撤线报
  904. "DocState"=>0,
  905. "Remark"=>time(),
  906. "RcvPerson"=>[
  907. "Code"=>"ERP"
  908. ]
  909. ];
  910. if(!empty($params['yyid'])){
  911. $res['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户
  912. }
  913. return [$res];
  914. }
  915. public function scdDataTrans($params){
  916. $list = [];
  917. foreach($params['list'] as $k=>$v){
  918. $info = [
  919. "OtherID"=>"",
  920. "Org"=>[
  921. "Code"=>$params['org_code']//生产组织编码
  922. ],
  923. "ItemMaster"=>[
  924. "Code"=>$v['jm'],//料号
  925. ],
  926. "DocType"=>[
  927. "Code"=>$params['djhlx']//单据类型
  928. ],
  929. "Department"=>[
  930. "Code"=>$params['scbm_code']//生产部门编码
  931. ],
  932. "ExpandLevel"=>0, //展开阶数
  933. "AlternateType"=>0,//生产目的
  934. "RoutingAlternate"=>0,//工艺生产目的
  935. "RoutingEffeDate"=>'',//工艺有效日期
  936. "ProductQty"=>$v['sl'],
  937. "ProductUOM"=>[
  938. "Code"=>'条'
  939. ],
  940. "StartDate"=>date('Y-m-d',$params['time']),//计划开工日期
  941. "CompleteDate"=>date('Y-m-d',$params['time']),//计划完工日期
  942. "MOSourceDocType"=>0,//来源单据类型
  943. "OwnerOrg"=>[
  944. "Code"=>$params['owner_org_code']//货主组织编码
  945. ],
  946. "SCVWh"=>[
  947. "Code"=>$v['drck']//完工存储地点编码
  948. ],
  949. "DemandCode"=>-1,//需求分类
  950. "IsFirmed"=>false,//锁定标志
  951. "IsCapacityLimit"=>false,//有限产能
  952. "Priority"=>0,// 优先级
  953. "CUD"=>0,//增删改类型
  954. "BOMType"=>0,//BOM类型
  955. "Description"=>$params['title'],//备注
  956. "MRPQty"=>0,//MRP数量
  957. "MOID"=>0,//生产订单ID
  958. "PBUToSBURate"=>0,//生产-库存
  959. "PBUToCBURate"=>0,//生产-成本
  960. "DescFlexField"=>[
  961. "PubDescSeg4"=>$params['title'],//erp单号
  962. "PubDescSeg5"=>$params['shipremarks'],//erp备注
  963. ]
  964. ];
  965. if(!empty($params['yyid'])){
  966. $info['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户
  967. }
  968. $list[] = $info;
  969. }
  970. return $list;
  971. }
  972. }