Model_apiyyv1.php 31 KB

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