Model_apiyyv1.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  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. }
  14. /**
  15. * 生成u9的调出单
  16. */
  17. public function dcdCrate($params,$token){
  18. $list = $this->dcDataTrans($params);
  19. $url = '/U9C/webapi/TransferOut/Create';
  20. $url = $this->base_url.$url;
  21. $header[] = "Content-Type: application/json";
  22. $header[] = "Token: ".$token;
  23. $res = $this->sendReq($url,$header,json_encode($list));
  24. return array($res,$list);
  25. }
  26. /**
  27. * 提交调出单
  28. */
  29. public function dcdSubmit($params,$token){
  30. $list = [
  31. [
  32. 'Code'=>$params['number'] //调出单单号
  33. ]
  34. ];
  35. $url = '/U9C/webapi/TransferOut/Submit';
  36. $url = $this->base_url.$url;
  37. $header[] = "Content-Type: application/json";
  38. $header[] = "Token: ".$token;
  39. $res = $this->sendReq($url,$header,json_encode($list));
  40. return array($res,$list);
  41. }
  42. /**
  43. * 审核调出单
  44. */
  45. public function dcdApprove($params,$token){
  46. $list = [
  47. [
  48. 'Code'=>$params['number'] //调出单单号
  49. ]
  50. ];
  51. $url = '/U9C/webapi/TransferOut/Approve';
  52. $url = $this->base_url.$url;
  53. $header[] = "Content-Type: application/json";
  54. $header[] = "Token: ".$token;
  55. $res = $this->sendReq($url,$header,json_encode($list));
  56. return array($res,$list);
  57. }
  58. /**
  59. * 生成u9的销售单
  60. * 只是财务记录 不牵扯到库存
  61. */
  62. public function xsdCreate($params,$token){
  63. $list = $this->xsdDataTrans($params);
  64. $url = '/U9C/webapi/SO/Create';
  65. $url = $this->base_url.$url;
  66. $header[] = "Content-Type: application/json";
  67. $header[] = "Token: ".$token;
  68. $res = $this->sendReq($url,$header,json_encode($list));
  69. return array($res,$list);
  70. }
  71. /**
  72. * 生成u9的销售单
  73. * 只是财务记录 不牵扯到库存
  74. */
  75. public function xsdTwoCreate($params,$token){
  76. $list = $this->xsdTwoDataTrans($params);
  77. $url = '/U9C/webapi/SO/Create';
  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. * 销售单提交
  86. */
  87. public function xsdSubmit($params,$token){
  88. $list = [
  89. [
  90. 'Code'=>$params['number'] //单号
  91. ]
  92. ];
  93. $url = '/U9C/webapi/SO/Submit';
  94. $url = $this->base_url.$url;
  95. $header[] = "Content-Type: application/json";
  96. $header[] = "Token: ".$token;
  97. $res = $this->sendReq($url,$header,json_encode($list));
  98. return array($res,$list);
  99. }
  100. /**
  101. * 销售单审核
  102. */
  103. public function xsdApprove($params,$token){
  104. $list = [
  105. [
  106. 'Code'=>$params['number'] //单号
  107. ]
  108. ];
  109. $url = '/U9C/webapi/SO/Approve';
  110. $url = $this->base_url.$url;
  111. $header[] = "Content-Type: application/json";
  112. $header[] = "Token: ".$token;
  113. $res = $this->sendReq($url,$header,json_encode($list));
  114. return array($res,$list);
  115. }
  116. /**
  117. * 根据调出单的单号做关联查询 然后匹配存储调入单的审核
  118. */
  119. public function drdcxBydcd($dcd_no,$token){
  120. // $list["SqlString"] = "select DescFlexField_PubDescSeg4 ,DocNo from InvDoc_TransferIn where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  121. $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."'";
  122. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  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. public function xscsByordernos($xs_no_list,$token){
  130. $str = '';
  131. foreach($xs_no_list as $k=>$v){
  132. if($k==0){
  133. $str .="'".$v."'";
  134. }else{
  135. $str .=",'".$v."'";
  136. }
  137. }
  138. //$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 ";
  139. $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 ";
  140. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  141. $url = $this->base_url.$url;
  142. $header[] = "Content-Type: application/json";
  143. $header[] = "Token: ".$token;
  144. $res = $this->sendReq($url,$header,json_encode($list));
  145. return array($res,$list);
  146. }
  147. /**
  148. * 调入单提交
  149. */
  150. public function drdSubmit($params,$token){
  151. $list = [
  152. [
  153. 'Code'=>$params['number'] //单号
  154. ]
  155. ];
  156. $url = '/U9C/webapi/TransferIn/Submit';
  157. $url = $this->base_url.$url;
  158. $header[] = "Content-Type: application/json";
  159. $header[] = "Token: ".$token;
  160. $res = $this->sendReq($url,$header,json_encode($list));
  161. return array($res,$list);
  162. }
  163. /**
  164. * 调入单审核
  165. */
  166. public function drdApprove($params,$token){
  167. $list = [
  168. [
  169. 'Code'=>$params['number'] //单号
  170. ]
  171. ];
  172. $url = '/U9C/webapi/TransferIn/Approve';
  173. $url = $this->base_url.$url;
  174. $header[] = "Content-Type: application/json";
  175. $header[] = "Token: ".$token;
  176. $res = $this->sendReq($url,$header,json_encode($list));
  177. return array($res,$list);
  178. }
  179. /**
  180. * 生成u9的采购单
  181. * 只是财务记录 不牵扯到库存
  182. * 目前采用的是无源的
  183. */
  184. public function cgdCreate($params,$token){
  185. $list = $this->cgdDataTrans($params);
  186. $url = '/U9C/webapi/PurchaseOrder/Create';
  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. * 采购单提交
  195. */
  196. public function cgdSubmit($params,$token){
  197. $list = [
  198. [
  199. 'Code'=>$params['number'] //单号
  200. ]
  201. ];
  202. $url = '/U9C/webapi/PurchaseOrder/Submit';
  203. $url = $this->base_url.$url;
  204. $header[] = "Content-Type: application/json";
  205. $header[] = "Token: ".$token;
  206. $res = $this->sendReq($url,$header,json_encode($list));
  207. return array($res,$list);
  208. }
  209. /**
  210. * 采购单审核
  211. */
  212. public function cgdApprove($params,$token){
  213. $list = [
  214. [
  215. 'Code'=>$params['number'] //单号
  216. ]
  217. ];
  218. $url = '/U9C/webapi/PurchaseOrder/Approve';
  219. $url = $this->base_url.$url;
  220. $header[] = "Content-Type: application/json";
  221. $header[] = "Token: ".$token;
  222. $res = $this->sendReq($url,$header,json_encode($list));
  223. return array($res,$list);
  224. }
  225. /**
  226. * 生成u9的标准出货单
  227. * 会造成库存变动
  228. * 使用的是有源的就是销售单
  229. */
  230. public function bzchCreate($params,$token){
  231. $list = $this->yybzchDataTrans($params);
  232. $url = '/U9C/webapi/Ship/CreateBySrcDoc';
  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. * 标准出货单提交并审核
  241. */
  242. public function bzchSubmitAndApprove($params,$token){
  243. $list = [
  244. [
  245. 'Code'=>$params['number'] //单号
  246. ]
  247. ];
  248. $url = '/U9C/webapi/Ship/SubmitAndApprove';
  249. $url = $this->base_url.$url;
  250. $header[] = "Content-Type: application/json";
  251. $header[] = "Token: ".$token;
  252. $res = $this->sendReq($url,$header,json_encode($list));
  253. return array($res,$list);
  254. }
  255. /**
  256. * 生成u9的标准收获单
  257. * 会造成库存变动
  258. * 这个也是有源的是采购单 不过估计用不上 先不写
  259. */
  260. public function bzshCreate($params,$token){
  261. }
  262. //根据erp的单号查询调出单是够存在
  263. public function xcDcdByOtherId($dcd_no,$token){
  264. $list["SqlString"] = "select DescFlexField_PubDescSeg4,DocNo from InvDoc_TransferOut where DescFlexField_PubDescSeg4 = '".$dcd_no."'";
  265. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  266. $url = $this->base_url.$url;
  267. $header[] = "Content-Type: application/json";
  268. $header[] = "Token: ".$token;
  269. $res = $this->sendReq($url,$header,json_encode($list));
  270. return array($res,$list);
  271. }
  272. /**
  273. * 辅助线上测试 后期删除
  274. */
  275. public function xcDcdByOtherIdTest($dcd_no,$token){
  276. $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."'";
  277. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  278. $url = $this->base_url.$url;
  279. $header[] = "Content-Type: application/json";
  280. $header[] = "Token: ".$token;
  281. $res = $this->sendReq($url,$header,json_encode($list));
  282. return array($res,$list);
  283. }
  284. /**
  285. * 查询料品
  286. */
  287. public function cxLp($params,$token){
  288. $list = [];
  289. foreach($params as $k=>$v){
  290. $list[] =[
  291. "ItemMaster"=>[
  292. "Code"=>$v['jm']
  293. ]
  294. ];
  295. }
  296. $url = '/U9C/webapi/ItemMaster/Query';
  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. * 创建料品
  305. */
  306. public function cjLp($params,$token){
  307. $list = $this->cjlpDataTrans($params);
  308. $url = '/U9C/webapi/ItemMaster/Create';
  309. $url = $this->base_url.$url;
  310. $header[] = "Content-Type: application/json";
  311. $header[] = "Token: ".$token;
  312. $res = $this->sendReq($url,$header,json_encode($list));
  313. return array($res,$list);
  314. }
  315. /**
  316. * 同步通知
  317. */
  318. public function tbLp($params,$token){
  319. $list = [];
  320. foreach($params['list'] as $k=>$v){
  321. $list[] = [
  322. "EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名
  323. "EntityCode"=>$v['jm'],
  324. "FromOrgCode"=>$params['owner_code'],//创建组织编码
  325. "ToOrgCodeList"=>[140],//要同步的组织
  326. "OtherID"=>'',
  327. "ContextDTO"=>[
  328. "EntCode"=>$params['ztcode'],//企业编码
  329. "OrgCode"=>$params['owner_code'],//组织编码
  330. "UserCode"=>'xk',//用户编码
  331. "UserPwd"=>'',//用户密码
  332. ]
  333. ];
  334. }
  335. $url = '/U9C/webapi/ControlObjSend/ControlObjSend';
  336. $url = $this->base_url.$url;
  337. $header[] = "Content-Type: application/json";
  338. $header[] = "Token: ".$token;
  339. $res = $this->sendReq($url,$header,json_encode($list));
  340. return array($res,$list);
  341. }
  342. //由于逻辑修改造成 需要查询调出单是审核完毕
  343. public function xdlsCxDcd($dcd_no,$token){
  344. $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."'";
  345. //$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."'";
  346. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  347. $url = $this->base_url.$url;
  348. $header[] = "Content-Type: application/json";
  349. $header[] = "Token: ".$token;
  350. $res = $this->sendReq($url,$header,json_encode($list));
  351. return array($res,$list);
  352. }
  353. public function sendReq($url,$header,$list){
  354. $ch = curl_init();
  355. curl_setopt($ch, CURLOPT_URL, $url);
  356. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  357. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  358. curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
  359. curl_setopt($ch, CURLOPT_POST, 1);
  360. curl_setopt($ch, CURLOPT_POSTFIELDS, $list);
  361. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  362. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  363. $res = curl_exec($ch);
  364. $res = json_decode($res,true);
  365. return $res;
  366. }
  367. //调出单的数据转化
  368. public function dcDataTrans($params){
  369. $trans_out_lines = [];
  370. foreach($params['list'] as $k=>$v){
  371. $trans_out_lines[] = [
  372. "ItemInfo" =>[
  373. "ItemCode"=>$v['jm'],//用友的简码
  374. ],
  375. "TransOutWh_Code"=>$params['dcckbm'],//调出仓库编码
  376. "StoreUOM_Code"=>"条",//调出库存单位Code 如条
  377. "StoreUOMQty"=>$v['dcsl'],//调出数量
  378. "StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  379. "LotInfo_Code"=>"",//批号Code 不知道有啥用 暂时留空吧
  380. "TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code
  381. "TransOutSubLines"=>[
  382. [
  383. 'TransInWh_Code'=>$params['drckbm']."",//调入仓库编码
  384. 'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  385. 'TransInOrg_Code'=>$params['drzz_code']."",//调入组织Code
  386. 'TransOutOwnerOrg_Code'=>$params['owner_code']."",//货主组织Code
  387. 'StoreUOMQty'=>$v['dcsl'],
  388. ]
  389. ],
  390. "TransOutBins"=>[
  391. [
  392. 'BinInfo_Code'=>'',//库位Code
  393. 'StoreUOMQty'=>$v['dcsl']// 分配数量
  394. ]
  395. ]
  396. ,"DescFlexField"=>[
  397. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  398. "PubDescSeg4"=>$params['number'],//订单编码
  399. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  400. ],
  401. ];
  402. }
  403. $data = [];
  404. $data[] = [
  405. "OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回
  406. "TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看 TransOut001 组织间调拨 TransOut002 仓库转储 TransOut004 委外加工发料 TransOut005 委外加工退料
  407. "BusinessDate"=>date("Y-m-d",$params['time']),//日期
  408. "TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货
  409. "TransOutLines"=>$trans_out_lines,
  410. "DescFlexField"=>[
  411. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  412. "PubDescSeg4"=>$params['number'],//订单编码
  413. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  414. ],
  415. ];
  416. return $data;
  417. }
  418. //销售单的数据转化
  419. public function xsdDataTrans($params){
  420. $so_lines = [];
  421. foreach($params['list'] as $k=>$v){
  422. $so_lines[] = [
  423. 'TU'=>"条",//销售单位编码
  424. 'ItemCode'=>$v['jm'],//用友的编码
  425. 'PU'=>'条',//计价单位编码
  426. "ShipTogetherFlag"=>-1,//成套收发货标志
  427. 'DocLineNo'=>$k+1,
  428. 'CustomerItemNo'=>'',//客户料号
  429. 'CustomerItemName'=>'',//客户品名
  430. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  431. 'PubDescSeg10'=>'',
  432. 'SOShiplineDTOList'=>[ //销售订单计划行
  433. [
  434. 'IsMRPRequire', //MRP需求
  435. 'DemandType',//需求分类
  436. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  437. ]
  438. ],
  439. 'RecTerm'=>'',//目前找不到了
  440. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  441. 'UsableQtyOfInv'=>0,//文档中未查询到
  442. 'PubDescSeg3'=>'',
  443. 'PubDescSeg4'=>'',
  444. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  445. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  446. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  447. 'DescFlexField'=>[
  448. 'PubDescSeg3'=>'',
  449. ],
  450. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  451. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  452. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  453. 'Memo'=>'',//备注
  454. ];
  455. }
  456. $data = [];
  457. $data[] = [
  458. "OrderBy"=>$params['yyid'],//用友的商户的id
  459. "OtherID"=>$params['number'],//第三方传入ID
  460. "SaleDepartment"=>"",//部门编码 可为空
  461. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  462. "DocNo"=>'',//单据类型编码
  463. "AC"=>"C001",//人民币
  464. "TC"=>"C001",//人民币
  465. "ShipToSite"=>"",//收货位置编码
  466. "PubDescSeg2"=>"",
  467. "SOSrcType"=>0,
  468. "Seller"=>"",//业务员编码 可为空
  469. "ConfirmTerm"=>"",//但是现有文档没有
  470. "Memo"=>$params['number'],//备注
  471. "ShipRule"=>"",//但是现有文档没有
  472. "SOLineDTOList"=>$so_lines,
  473. ];
  474. return $data;
  475. }
  476. public function xsdTwoDataTrans($params){
  477. $so_lines = [];
  478. foreach($params['list'] as $k=>$v){
  479. $so_lines[] = [
  480. 'TU'=>"条",//销售单位编码
  481. 'ItemCode'=>$v['jm'],//用友的编码
  482. 'PU'=>'条',//计价单位编码
  483. "ShipTogetherFlag"=>-1,//成套收发货标志
  484. 'DocLineNo'=>$k+1,
  485. 'CustomerItemNo'=>'',//客户料号
  486. 'CustomerItemName'=>'',//客户品名
  487. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  488. 'PubDescSeg10'=>'',
  489. 'SOShiplineDTOList'=>[ //销售订单计划行
  490. [
  491. 'IsMRPRequire', //MRP需求
  492. 'DemandType',//需求分类
  493. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  494. ]
  495. ],
  496. 'RecTerm'=>'',//目前找不到了
  497. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  498. 'UsableQtyOfInv'=>0,//文档中未查询到
  499. 'PubDescSeg3'=>'',
  500. 'PubDescSeg4'=>'',
  501. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  502. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  503. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  504. 'DescFlexField'=>[
  505. 'PubDescSeg3'=>'',
  506. ],
  507. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  508. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  509. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  510. 'Memo'=>'',//备注
  511. ];
  512. }
  513. $data = [];
  514. $data[] = [
  515. "OrderBy"=>$params['yyid'],//用友的商户的id
  516. "OtherID"=>$params['number'],//第三方传入ID
  517. "SaleDepartment"=>"",//部门编码 可为空
  518. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  519. "DocNo"=>'',//单据类型编码
  520. "AC"=>"C009",//美金
  521. "TC"=>"C009",//美金
  522. "ShipToSite"=>"",//收货位置编码
  523. "PubDescSeg2"=>"",
  524. "SOSrcType"=>0,
  525. "Seller"=>"",//业务员编码 可为空
  526. "ConfirmTerm"=>"",//但是现有文档没有
  527. "Memo"=>$params['number'],//备注
  528. "ShipRule"=>"",//但是现有文档没有
  529. "SOLineDTOList"=>$so_lines,
  530. ];
  531. return $data;
  532. }
  533. public function cgdDataTrans($params){
  534. $po_lines = [];
  535. foreach($params['list'] as $k=>$v){
  536. $po_lines[] = [
  537. //"POLineID"=>0,//采购订单行ID
  538. 'ItemInfo'=>[
  539. 'm_code'=>$v['jm'],//用友料号
  540. ],
  541. "ReqQtyTU"=>$v['dcsl'],//需求数量
  542. "ReqQtyTBU"=>0,//确认数量
  543. "SupplierConfirmQtyTU"=>$v['dcsl'],//确认数量
  544. "SupplierConfirmQtyTBU"=>0,//确认数量
  545. "FinallyPriceTC"=>$v['final_price'],//最终价格
  546. "IsPresent"=>false,//赠品
  547. ];
  548. }
  549. $data = [];
  550. $data[] = [
  551. 'DocNo'=>"",
  552. "DocumentType"=>'PO01',//PO01 标准采购默认值
  553. 'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325
  554. "BusinessDate"=>date("Y-m-d H:i:s"),
  555. 'OtherID'=>$params['number'],
  556. 'DescFlexField'=>(object)[
  557. ],
  558. 'TC'=>'C001',
  559. 'AC'=>'C001',
  560. "Memo"=>$params['number'],
  561. 'Supplier'=>[
  562. 'Code'=>$params['gys'],//供应商编码 到时间找下
  563. ],
  564. 'IsPriceIncludeTax'=>false,
  565. "POLineDTOList"=>$po_lines
  566. ];
  567. return $data;
  568. }
  569. public function yybzchDataTrans($params){
  570. $data = [];
  571. foreach($params['list'] as $k=>$v ){
  572. $data[] = [
  573. "SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4
  574. "SrcDocNo"=>$params['xs_no'],//来源单号
  575. "SrcDocLineNo"=>$v['doclineno'],
  576. "SrcDocSubLineNo"=>$v['docsublineno'],
  577. //"WH"=>'',//存储地点ID 找不到id 那就找个WHcode
  578. 'WHCode'=>$params['drckbm'],//存储地点code 这里的参数为啥这么诡异 是因为 不想在很设置参数了 都按照调出的写法组件数据了
  579. "CurShipQty1"=>$v['dcsl'],//本次出货量
  580. "SOIsConsign"=>false,// 是否补货
  581. "OptionalSplitTerm"=>[],
  582. "DescFlexField"=>(object)[],
  583. "LineDescFlexField"=>(object)[],
  584. //"ShipDate",//出货单日期(该属性可为空,且无默认值)
  585. //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)
  586. "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3
  587. ];
  588. }
  589. return $data;
  590. }
  591. //销售单的数据转化
  592. public function cjlpDataTrans($params){
  593. $list = [];
  594. foreach($params['list'] as $k=>$v){
  595. $list[] = [
  596. "Code"=>$v['jm'],//料号
  597. "Code1"=>"",//参考料号1
  598. "Name"=>$v['zh'],//品名
  599. "MainItemCategory"=>[
  600. "Code"=>$v['bm']
  601. ],
  602. "Org"=>[
  603. "Code"=>$params['ztcode']
  604. ],
  605. "OtherID"=>1,
  606. "PurchaseInfo"=>[
  607. "BudgetControlType"=>-1,//预算控制方式
  608. "PriceSource"=>2,//取价来源
  609. "InquireRule"=>-1,//询价策略
  610. 'InquireFixedPeriod'=>0,//间隔期
  611. "StatisticPeriod"=>-1,//配额统计期间
  612. "IsPUTradePathModify"=>true,//采购贸易路径可改
  613. "IsPURtnTradePathModify"=>true,//采购退货贸易路径可改
  614. ],
  615. "InventoryUOM"=>[
  616. "Code"=>'条'
  617. ],
  618. "InventorySecondUOM"=>[
  619. "Code"=>''
  620. ],
  621. "IsDualUOM"=>false,
  622. "InventoryInfo"=>[
  623. "InventoryPlanningMethod"=>4,//规划方法
  624. "InventoryPlanTime"=>-1,//
  625. "TurnOverRate"=>1,//
  626. "ReserveMode"=>-1,//
  627. "SupplyMethod"=>-1,//
  628. ],
  629. "DescFlexField"=>[
  630. "PrivateDescSeg1"=>"01",
  631. "PubDescSeg5"=>"01"
  632. ],
  633. "Description"=>$v['title'],
  634. "ItemForm"=>2001,//料品形态
  635. "ItemFormAttribute"=>10,//料品形态属性
  636. "IsInventoryEnable"=>true,//可库存交易
  637. "IsPurchaseEnable"=>true,//可采购
  638. "IsSalesEnable"=>true,//可采购
  639. "IsBuildEnable"=>true,//可生产
  640. "IsOutsideOperationEnable"=>true,//可委外
  641. "IsMRPEnable"=>true,//可MRP
  642. "IsBOMEnable"=>true,//可BOM
  643. "IsCostCalByGrade"=>false,//等级影响成本
  644. "IsCostCalByPotency"=>false,//成分影响成本
  645. "IsGradeControl"=>false,//等级控制
  646. "StandardGrade"=>-1,//标准等级
  647. "StartGrade"=>-1,//起始等级
  648. "EndGrade"=>-1,//结束等级
  649. "IsPotencyControl"=>false,//成分控制
  650. "StandardPotency"=>-1,//标准成分
  651. "StartPotency"=>-1,//起始成分
  652. "EndPotency"=>-1,// 结束成分
  653. ];
  654. }
  655. return $list;
  656. }
  657. }