Model_apiyyv1.php 23 KB

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