Model_apiyyv1.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691
  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. * 避免因为其他组织使用相同的erp单号导致的冲突 不能创建成品库的数据
  275. */
  276. public function xcDcdByOtherIdCheck($dcd_no,$token){
  277. $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."' ";
  278. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  279. $url = $this->base_url.$url;
  280. $header[] = "Content-Type: application/json";
  281. $header[] = "Token: ".$token;
  282. $res = $this->sendReq($url,$header,json_encode($list));
  283. return array($res,$list);
  284. }
  285. /**
  286. * 查询料品
  287. */
  288. public function cxLp($params,$token){
  289. $list = [];
  290. foreach($params as $k=>$v){
  291. $list[] =[
  292. "ItemMaster"=>[
  293. "Code"=>$v['jm']
  294. ]
  295. ];
  296. }
  297. $url = '/U9C/webapi/ItemMaster/Query';
  298. $url = $this->base_url.$url;
  299. $header[] = "Content-Type: application/json";
  300. $header[] = "Token: ".$token;
  301. $res = $this->sendReq($url,$header,json_encode($list));
  302. return array($res,$list);
  303. }
  304. /**
  305. * 创建料品
  306. */
  307. public function cjLp($params,$token){
  308. $list = $this->cjlpDataTrans($params);
  309. $url = '/U9C/webapi/ItemMaster/Create';
  310. $url = $this->base_url.$url;
  311. $header[] = "Content-Type: application/json";
  312. $header[] = "Token: ".$token;
  313. $res = $this->sendReq($url,$header,json_encode($list));
  314. return array($res,$list);
  315. }
  316. /**
  317. * 同步通知
  318. */
  319. public function tbLp($params,$token){
  320. $list = [];
  321. foreach($params['list'] as $k=>$v){
  322. $list[] = [
  323. "EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名
  324. "EntityCode"=>$v['jm'],
  325. "FromOrgCode"=>$params['owner_code'],//创建组织编码
  326. "ToOrgCodeList"=>[140],//要同步的组织
  327. "OtherID"=>'',
  328. "ContextDTO"=>[
  329. "EntCode"=>$params['ztcode'],//企业编码
  330. "OrgCode"=>$params['owner_code'],//组织编码
  331. "UserCode"=>'xk',//用户编码
  332. "UserPwd"=>'',//用户密码
  333. ]
  334. ];
  335. }
  336. $url = '/U9C/webapi/ControlObjSend/ControlObjSend';
  337. $url = $this->base_url.$url;
  338. $header[] = "Content-Type: application/json";
  339. $header[] = "Token: ".$token;
  340. $res = $this->sendReq($url,$header,json_encode($list));
  341. return array($res,$list);
  342. }
  343. //由于逻辑修改造成 需要查询调出单是审核完毕
  344. public function xdlsCxDcd($dcd_no,$token){
  345. $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."'";
  346. //$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."'";
  347. $url = '/U9C/webapi/QueryCommon/QueryInfoBySql';
  348. $url = $this->base_url.$url;
  349. $header[] = "Content-Type: application/json";
  350. $header[] = "Token: ".$token;
  351. $res = $this->sendReq($url,$header,json_encode($list));
  352. return array($res,$list);
  353. }
  354. public function sendReq($url,$header,$list){
  355. $ch = curl_init();
  356. curl_setopt($ch, CURLOPT_URL, $url);
  357. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  358. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  359. curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
  360. curl_setopt($ch, CURLOPT_POST, 1);
  361. curl_setopt($ch, CURLOPT_POSTFIELDS, $list);
  362. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  363. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  364. $res = curl_exec($ch);
  365. $res = json_decode($res,true);
  366. return $res;
  367. }
  368. //调出单的数据转化
  369. public function dcDataTrans($params){
  370. $trans_out_lines = [];
  371. foreach($params['list'] as $k=>$v){
  372. $trans_out_lines[] = [
  373. "ItemInfo" =>[
  374. "ItemCode"=>$v['jm'],//用友的简码
  375. ],
  376. "TransOutWh_Code"=>$params['dcckbm'],//调出仓库编码
  377. "StoreUOM_Code"=>"条",//调出库存单位Code 如条
  378. "StoreUOMQty"=>$v['dcsl'],//调出数量
  379. "StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  380. "LotInfo_Code"=>"",//批号Code 不知道有啥用 暂时留空吧
  381. "TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code
  382. "TransOutSubLines"=>[
  383. [
  384. 'TransInWh_Code'=>$params['drckbm']."",//调入仓库编码
  385. 'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工
  386. 'TransInOrg_Code'=>$params['drzz_code']."",//调入组织Code
  387. 'TransOutOwnerOrg_Code'=>$params['owner_code']."",//货主组织Code
  388. 'StoreUOMQty'=>$v['dcsl'],
  389. ]
  390. ],
  391. "TransOutBins"=>[
  392. [
  393. 'BinInfo_Code'=>'',//库位Code
  394. 'StoreUOMQty'=>$v['dcsl']// 分配数量
  395. ]
  396. ]
  397. ,"DescFlexField"=>[
  398. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  399. "PubDescSeg4"=>$params['number'],//订单编码
  400. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  401. ],
  402. ];
  403. }
  404. $data = [];
  405. $data[] = [
  406. "OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回
  407. "TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看 TransOut001 组织间调拨 TransOut002 仓库转储 TransOut004 委外加工发料 TransOut005 委外加工退料
  408. "BusinessDate"=>date("Y-m-d",$params['time']),//日期
  409. "TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货
  410. "TransOutLines"=>$trans_out_lines,
  411. "DescFlexField"=>[
  412. "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有
  413. "PubDescSeg4"=>$params['number'],//订单编码
  414. "PubDescSeg5"=>$params['shipremarks'],//订单的备注
  415. ],
  416. ];
  417. return $data;
  418. }
  419. //销售单的数据转化
  420. public function xsdDataTrans($params){
  421. $so_lines = [];
  422. foreach($params['list'] as $k=>$v){
  423. $so_lines[] = [
  424. 'TU'=>"条",//销售单位编码
  425. 'ItemCode'=>$v['jm'],//用友的编码
  426. 'PU'=>'条',//计价单位编码
  427. "ShipTogetherFlag"=>-1,//成套收发货标志
  428. 'DocLineNo'=>$k+1,
  429. 'CustomerItemNo'=>'',//客户料号
  430. 'CustomerItemName'=>'',//客户品名
  431. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  432. 'PubDescSeg10'=>'',
  433. 'SOShiplineDTOList'=>[ //销售订单计划行
  434. [
  435. 'IsMRPRequire', //MRP需求
  436. 'DemandType',//需求分类
  437. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  438. ]
  439. ],
  440. 'RecTerm'=>'',//目前找不到了
  441. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  442. 'UsableQtyOfInv'=>0,//文档中未查询到
  443. 'PubDescSeg3'=>'',
  444. 'PubDescSeg4'=>'',
  445. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  446. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  447. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  448. 'DescFlexField'=>[
  449. 'PubDescSeg3'=>'',
  450. ],
  451. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  452. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  453. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  454. 'Memo'=>'',//备注
  455. ];
  456. }
  457. $data = [];
  458. $data[] = [
  459. "OrderBy"=>$params['yyid'],//用友的商户的id
  460. "OtherID"=>$params['number'],//第三方传入ID
  461. "SaleDepartment"=>"",//部门编码 可为空
  462. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  463. "DocNo"=>'',//单据类型编码
  464. "AC"=>"C001",//人民币
  465. "TC"=>"C001",//人民币
  466. "ShipToSite"=>"",//收货位置编码
  467. "PubDescSeg2"=>"",
  468. "SOSrcType"=>0,
  469. "Seller"=>"",//业务员编码 可为空
  470. "ConfirmTerm"=>"",//但是现有文档没有
  471. "Memo"=>$params['number'],//备注
  472. "ShipRule"=>"",//但是现有文档没有
  473. "SOLineDTOList"=>$so_lines,
  474. ];
  475. return $data;
  476. }
  477. public function xsdTwoDataTrans($params){
  478. $so_lines = [];
  479. foreach($params['list'] as $k=>$v){
  480. $so_lines[] = [
  481. 'TU'=>"条",//销售单位编码
  482. 'ItemCode'=>$v['jm'],//用友的编码
  483. 'PU'=>'条',//计价单位编码
  484. "ShipTogetherFlag"=>-1,//成套收发货标志
  485. 'DocLineNo'=>$k+1,
  486. 'CustomerItemNo'=>'',//客户料号
  487. 'CustomerItemName'=>'',//客户品名
  488. 'FinallyPriceTC'=>$v['final_price'],//最终价 单价
  489. 'PubDescSeg10'=>'',
  490. 'SOShiplineDTOList'=>[ //销售订单计划行
  491. [
  492. 'IsMRPRequire', //MRP需求
  493. 'DemandType',//需求分类
  494. 'RequireDate'=>date('m/d/Y H:i:s',$params['time']),
  495. ]
  496. ],
  497. 'RecTerm'=>'',//目前找不到了
  498. 'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1
  499. 'UsableQtyOfInv'=>0,//文档中未查询到
  500. 'PubDescSeg3'=>'',
  501. 'PubDescSeg4'=>'',
  502. 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)
  503. 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)
  504. 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的
  505. 'DescFlexField'=>[
  506. 'PubDescSeg3'=>'',
  507. ],
  508. 'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)
  509. 'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)
  510. 'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)
  511. 'Memo'=>'',//备注
  512. ];
  513. }
  514. $data = [];
  515. $data[] = [
  516. "OrderBy"=>$params['yyid'],//用友的商户的id
  517. "OtherID"=>$params['number'],//第三方传入ID
  518. "SaleDepartment"=>"",//部门编码 可为空
  519. "DocumentType"=>"SO1",//单据类型编码 标准销售单 So1是默认值
  520. "DocNo"=>'',//单据类型编码
  521. "AC"=>"C009",//美金
  522. "TC"=>"C009",//美金
  523. "ShipToSite"=>"",//收货位置编码
  524. "PubDescSeg2"=>"",
  525. "SOSrcType"=>0,
  526. "Seller"=>"",//业务员编码 可为空
  527. "ConfirmTerm"=>"",//但是现有文档没有
  528. "Memo"=>$params['number'],//备注
  529. "ShipRule"=>"",//但是现有文档没有
  530. "SOLineDTOList"=>$so_lines,
  531. ];
  532. return $data;
  533. }
  534. public function cgdDataTrans($params){
  535. $po_lines = [];
  536. foreach($params['list'] as $k=>$v){
  537. $po_lines[] = [
  538. //"POLineID"=>0,//采购订单行ID
  539. 'ItemInfo'=>[
  540. 'm_code'=>$v['jm'],//用友料号
  541. ],
  542. "ReqQtyTU"=>$v['dcsl'],//需求数量
  543. "ReqQtyTBU"=>0,//确认数量
  544. "SupplierConfirmQtyTU"=>$v['dcsl'],//确认数量
  545. "SupplierConfirmQtyTBU"=>0,//确认数量
  546. "FinallyPriceTC"=>$v['final_price'],//最终价格
  547. "IsPresent"=>false,//赠品
  548. ];
  549. }
  550. $data = [];
  551. $data[] = [
  552. 'DocNo'=>"",
  553. "DocumentType"=>'PO01',//PO01 标准采购默认值
  554. 'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325
  555. "BusinessDate"=>date("Y-m-d H:i:s"),
  556. 'OtherID'=>$params['number'],
  557. 'DescFlexField'=>(object)[
  558. ],
  559. 'TC'=>'C001',
  560. 'AC'=>'C001',
  561. "Memo"=>$params['number'],
  562. 'Supplier'=>[
  563. 'Code'=>$params['gys'],//供应商编码 到时间找下
  564. ],
  565. 'IsPriceIncludeTax'=>false,
  566. "POLineDTOList"=>$po_lines
  567. ];
  568. return $data;
  569. }
  570. public function yybzchDataTrans($params){
  571. $data = [];
  572. foreach($params['list'] as $k=>$v ){
  573. $data[] = [
  574. "SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4
  575. "SrcDocNo"=>$params['xs_no'],//来源单号
  576. "SrcDocLineNo"=>$v['doclineno'],
  577. "SrcDocSubLineNo"=>$v['docsublineno'],
  578. //"WH"=>'',//存储地点ID 找不到id 那就找个WHcode
  579. 'WHCode'=>$params['drckbm'],//存储地点code 这里的参数为啥这么诡异 是因为 不想在很设置参数了 都按照调出的写法组件数据了
  580. "CurShipQty1"=>$v['dcsl'],//本次出货量
  581. "SOIsConsign"=>false,// 是否补货
  582. "OptionalSplitTerm"=>[],
  583. "DescFlexField"=>(object)[],
  584. "LineDescFlexField"=>(object)[],
  585. //"ShipDate",//出货单日期(该属性可为空,且无默认值)
  586. //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)
  587. "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3
  588. ];
  589. }
  590. return $data;
  591. }
  592. //销售单的数据转化
  593. public function cjlpDataTrans($params){
  594. $list = [];
  595. foreach($params['list'] as $k=>$v){
  596. $list[] = [
  597. "Code"=>$v['jm'],//料号
  598. "Code1"=>"",//参考料号1
  599. "Name"=>$v['zh'],//品名
  600. "MainItemCategory"=>[
  601. "Code"=>$v['bm']
  602. ],
  603. "Org"=>[
  604. "Code"=>$params['ztcode']
  605. ],
  606. "OtherID"=>1,
  607. "PurchaseInfo"=>[
  608. "BudgetControlType"=>-1,//预算控制方式
  609. "PriceSource"=>2,//取价来源
  610. "InquireRule"=>-1,//询价策略
  611. 'InquireFixedPeriod'=>0,//间隔期
  612. "StatisticPeriod"=>-1,//配额统计期间
  613. "IsPUTradePathModify"=>true,//采购贸易路径可改
  614. "IsPURtnTradePathModify"=>true,//采购退货贸易路径可改
  615. ],
  616. "InventoryUOM"=>[
  617. "Code"=>'条'
  618. ],
  619. "InventorySecondUOM"=>[
  620. "Code"=>''
  621. ],
  622. "IsDualUOM"=>false,
  623. "InventoryInfo"=>[
  624. "InventoryPlanningMethod"=>4,//规划方法
  625. "InventoryPlanTime"=>-1,//
  626. "TurnOverRate"=>1,//
  627. "ReserveMode"=>-1,//
  628. "SupplyMethod"=>-1,//
  629. ],
  630. "DescFlexField"=>[
  631. "PrivateDescSeg1"=>"01",
  632. "PubDescSeg5"=>"01"
  633. ],
  634. "Description"=>$v['title'],
  635. "ItemForm"=>2001,//料品形态
  636. "ItemFormAttribute"=>10,//料品形态属性
  637. "IsInventoryEnable"=>true,//可库存交易
  638. "IsPurchaseEnable"=>true,//可采购
  639. "IsSalesEnable"=>true,//可采购
  640. "IsBuildEnable"=>true,//可生产
  641. "IsOutsideOperationEnable"=>true,//可委外
  642. "IsMRPEnable"=>true,//可MRP
  643. "IsBOMEnable"=>true,//可BOM
  644. "IsCostCalByGrade"=>false,//等级影响成本
  645. "IsCostCalByPotency"=>false,//成分影响成本
  646. "IsGradeControl"=>false,//等级控制
  647. "StandardGrade"=>-1,//标准等级
  648. "StartGrade"=>-1,//起始等级
  649. "EndGrade"=>-1,//结束等级
  650. "IsPotencyControl"=>false,//成分控制
  651. "StandardPotency"=>-1,//标准成分
  652. "StartPotency"=>-1,//起始成分
  653. "EndPotency"=>-1,// 结束成分
  654. ];
  655. }
  656. return $list;
  657. }
  658. }