Model_apiyyv1.php 29 KB

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