load->database(); $this->table = 'apiyy'; $this->load_table('apiyy'); } /** * 生成u9的调出单 */ public function dcdCrate($params,$token){ $list = $this->dcDataTrans($params); $list = json_encode($list); $url = '/U9C/webapi/TransferOut/Create'; $url = $this->base_url.$url; $header[] = "Content-Type: application/json"; $header[] = "Token: ".$token; $res = $this->sendReq($url,$header,$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,$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,$list); return array($res,$list); } /** * 生成u9的销售单 * 只是财务记录 不牵扯到库存 */ public function xsdCreate($params,$token){ $list = $this->xsdDataTrans($params); $list = json_encode($list); $url = '/U9C/webapi/SO/Create'; $url = $this->base_url.$url; $header[] = "Content-Type: application/json"; $header[] = "Token: ".$token; $res = $this->sendReq($url,$header,$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,$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,$list); return array($res,$list); } /** * 生成u9的采购单 * 只是财务记录 不牵扯到库存 * 目前采用的是无源的 */ public function cgdCreate($params,$token){ $list = $this->cgdDataTrans($params); $list = json_encode($list); $url = '/U9C/webapi/PurchaseOrder/Create'; $url = $this->base_url.$url; $header[] = "Content-Type: application/json"; $header[] = "Token: ".$token; $res = $this->sendReq($url,$header,$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,$list); return array($res,$list); } /** * 采购单审核 */ public function cgdApprove($params,$token){ $list = [ [ 'Code'=>$params['number'] //单号 ] ]; $url = '/U9C/PurchaseOrder/Approve'; $url = $this->base_url.$url; $header[] = "Content-Type: application/json"; $header[] = "Token: ".$token; $res = $this->sendReq($url,$header,$list); return array($res,$list); } /** * 生成u9的标准出货单 * 会造成库存变动 * 使用的是有源的就是销售单 */ public function bzchCreate($params,$token){ $list = $this->yybzchDataTrans($params); $list = json_encode($list); $url = '/U9C/webapi/Ship/CreateBySrcDoc'; $url = $this->base_url.$url; $header[] = "Content-Type: application/json"; $header[] = "Token: ".$token; $res = $this->sendReq($url,$header,$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,$list); return array($res,$list); } /** * 生成u9的标准收获单 * 会造成库存变动 * 这个也是有源的是采购单 不过估计用不上 先不写 */ public function bzshCreate($params,$token){ } 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"=>$v['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 "DescFlexField"=>[ "PubDescSeg2"=>$params['yyid'],//来源店铺 这种需要在店铺表中有 "PubDescSeg4"=>$params['number'],//订单编码 "PubDescSeg5"=>$params['shipremarks'],//订单的备注 ], "TransOutSubLines"=>[ [ 'TransInWh_Code'=>$params['dczzbm'],//调入仓库编码 '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'=>1// 分配数量 ] ] ]; } $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, ]; return $data; } //销售单的数据转化 public function xsdDataTrans($params){ $so_lines = []; foreach($params['list'] as $k=>$v){ $so_lines[] = [ 'TU'=>"条",//销售单位编码 'ItemCode'=>"",//用友的编码 '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',$v['dtime']), ] ], 'RecTerm'=>'',//目前找不到了 'FreeType'=>'',//免费品类型 (无默认值请传-1;赠品请传0;备损品请传1) 徐凯设定的是 如果钱小于0.01 那么就传0 其他的传递-1 'UsableQtyOfInv'=>0,//文档中未查询到 'PubDescSeg3'=>'', 'PubDescSeg4'=>'', 'PriceList'=>'',//价表编码 (该属性可为空,且无默认值) 'TaxMoneyTC'=>0,//税额 (该属性可为空,且无默认值) 'TaxSchedule'=>'YZ05',//税组合编码 (该属性可为空,且无默认值) 不知道这个是啥 徐凯的老代码是这么写的 'DescFlexField'=>[ 'PubDescSeg3'=>'', ], 'OrderByQtyTU'=>'',//销售数量 (该属性可为空,且无默认值) 'OrderByQtyPU'=>'',//计价数量 (该属性可为空,且无默认值) '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"=>"",//备注 "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'=>'',//用友料号 ], "ReqQtyTU"=>'',//需求数量 "ReqQtyTBU"=>0,//确认数量 "SupplierConfirmQtyTU"=>'',//确认数量 "SupplierConfirmQtyTBU"=>'',//确认数量 "FinallyPriceTC"=>'',//最终价格 "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'=>"", 'DescFlexField'=>[], 'Supplier'=>[ 'Code'=>'',//供应商编码 到时间找下 ], '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"=>'',//来源单号 //"SrcDocLineNo"=>, //"SrcDocSubLineNo", "WH"=>'',//存储地点ID "CurShipQty1"=>'',//本次出货量 "SOIsConsign"=>false,// 是否补货 "OptionalSplitTerm"=>[], "DescFlexField"=>[], "LineDescFlexField"=>[], //"ShipDate",//出货单日期(该属性可为空,且无默认值) //"ShipConfirmDate"//出货确认日期(该属性可为空,且无默认值) "DocStatus"=>0,//单据状态:0开立;1审核中;2已审核,可用值:0,1,2,3 ]; } return $data; } }