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 gcxsdWaiXiaoCreateBk($params,$token){ $list = $this->xsdDataTransGC($params); echo "
";
		print_r($list);
		die;
		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 cxScdStatus($doc_no,$token){



		$list["SqlString"] = "select top 2 docno,DocState from mo_mo where docno =  '".$doc_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 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'=>'',//最终价  单价
				'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 xsdDataTransGC($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'=>'',
				'PriceSource'=>0,//从价目表中 获取价格
				'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;
	}
	
}