| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018 | <?php/** * 为防后期调用u9接口复用问题这里决定重新封装apiyy的接口 */class Model_apiyyv1 extends Lin_Model {	public $base_url = "http://139.129.33.38";	function __construct(){		parent::__construct();		$this->load->database();		$this->table = 'apiyy';		$this->load_table('apiyy');		$this->load->_model("Model_logic_ding","logic_ding");	}    /**	 * 生成u9的调出单  	 */	public function dcdCrate($params,$token){		$list = $this->dcDataTrans($params);		$url = '/U9C/webapi/TransferOut/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 提交调出单	 */	public function dcdSubmit($params,$token){		$list  = [			[				'Code'=>$params['number'] //调出单单号			]		];		$url = '/U9C/webapi/TransferOut/Submit';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 审核调出单	 */	public function dcdApprove($params,$token){		$list  = [			[				'Code'=>$params['number'] //调出单单号			]		];		$url = '/U9C/webapi/TransferOut/Approve';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 生成u9的销售单	 * 只是财务记录 不牵扯到库存	 */	public function xsdCreate($params,$token){		$list = $this->xsdDataTrans($params);		$url = '/U9C/webapi/SO/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 工厂外销销售单	 */	public function gcxsdWaiXiaoCreate($params,$token){		$list = $this->xsdDataTrans($params);		foreach($list as $k=>$v){			$list[$k]['DescFlexField']["PrivateDescSeg3"] = $params['number'];			$list[$k]['DescFlexField']["PrivateDescSeg6"] = 'MJ00199';			$list[$k]['DescFlexField']["PubDescSeg6"] = 'MJ00199';			$list[$k]['DescFlexField']["PubDescSeg3"] = $params['number'];						// foreach($v['SOLineDTOList'] as $kk=>$vv){			// 	$list[$k]['SOLineDTOList'][$kk]['DescFlexField']['PrivateDescSeg3'] = $params['number'];			// 	$list[$k]['SOLineDTOList'][$kk]['DescFlexField']['PubDescSeg3'] = $params['number'];			// }		}		$url = '/U9C/webapi/SO/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 销售单状态查询 看看是否是审核状态	 */	public function xsdCxByNo($xcd_no,$token){		$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 ";;		$url = '/U9C/webapi/QueryCommon/QueryInfoBySql';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 生成u9的销售单	 * 只是财务记录 不牵扯到库存	 */	public function xsdTwoCreate($params,$token){		$list = $this->xsdTwoDataTrans($params);		$url = '/U9C/webapi/SO/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 销售单提交	 */	public function xsdSubmit($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/SO/Submit';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	 /**	  * 销售单审核	  */	  public function xsdApprove($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/SO/Approve';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 根据调出单的单号做关联查询 然后匹配存储调入单的审核	 */	public function drdcxBydcd($dcd_no,$token){		// $list["SqlString"] = "select DescFlexField_PubDescSeg4 ,DocNo from InvDoc_TransferIn  where  DescFlexField_PubDescSeg4  =  '".$dcd_no."'";		$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."'";		$url = '/U9C/webapi/QueryCommon/QueryInfoBySql';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	//销售单按照多单号查询	public function xscsByordernos($xs_no_list,$token){		$str = '';		foreach($xs_no_list as $k=>$v){			if($k==0){				$str .="'".$v."'";			}else{				$str .=",'".$v."'";			}					}		//$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 ";		$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 ";		$url = '/U9C/webapi/QueryCommon/QueryInfoBySql';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 调入单提交	 */	public function drdSubmit($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/TransferIn/Submit';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 调入单审核	 */	public function drdApprove($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/TransferIn/Approve';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 生成u9的采购单	 * 只是财务记录 不牵扯到库存	 * 目前采用的是无源的	 */	public function cgdCreate($params,$token){		$list = $this->cgdDataTrans($params);		$url = '/U9C/webapi/PurchaseOrder/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 采购单提交	 */	public function cgdSubmit($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/PurchaseOrder/Submit';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	 /**	  * 采购单审核	  */	  public function cgdApprove($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/PurchaseOrder/Approve';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 生成u9的标准出货单	 * 会造成库存变动	 * 使用的是有源的就是销售单	 */	public function bzchCreate($params,$token){		$list = $this->yybzchDataTrans($params);		$url = '/U9C/webapi/Ship/CreateBySrcDoc';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}		/**	 * 创建生产单	 */	public function scdCreate($params,$token){		$list = $this->scdDataTrans($params);		$url = '/U9C/webapi/MODoc/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 标准出货单提交并审核	 */	public function bzchSubmitAndApprove($params,$token){		$list  = [			[				'Code'=>$params['number'] //单号			]		];		$url = '/U9C/webapi/Ship/SubmitAndApprove';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 生成u9的标准收获单	 * 会造成库存变动	 * 这个也是有源的是采购单  不过估计用不上   先不写	 */	public function bzshCreate($params,$token){			}	/**	 * 生成成品入库单	 */	public function cprkCreate($params,$token){		$list = $this->cprkDataTrans($params);		$url = '/U9C/webapi/RcvRptDoc/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 成品入库单提交	 */	public function cprkApprove($params,$token){		$url = '/U9C/webapi/RcvRptDoc/Approve';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($params));		return array($res,$params);	}	/**	 * 成品入库查询	 */	public function cprkCx($params,$token){		$url = '/U9C/webapi/RcvRptDoc/Query';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($params));		return array($res,$params);	}	/**	 * 成品入库单审核	 */	//根据erp的单号查询调出单是够存在	public function xcDcdByOtherId($dcd_no,$token){		$list["SqlString"] = "select DescFlexField_PubDescSeg4,DocNo from InvDoc_TransferOut  where  DescFlexField_PubDescSeg4 =  '".$dcd_no."'";		$url = '/U9C/webapi/QueryCommon/QueryInfoBySql';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 调出单的二次验证	 * 避免因为其他组织使用相同的erp单号导致的冲突 不能创建成品库的数据	 */	public function xcDcdByOtherIdCheck($dcd_no,$token){		$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."' ";		$url = '/U9C/webapi/QueryCommon/QueryInfoBySql';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}		/**	 * 查询料品	 */	public function cxLp($params,$token){		$list  = [];		foreach($params as $k=>$v){			$list[] =[				"ItemMaster"=>[					"Code"=>$v['jm']				]			];		}		$url = '/U9C/webapi/ItemMaster/Query';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	/**	 * 创建料品	 */	public function cjLp($params,$token){		$list  = $this->cjlpDataTrans($params);		$url = '/U9C/webapi/ItemMaster/Create';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		$this->logic_ding->sendToDing("创建料品监听".json_encode($params,JSON_UNESCAPED_UNICODE)."||".json_encode($res,JSON_UNESCAPED_UNICODE)."||".$url);		return array($res,$list);	}	/**	 * 同步通知	 */	public function tbLp($params,$token){		$list  = [];		foreach($params['list'] as $k=>$v){			$list[] = [				"EntityFullName"=>'UFIDA.U9.CBO.SCM.Item.ItemMaster',//实体全名				"EntityCode"=>$v['jm'],				"FromOrgCode"=>$params['owner_code'],//创建组织编码				"ToOrgCodeList"=>[140],//要同步的组织				"OtherID"=>'',				"ContextDTO"=>[					"EntCode"=>$params['ztcode'],//企业编码					"OrgCode"=>$params['owner_code'],//组织编码					"UserCode"=>'xk',//用户编码					"UserPwd"=>'',//用户密码				]			];		}			   		$url = '/U9C/webapi/ControlObjSend/ControlObjSend';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	//由于逻辑修改造成 需要查询调出单是审核完毕	public function xdlsCxDcd($dcd_no,$token){		$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."'";		//$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."'";		$url = '/U9C/webapi/QueryCommon/QueryInfoBySql';		$url = $this->base_url.$url;		$header[] = "Content-Type: application/json";        $header[] = "Token: ".$token;		$res = $this->sendReq($url,$header,json_encode($list));		return array($res,$list);	}	public function sendReq($url,$header,$list){		$ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);		curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);		curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, $list);        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);        $res = curl_exec($ch);		$res = json_decode($res,true);		return $res;	}	//调出单的数据转化	public function dcDataTrans($params){		$trans_out_lines = [];		foreach($params['list'] as $k=>$v){			$trans_out_lines[] = [				"ItemInfo" =>[					"ItemCode"=>$v['jm'],//用友的简码				],				"TransOutWh_Code"=>$params['dcckbm'],//调出仓库编码				"StoreUOM_Code"=>"条",//调出库存单位Code  如条				"StoreUOMQty"=>$v['dcsl'],//调出数量				"StorageType"=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工				"LotInfo_Code"=>"",//批号Code   不知道有啥用 暂时留空吧				"TransOutOwnerOrg_Code"=>$params['owner_code'],//货主组织Code				"TransOutSubLines"=>[					[						'TransInWh_Code'=>$params['drckbm']."",//调入仓库编码						'StorageType'=>4,//存储类型:待检;1:在检;2:不合格;3:报废;4:可用;5:冻结;6:退回;7:待返工						'TransInOrg_Code'=>$params['drzz_code']."",//调入组织Code						'TransOutOwnerOrg_Code'=>$params['owner_code']."",//货主组织Code						'StoreUOMQty'=>$v['dcsl'],					]				],				"TransOutBins"=>[					[						'BinInfo_Code'=>'',//库位Code						'StoreUOMQty'=>$v['dcsl']//	分配数量					]				]				,"DescFlexField"=>[					"PubDescSeg2"=>$params['yyid'],//来源店铺  这种需要在店铺表中有					"PubDescSeg4"=>$params['number'],//订单编码					"PubDescSeg5"=>$params['shipremarks'],//订单的备注				],			];					}		$data = [];		$data[] = [			"OtherID"=>$params['number'],//第三方数据唯一性标识,此字段需要返回			"TransOutDocType_Code"=> $params['TransOutDocType_Code'],//单据类型在u9中设置的 详情到u9界面查看  TransOut001  组织间调拨  TransOut002 仓库转储  TransOut004 委外加工发料  TransOut005  委外加工退料			"BusinessDate"=>date("Y-m-d",$params['time']),//日期			"TransferDirection"=>$params['TransferDirection'],//调拨方向 0:普通;1:退货			"TransOutLines"=>$trans_out_lines,			"DescFlexField"=>[				"PubDescSeg2"=>$params['yyid'],//来源店铺  这种需要在店铺表中有				"PubDescSeg4"=>$params['number'],//订单编码				"PubDescSeg5"=>$params['shipremarks'],//订单的备注			],		];		return $data;	}	//销售单的数据转化	public function xsdDataTrans($params){		$so_lines = [];		foreach($params['list'] as $k=>$v){						$so_lines[] = [				'TU'=>"条",//销售单位编码				'ItemCode'=>$v['jm'],//用友的编码				'PU'=>'条',//计价单位编码				"ShipTogetherFlag"=>-1,//成套收发货标志				'DocLineNo'=>$k+1,				'CustomerItemNo'=>'',//客户料号				'CustomerItemName'=>'',//客户品名 				'FinallyPriceTC'=>$v['final_price'],//最终价  单价				'PubDescSeg10'=>'',				'SOShiplineDTOList'=>[  //销售订单计划行					[						'IsMRPRequire',  //MRP需求						'DemandType',//需求分类						'RequireDate'=>date('m/d/Y H:i:s',$params['time']),					]				],				'RecTerm'=>'',//目前找不到了				'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1)   徐凯设定的是  如果钱小于0.01  那么就传0 其他的传递-1				'UsableQtyOfInv'=>0,//文档中未查询到				'PubDescSeg3'=>'',				'PubDescSeg4'=>'',				'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)				'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)				'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值)  不知道这个是啥 徐凯的老代码是这么写的				'DescFlexField'=>[					'PubDescSeg3'=>'',				],				'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)				'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)				'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)				'Memo'=>'',//备注			];		}		$data = [];		$data[] = [			"OrderBy"=>$params['yyid'],//用友的商户的id			"OtherID"=>$params['number'],//第三方传入ID			"SaleDepartment"=>"",//部门编码  可为空			"DocumentType"=>"SO1",//单据类型编码  标准销售单  So1是默认值			"DocNo"=>'',//单据类型编码			"AC"=>"C001",//人民币			"TC"=>"C001",//人民币			"ShipToSite"=>"",//收货位置编码			"PubDescSeg2"=>"",			"SOSrcType"=>0,			"Seller"=>"",//业务员编码  可为空			"ConfirmTerm"=>"",//但是现有文档没有			"Memo"=>$params['number'],//备注			"ShipRule"=>"",//但是现有文档没有			"SOLineDTOList"=>$so_lines,		];		return $data;	}		public function xsdTwoDataTrans($params){		$so_lines = [];		foreach($params['list'] as $k=>$v){						$so_lines[] = [				'TU'=>"条",//销售单位编码				'ItemCode'=>$v['jm'],//用友的编码				'PU'=>'条',//计价单位编码				"ShipTogetherFlag"=>-1,//成套收发货标志				'DocLineNo'=>$k+1,				'CustomerItemNo'=>'',//客户料号				'CustomerItemName'=>'',//客户品名 				'FinallyPriceTC'=>$v['final_price'],//最终价  单价				'PubDescSeg10'=>'',				'SOShiplineDTOList'=>[  //销售订单计划行					[						'IsMRPRequire',  //MRP需求						'DemandType',//需求分类						'RequireDate'=>date('m/d/Y H:i:s',$params['time']),					]				],				'RecTerm'=>'',//目前找不到了				'FreeType'=>($v['final_price'] < 0.01)?0: -1,//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1)   徐凯设定的是  如果钱小于0.01  那么就传0 其他的传递-1				'UsableQtyOfInv'=>0,//文档中未查询到				'PubDescSeg3'=>'',				'PubDescSeg4'=>'',				'PriceList'=>'',//价表编码 (该属性可为空,且无默认值)				'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值)				'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值)  不知道这个是啥 徐凯的老代码是这么写的				'DescFlexField'=>[					'PubDescSeg3'=>'',				],				'OrderByQtyTU'=>$v['dcsl'],//销售数量 (该属性可为空,且无默认值)				'OrderByQtyPU'=>$v['dcsl'],//计价数量 (该属性可为空,且无默认值)				'OrderPriceTC'=>'',//定价 (该属性可为空,且无默认值)				'Memo'=>'',//备注			];		}		$data = [];		$data[] = [			"OrderBy"=>$params['yyid'],//用友的商户的id			"OtherID"=>$params['number'],//第三方传入ID			"SaleDepartment"=>"",//部门编码  可为空			"DocumentType"=>"SO1",//单据类型编码  标准销售单  So1是默认值			"DocNo"=>'',//单据类型编码			"AC"=>"C009",//美金			"TC"=>"C009",//美金			"ShipToSite"=>"",//收货位置编码			"PubDescSeg2"=>"",			"SOSrcType"=>0,			"Seller"=>"",//业务员编码  可为空			"ConfirmTerm"=>"",//但是现有文档没有			"Memo"=>$params['number'],//备注			"ShipRule"=>"",//但是现有文档没有			"SOLineDTOList"=>$so_lines,		];		return $data;	}	public function cgdDataTrans($params){		$po_lines = [];		foreach($params['list'] as $k=>$v){			$po_lines[] = [				//"POLineID"=>0,//采购订单行ID				'ItemInfo'=>[					'm_code'=>$v['jm'],//用友料号				],				"ReqQtyTU"=>$v['dcsl'],//需求数量				"ReqQtyTBU"=>0,//确认数量				"SupplierConfirmQtyTU"=>$v['dcsl'],//确认数量				"SupplierConfirmQtyTBU"=>0,//确认数量				"FinallyPriceTC"=>$v['final_price'],//最终价格				"IsPresent"=>false,//赠品							];					}		$data = [];		$data[] = [			'DocNo'=>"",			"DocumentType"=>'PO01',//PO01  标准采购默认值			'BizType'=>0,//业务类型:AR_Invoice 销售发票 0 (默认值),PM005 标准采购 316 ,PM055 全程委外采购 326 ,PM050 工序外协采购 325			"BusinessDate"=>date("Y-m-d H:i:s"),			'OtherID'=>$params['number'],			'DescFlexField'=>(object)[			],			'TC'=>'C001',			'AC'=>'C001',			"Memo"=>$params['number'],			'Supplier'=>[				'Code'=>$params['gys'],//供应商编码  到时间找下			],			'IsPriceIncludeTax'=>false,			"POLineDTOList"=>$po_lines		];				return $data;	}	public function yybzchDataTrans($params){		$data = [];		foreach($params['list'] as $k=>$v ){						$data[] = [				"SrcDocType"=>1,//售订单 Value:1 出货计划 Value:2 销售合同 Value:3 预出货单 Value:4				"SrcDocNo"=>$params['xs_no'],//来源单号				"SrcDocLineNo"=>$v['doclineno'],				"SrcDocSubLineNo"=>$v['docsublineno'],				//"WH"=>'',//存储地点ID   找不到id  那就找个WHcode				'WHCode'=>$params['drckbm'],//存储地点code   这里的参数为啥这么诡异 是因为 不想在很设置参数了 都按照调出的写法组件数据了				"CurShipQty1"=>$v['dcsl'],//本次出货量				"SOIsConsign"=>false,//	是否补货				"OptionalSplitTerm"=>[],				"DescFlexField"=>(object)[],				"LineDescFlexField"=>(object)[],				//"ShipDate",//出货单日期(该属性可为空,且无默认值)				//"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值)				"DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3			];		}		return $data;	}		//销售单的数据转化	public function cjlpDataTrans($params){		$list = [];		foreach($params['list'] as $k=>$v){			$list[] = [				"Code"=>$v['jm'],//料号				"Code1"=>"",//参考料号1				"Name"=>$v['zh'],//品名				"MainItemCategory"=>[					"Code"=>$v['bm']				],				"Org"=>[					"Code"=>$params['ztcode']				],				"OtherID"=>1,				"PurchaseInfo"=>[					"BudgetControlType"=>-1,//预算控制方式					"PriceSource"=>2,//取价来源					"InquireRule"=>-1,//询价策略					'InquireFixedPeriod'=>0,//间隔期					"StatisticPeriod"=>-1,//配额统计期间					"IsPUTradePathModify"=>true,//采购贸易路径可改					"IsPURtnTradePathModify"=>true,//采购退货贸易路径可改				],				"InventoryUOM"=>[					"Code"=>'条'				],				"InventorySecondUOM"=>[					"Code"=>''				],				"IsDualUOM"=>false,				"InventoryInfo"=>[					"InventoryPlanningMethod"=>4,//规划方法					"InventoryPlanTime"=>-1,//					"TurnOverRate"=>1,//					"ReserveMode"=>-1,//					"SupplyMethod"=>-1,//				],				"DescFlexField"=>[					"PrivateDescSeg1"=>"01",					"PubDescSeg5"=>"01"				],				"Description"=>$v['title'],				"ItemForm"=>2001,//料品形态				"ItemFormAttribute"=>10,//料品形态属性				"IsInventoryEnable"=>true,//可库存交易				"IsPurchaseEnable"=>true,//可采购				"IsSalesEnable"=>true,//可采购				"IsBuildEnable"=>true,//可生产				"IsOutsideOperationEnable"=>true,//可委外				"IsMRPEnable"=>true,//可MRP				"IsBOMEnable"=>true,//可BOM				"IsCostCalByGrade"=>false,//等级影响成本				"IsCostCalByPotency"=>false,//成分影响成本				"IsGradeControl"=>false,//等级控制				"StandardGrade"=>-1,//标准等级				"StartGrade"=>-1,//起始等级				"EndGrade"=>-1,//结束等级				"IsPotencyControl"=>false,//成分控制				"StandardPotency"=>-1,//标准成分				"StartPotency"=>-1,//起始成分				"EndPotency"=>-1,//	结束成分			];					}		return $list;	}		public function cprkDataTrans($params){		$list = [];		foreach($params['list'] as $k=>$v){			$tmp = [				"MOKey"=>[					"OtherID"=>"",					"ID"=>0,					"DocNo"=>$params['rkcode'],//需要填写入库 rkcode  传递					"OrgID"=>0,					"IsSuccess"=>1,					"ErrorInfo"=>"",					"CUD"=>0,				],				"Wh"=>[					"Code"=>$params['rev_wh_code'],//存储地点信息    传递				],				"LineNum"=>$k,//行号				"StorageType"=>4,//				"Grade"=>0,//等级				"Element"=>0,				"CompleteQty"=>$v['sl'],//申报数量(生产单位)				"CompleteQtyByWhUOM"=>$v['sl'],//申报数量(库存单位)				"CompleteQtyByCostUOM"=>$v['sl'],//申报数量(成本单位) 				"CUD"=>0,				"OwnerOrg"=>[					"Code"=>$params['org_code'],//货主组织编码				],				"OutputType"=>0,//产出类型 				"Item"=>[					"Code"=>$v['jm'],//编码  其实是用友的料号				],				"ScrapQty"=>0,//报废数量				"ScrapQtyByCostUOM"=>0,//报废数量(成本单位)				"PUToPBURate"=>0,//生产主-生产副				"CUToCBURate"=>0,//成本主-成本副				"PBUToCBURate"=>0,//生产-成本				"SourceRcvRptLine"=>[   //来源入库单行					"RcvRptDocDTO"=>[	//入库单DTO						"ID"=>0,	//唯一标示						"DocType"=>[	//单据类型							'Code'=>0,						],						"BusinessDate"=>'',//业务日期						"DocNo"=>"",//单号						"SourceDoc"=>[	//来源单据							"MOSrcDocType"=>0,//来源单据类型							"SrcDocOrg"=>0,//							"SrcDoc"=>[	//来源单据								"ID"=>$params['rkid'], //单据ID  徐凯传递的是$data['rkid']								"EntityType"=>'UFIDA.U9.MO.MO.MO',//单据类型							],							"SrcDocVer"=>'',//单据版本							"SrcDocLine"=>[								"ID"=>0,								"EntityType"=>'',							],							"SrcDocSubline"=>[								"ID"=>0,								"EntityType"=>'',							],							"SrcDocNo"=>$params['rkid'],//单据号  徐凯传递了$data['rkid']							"SrcDocLineNo"=>'',//行号							"SrcDocSublineNo"=>10+$k,							"SrcDocID"=>$params['rkid'],//来源单据ID  徐凯传递了$data['rkid']							"SrcDocLineID"=>0,							"SrcDocType"=>'',													],						"DocDate"=>date("Y-m-d",time()),						"RcvOrg"=>[	//入库组织							"Code"=>$params['rec_code'],//入库组织编码  需填写						],						"Org"=>[							"Code"=>$params['org_code'],//组织编码  需填写						],						"Direction"=>0,						"DocState"=>0,						"RcvDep"=>[							"ID"=>0,							"Code"=>'',							"Name"=>''						],						"RcvPerson"=>[							"ID"=>0,							"Code"=>'',							"Name"=>''						],						"OtherID"=>"",					],					"ProductUOM"=>[						"Code"=>'条',					],					"ProductBaseUOM"=>[						"Code"=>'条',					],					"StoreUOM"=>[						"Code"=>'条',					],					"StoreBaseUOM"=>[						"Code"=>'条',					],					"CoUOM"=>[						"Code"=>'条',					],					"CostBaseUOM"=>[						"Code"=>'条',					],					"OperationState"=>0,					"OutputType"=>0,					"Item"=>[						"Code"=>$v['jm'],//料号  徐凯传递的是$data['jm']					],					"OwnerOrg"=>[						"Code"=>$params['org_code'],//货主组织编码  需填写					],					"PUToPBURate"=>0,					"SUToSBURate"=>0,					"PBUToSBURate"=>0,					"CUToCBURate"=>0,					"PBUToCBURate"=>0,					"Grade"=>0,					"Element"=>0,					"Wh"=>[						"Code"=>$params['rev_wh_code'],//存储地点信息  传递					],					"StorageType"=>4,					"RcvValiddate"=>0,					"RcvQtyByProductUOM"=>0,					"RcvQtyByWhUOM"=>0,					"RcvQtyByCostUom"=>0,					"RcvOrg"=>[	//入库组织						"Code"=>001,//编码					],					"PerformingOrg"=>[ //执行组织						"Code"=>001	//编码					],					"CUD"=>0,					"LineNum"=>0,					"MO"=>[	//生产订单 						"Code"=>$params['rkcode'],//徐凯写了 rkcode					],					"ID"=>0,				]			];			$list[] = $tmp;		}		$res = [			"DocNo"=>"",//			"CompleteList"=>$list,			"DescFlexField"=>[				//"PubDescSeg2"=>$params['yyid'],//kh				"PubDescSeg4"=>$params['number'],//订单编码				"PubDescSeg5"=>$params['shipremarks'],//备注			],			"DocType"=>[				"Code"=>0,			],			"BusinessDate"=>(date("Y-m-d",time())),			"OtherID"=>'',//订单编码			"Direction"=>0,			"IsOffLine"=>1, //是否撤线报			"DocState"=>0,			"Remark"=>time(),			"RcvPerson"=>[				"Code"=>"ERP"			]		];		if(!empty($params['yyid'])){			$res['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户		}				return [$res];	}	public function scdDataTrans($params){				$list = [];		foreach($params['list'] as $k=>$v){			$info = [				"OtherID"=>"",				"Org"=>[					"Code"=>$params['org_code']//生产组织编码				],				"ItemMaster"=>[					"Code"=>$v['jm'],//料号				],				"DocType"=>[					"Code"=>$params['djhlx']//单据类型				],				"Department"=>[					"Code"=>$params['scbm_code']//生产部门编码				],				"ExpandLevel"=>0, //展开阶数				"AlternateType"=>0,//生产目的				"RoutingAlternate"=>0,//工艺生产目的				"RoutingEffeDate"=>'',//工艺有效日期				"ProductQty"=>$v['sl'],				"ProductUOM"=>[					"Code"=>'条'				],				"StartDate"=>date('Y-m-d',$params['time']),//计划开工日期				"CompleteDate"=>date('Y-m-d',$params['time']),//计划完工日期				"MOSourceDocType"=>0,//来源单据类型				"OwnerOrg"=>[					"Code"=>$params['owner_org_code']//货主组织编码				],				"SCVWh"=>[					"Code"=>$v['drck']//完工存储地点编码				],				"DemandCode"=>-1,//需求分类				"IsFirmed"=>false,//锁定标志				"IsCapacityLimit"=>false,//有限产能				"Priority"=>0,//	优先级				"CUD"=>0,//增删改类型				"BOMType"=>0,//BOM类型 				"Description"=>$params['title'],//备注				"MRPQty"=>0,//MRP数量				"MOID"=>0,//生产订单ID				"PBUToSBURate"=>0,//生产-库存				"PBUToCBURate"=>0,//生产-成本				"DescFlexField"=>[										"PubDescSeg4"=>$params['title'],//erp单号					"PubDescSeg5"=>$params['shipremarks'],//erp备注				]			];			if(!empty($params['yyid'])){				$info['DescFlexField']['PubDescSeg2'] = $params['yyid'];//备注-客户			}			$list[] = $info;		}		return $list;	}	}
 |