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'=>$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 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;
}
}