提交 3f0662d8 authored 作者: fengzy's avatar fengzy

费用报销脚本

上级 328d7562
......@@ -285,8 +285,8 @@ class flow_finfybxClassModel extends flowModel
$ret[$v['cbxmid']]['money'] += $v['money'];
}
}
foreach ($data as $key => $vo) {
$ret = array_values($ret);
foreach ($ret as $key => $vo) {
$cbzx_code=$vo['cbxmid'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,type,name,freeze_amount,account_balance');//查询账户表成本中心
......@@ -421,7 +421,6 @@ class flow_finfybxClassModel extends flowModel
$post_content = self::create_postdata($data);
$result = self::invoke_login($cloudUrl,$post_content,$cookie_jar);
header("Content-type: text/html; charset=utf8");
$starttime = microtime(true);
$applicant=$this->rs['applicant'];//申请人
$applicationdpt=$this->rs['applicationdpt'];//申请部门
$applydt=$this->rs['applydt'];//申请日期
......@@ -515,11 +514,8 @@ class flow_finfybxClassModel extends flowModel
);
$post_content = self::create_postdata($data);
var_dump($post_content);
$result = self::invoke_add($cloudUrl,$post_content,$cookie_jar);
var_dump($result);
$array = json_decode($result,true);
var_dump($array);
$num=$array['Result']['Number'];
if($array['Result']['ResponseStatus']['IsSuccess']){
......
......@@ -10,6 +10,7 @@ class flow_oafkClassModel extends flowModel
}
protected function flowcheckafter($zt, $sm){
$flowid=$this->getflow();
......@@ -23,11 +24,12 @@ protected function flowcheckafter($zt, $sm){
foreach ($details_fk as $k=> $value) {
foreach ($value as $key => $val) {
switch ($key) {
// case 'charge_type':
// $arr['FPAYBILLENTRY'][$k]['FCOSTID']['FNUMBER']=self::getbxlx($val);
case 'charge_type':
$arr['FPAYBILLENTRY'][$k]['F_KXType']['FNUMBER']=self::getkxlx($val);
// break;
break;
case 'cbzx_code':
......@@ -145,7 +147,8 @@ protected function flowcheckafter($zt, $sm){
$model['Model']['FCONTACTUNIT']['FNumber']=$supplier['number'];
$model['Model']['FRECTUNIT']['FNumber']=$supplier['number'];
$model['Model']['FDepartment']['FNumber']=self::dept($this->rs['applicationdpt']);
$model['Model']['FSETTLEORGID']['FNumber']=self::getorg($this->rs['fkorg']);
$model['Model']['FPAYORGID']['FNumber']=self::getorg($this->rs['fkorg']);
$model['Model']['FPAYBILLENTRY']=$arr['FPAYBILLENTRY'];
$data_model=json_encode($model);
......@@ -158,24 +161,13 @@ protected function flowcheckafter($zt, $sm){
$result = self::invoke_add($cloudUrl,$post_content,$cookie_jar);
$array = json_decode($result,true);
if($array['Result']['ResponseStatus']['IsSuccess']){
$num=$array['Result']['Number'];
if($array['Result']['ResponseStatus']['IsSuccess']){
$this->update("`fbillno`='$num'", $this->rs['id']);
$this->erplog($this->rs['docnum'],'c_fininfom_oafk','保存成功',json_encode($array),date("Y-m-d H:i:s"),2,$num,$array['Result']['Id'],1);
if($this->oafk_submit($cloudUrl,$cookie_jar,$array['Result']['Id'],$array['Result']['Number'])){
$this->erplog($this->rs['docnum'],'c_fininfom_oafk','提交成功',json_encode($array),date("Y-m-d H:i:s"),2,$num,$array['Result']['Id'],2);
}else{
$this->erplog($this->rs['docnum'],'c_fininfom_oafk','提交失败',json_encode($array),date("Y-m-d H:i:s"),1,$num,$array['Result']['Id'],2);
}
}else{
$this->erplog($this->rs['docnum'],'c_fininfom_oafk','保存失败',json_encode($array),date("Y-m-d H:i:s"),1,$num,$array['Result']['Id'],1);
......@@ -188,7 +180,20 @@ protected function flowcheckafter($zt, $sm){
}
static function getkxlx($name)
{
$data = m('option')->getone("num='kxtype'", 'id,name');
$kxlxlist = m('option')->getone("pid='".$data['id']."' and name='".$name."'", 'name,num');
return $kxlxlist['num'];
}
static function getorg($name)
{
$data = m('option')->getone("num='organization'", 'id,name');
$orglist = m('option')->getone("pid='".$data['id']."' and name='".$name."'", 'name,num');
return $orglist['num'];
}
public static function dept($data)
{
$sql=" name= '$data'";
......@@ -251,23 +256,39 @@ protected function flowcheckafter($zt, $sm){
if($explain){
if($flowid['nowcheckid']==$checkid && $flowid['nowcourseid']==$explain){
$data = m('c_fund_details_fk')->getall('mid='.$this->rs['id'], 'id,cbzx_code,charge_amount');
foreach ($data as $key => $vo) {
foreach($data as $v){
if(!isset($ret[$v['cbzx_code']])){
$ret[$v['cbzx_code']] = $v;
}else{
$ret[$v['cbzx_code']]['charge_amount'] += $v['charge_amount'];
}
}
$ret = array_values($ret);
foreach ($ret as $key => $vo) {
$cbzx_code=$vo['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,type,name,freeze_amount,account_balance');//查询账户表成本中心
if(($cost['account_balance']-$cost['freeze_amount'])<$vo['charge_amount']){
return $cost['name']."余额不足";die;
}
}
foreach ($data as $ke => $ve) {
$cbzx_code=$ve['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,type,name,freeze_amount,account_balance');//查询账户表成本中心
$id=$cost['id'];
$c_withhold = array(
'fund_account_id' => $id,
'docnum' => $this->rs['docnum'],
'cost_id' => $vo['cbzx_code'],
'amount' => $vo['charge_amount'],
'cost_id' => $ve['cbzx_code'],
'amount' => $ve['charge_amount'],
'status' => 1,
'create_time' => date("Y-m-d H:i:s"),
'uid' => $this->rs['uid'],
......@@ -276,7 +297,7 @@ protected function flowcheckafter($zt, $sm){
//修改冻结余额
$freeze = array(
'freeze_amount' => $cost['freeze_amount'] + $vo['charge_amount'],
'freeze_amount' => $cost['freeze_amount'] + $ve['charge_amount'],
);
m('c_fund_account')->update($freeze, "`id`='$id'");
......@@ -285,8 +306,15 @@ protected function flowcheckafter($zt, $sm){
}else{
if($flowid['nowcheckid']==$checkid){
$data = m('c_fund_details_fk')->getall('mid='.$this->rs['id'], 'id,cbzx_code,charge_amount');
foreach ($data as $key => $vo) {
foreach($data as $v){
if(!isset($ret[$v['cbzx_code']])){
$ret[$v['cbzx_code']] = $v;
}else{
$ret[$v['cbzx_code']]['charge_amount'] += $v['charge_amount'];
}
}
$ret = array_values($ret);
foreach ($ret as $key => $vo) {
$cbzx_code=$vo['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,name,type,freeze_amount,account_balance');//查询账户表成本中心id
......@@ -294,13 +322,19 @@ protected function flowcheckafter($zt, $sm){
return $cost['name']."余额不足";die;
}
}
foreach ($data as $ke => $ve) {
$cbzx_code=$ve['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,name,type,freeze_amount,account_balance');//查询账户表成本中心id
$id=$cost['id'];
$c_withhold = array(
'fund_account_id' => $id,
'docnum' => $this->rs['docnum'],
'cost_id' => $vo['cbzx_code'],
'amount' => $vo['charge_amount'],
'cost_id' => $ve['cbzx_code'],
'amount' => $ve['charge_amount'],
'status' => 1,
'create_time' => date("Y-m-d H:i:s"),
'uid' => $this->rs['uid'],
......@@ -309,7 +343,7 @@ protected function flowcheckafter($zt, $sm){
//修改冻结余额
$freeze = array(
'freeze_amount' => $cost['freeze_amount'] + $vo['charge_amount'],
'freeze_amount' => $cost['freeze_amount'] + $ve['charge_amount'],
);
m('c_fund_account')->update($freeze, "`id`='$id'");
......
......@@ -9,6 +9,7 @@ class flow_oayfkClassModel extends flowModel
return $rs;
}
protected function flowcheckafter($zt, $sm){
$flowid=$this->getflow();
......@@ -22,11 +23,15 @@ protected function flowcheckafter($zt, $sm){
foreach ($value as $key => $val) {
switch ($key) {
case 'charge_type':
$arr['FPAYBILLENTRY'][$k]['F_KXType']['FNUMBER']=self::getkxlx($val);
break;
case 'cbzx_code':
$arr['FPAYBILLENTRY'][$k]['F_PAEZ_Cbzx']['FNUMBER']=substr($val,0,strpos($val, "("));;
break;
case 'charge_amount':
......@@ -139,7 +144,8 @@ protected function flowcheckafter($zt, $sm){
$model['Model']['FCONTACTUNIT']['FNumber']=$supplier['number'];
$model['Model']['FRECTUNIT']['FNumber']=$supplier['number'];
$model['Model']['FDepartment']['FNumber']=self::dept($this->rs['application']);
$model['Model']['FSETTLEORGID']['FNumber']=self::getorg($this->rs['fkorg']);
$model['Model']['FPAYORGID']['FNumber']=self::getorg($this->rs['fkorg']);
$model['Model']['FPAYBILLENTRY']=$arr['FPAYBILLENTRY'];
$data_model=json_encode($model);
......@@ -152,24 +158,13 @@ protected function flowcheckafter($zt, $sm){
$result = self::invoke_add($cloudUrl,$post_content,$cookie_jar);
$array = json_decode($result,true);
if($array['Result']['ResponseStatus']['IsSuccess']){
$num=$array['Result']['Number'];
if($array['Result']['ResponseStatus']['IsSuccess']){
$this->update("`fbillno`='$num'", $this->rs['id']);
$this->erplog($this->rs['docnum'],'c_fininfom_oayfk','保存成功',json_encode($array),date("Y-m-d H:i:s"),2,$num,$array['Result']['Id'],1);
if($this->oayfk_submit($cloudUrl,$cookie_jar,$array['Result']['Id'],$array['Result']['Number'])){
$this->erplog($this->rs['docnum'],'c_fininfom_oayfk','提交成功',json_encode($array),date("Y-m-d H:i:s"),2,$num,$array['Result']['Id'],2);
}else{
$this->erplog($this->rs['docnum'],'c_fininfom_oayfk','提交失败',json_encode($array),date("Y-m-d H:i:s"),1,$num,$array['Result']['Id'],2);
}
}else{
$this->erplog($this->rs['docnum'],'c_fininfom_oayfk','保存失败',json_encode($array),date("Y-m-d H:i:s"),1,$num,$array['Result']['Id'],1);
......@@ -184,6 +179,20 @@ protected function flowcheckafter($zt, $sm){
}
static function getkxlx($name)
{
$data = m('option')->getone("num='kxtype'", 'id,name');
$kxlxlist = m('option')->getone("pid='".$data['id']."' and name='".$name."'", 'name,num');
return $kxlxlist['num'];
}
static function getorg($name)
{
$data = m('option')->getone("num='organization'", 'id,name');
$orglist = m('option')->getone("pid='".$data['id']."' and name='".$name."'", 'name,num');
return $orglist['num'];
}
public static function dept($data)
{
$sql=" name= '$data'";
......@@ -247,7 +256,16 @@ protected function flowcheckafter($zt, $sm){
if($flowid['nowcheckid']==$checkid && $flowid['nowcourseid']==$explain){
$data = m('c_fund_details_yfk')->getall('mid='.$this->rs['id'], 'id,cbzx_code,charge_amount');
foreach ($data as $key => $vo) {
foreach($data as $v){
if(!isset($ret[$v['cbzx_code']])){
$ret[$v['cbzx_code']] = $v;
}else{
$ret[$v['cbzx_code']]['charge_amount'] += $v['charge_amount'];
}
}
$ret = array_values($ret);
foreach ($ret as $key => $vo) {
$cbzx_code=$vo['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,name,type,freeze_amount,account_balance');//查询账户表成本中心
......@@ -255,13 +273,19 @@ protected function flowcheckafter($zt, $sm){
if(($cost['account_balance']-$cost['freeze_amount'])<$vo['charge_amount']){
return $cost['name']."余额不足";die;
}
}
foreach ($data as $ke => $ve) {
$cbzx_code=$ve['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,name,type,freeze_amount,account_balance');//查询账户表成本中心
$id=$cost['id'];
$c_withhold = array(
'fund_account_id' => $id,
'docnum' => $this->rs['docnum'],
'cost_id' => $vo['cbzx_code'],
'amount' => $vo['charge_amount'],
'cost_id' => $ve['cbzx_code'],
'amount' => $ve['charge_amount'],
'status' => 1,
'create_time' => date("Y-m-d H:i:s"),
'uid' => $this->rs['uid'],
......@@ -270,7 +294,7 @@ protected function flowcheckafter($zt, $sm){
//修改冻结余额
$freeze = array(
'freeze_amount' => $cost['freeze_amount'] + $vo['charge_amount'],
'freeze_amount' => $cost['freeze_amount'] + $ve['charge_amount'],
);
m('c_fund_account')->update($freeze, "`id`='$id'");
......@@ -279,19 +303,35 @@ protected function flowcheckafter($zt, $sm){
}else{
if($flowid['nowcheckid']==$checkid){
$data = m('c_fund_details_yfk')->getall('mid='.$this->rs['id'], 'id,cbzx_code,charge_amount');
foreach ($data as $key => $vo) {
foreach($data as $v){
if(!isset($ret[$v['cbzx_code']])){
$ret[$v['cbzx_code']] = $v;
}else{
$ret[$v['cbzx_code']]['charge_amount'] += $v['charge_amount'];
}
}
$ret = array_values($ret);
foreach ($ret as $key => $vo) {
$cbzx_code=$vo['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,name,type,freeze_amount,account_balance');//查询账户表成本中心
if(($cost['account_balance']-$cost['freeze_amount'])<$vo['charge_amount']){
return $cost['name']."余额不足";die;
}
}
foreach ($data as $ke => $ve) {
$cbzx_code=$ve['cbzx_code'];
$sql = " cost_id='$cbzx_code' and status = 1 and is_default=1";
$cost = m('c_fund_account')->getone($sql, 'id,name,type,freeze_amount,account_balance');//查询账户表成本中心
$id=$cost['id'];
$c_withhold = array(
'fund_account_id' => $id,
'docnum' => $this->rs['docnum'],
'cost_id' => $vo['cbzx_code'],
'amount' => $vo['charge_amount'],
'cost_id' => $ve['cbzx_code'],
'amount' => $ve['charge_amount'],
'status' => 1,
'create_time' => date("Y-m-d H:i:s"),
'uid' => $this->rs['uid'],
......@@ -300,7 +340,7 @@ protected function flowcheckafter($zt, $sm){
//修改冻结余额
$freeze = array(
'freeze_amount' => $cost['freeze_amount'] + $vo['charge_amount'],
'freeze_amount' => $cost['freeze_amount'] + $ve['charge_amount'],
);
m('c_fund_account')->update($freeze, "`id`='$id'");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论