/*****=======================================对接金蝶需要用到的方法==========================================================******/

/**

* 利用curl函数来获取接口数据

* @param $url

* @param $post_content

* @param $cookie_jar

* @param $isLogin

* @return bool|string

*/


function invoke_post($url,$post_content,$cookie_jar,$isLogin)

{

$ch = curl_init($url);


$this_header = array(

'Content-Type: application/json',

'Content-Length: '.strlen($post_content)

);


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);


curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_content);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if($isLogin){

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);

}

else{

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);

}

curl_setopt($ch, CURLOPT_TIMEOUT, 30);


$result = curl_exec($ch);

curl_close($ch);


return $result;

}


//构造Web API请求格式

function create_postdata($args) {

$postdata = array(

'format'=>1,

'useragent'=>'ApiClient',

'rid'=>create_guid(),

'parameters'=>$args,

'timestamp'=>date('Y-m-d'),

'v'=>'1.0'

);


return json_encode($postdata);

}


//生成guid

function create_guid() {

$charid = strtoupper(md5(uniqid(mt_rand(), true)));

$hyphen = chr(45);// "-"

$uuid = chr(123)// "{"

.substr($charid, 0, 8).$hyphen

.substr($charid, 8, 4).$hyphen

.substr($charid,12, 4).$hyphen

.substr($charid,16, 4).$hyphen

.substr($charid,20,12)

.chr(125);// "}"

return $uuid;

}


//登陆

function invoke_login($cloudUrl,$post_content,$cookie_jar)

{

$loginurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc';

return invoke_post($loginurl,$post_content,$cookie_jar,TRUE);

}


//保存

function invoke_save($cloudUrl,$post_content,$cookie_jar)

{

$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc';

return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

}


//审核

function invoke_audit($cloudUrl,$post_content,$cookie_jar)

{

$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc';

return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

}


//查看

function invoke_view($cloudUrl,$post_content,$cookie_jar)

{

$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc';

return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

}

//查询

function GetSysReportData($cloudUrl,$post_content,$cookie_jar)

{

$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.GetSysReportData.common.kdsvc';

return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

}

//查询订单ExecuteBillQuery

function ExecuteBillQuery($cloudUrl,$post_content,$cookie_jar)

{

$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';

return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

}

/*****************************************对接金蝶的方法结束************************************************************/

protected $model = null;

protected $login = array('','','',2052);

protected $cloudUrl = 'http://****/k3cloud/';

$cookie_jar = tempnam('./tmp','CloudSession');//保存登录后的session

$post_content = create_postdata($this->login);

/*返回登录信息如果 LoginResultType == 1 说明登录成功*/

$result = json_decode(invoke_login($this->cloudUrl,$post_content,$cookie_jar),true);


/*判断成功之后在进行其他操作*/

if($result['LoginResultType'] == 1){

/在这里面进行金蝶报表的生成操作/

$data_model_month = "{

'FieldKeys': 'FDEPARTMENTID,FEMPLOYEEID,FREALSETTIME,FREALPROCESSTIME',

'SchemeId': '',

'StartRow': 0,

'Limit': 9999,

'IsVerifyBaseDataField': 'true',

'Model': {

'FProcessOrgId': {

'FNumber': '100'

},

'FBeginDate': '$firstday',

'FEndDate': '$nowdatetime',

'FTimeUnit': 'B'

}

}";

$kingdee_info_month = array(

'SFC_OperationReportRpt',//业务对象标识FormId

$data_model_month//具体Json字串

);

$post_content_month = create_postdata($kingdee_info_month);

$res_month = json_decode(GetSysReportData($this->cloudUrl,$post_content_month,$cookie_jar),true);

$res_month = $res_month['Result']['Rows'];

}