"下游公司", "2"=>"下游个人", "3"=>"上游公司" ]; public $IsPayment = [ "1"=>"是", "2"=>"否" ]; public $PayStatus=[ "-1"=>"打款失败", "0"=>"未打款", "1"=>"打款成功", "2"=>"部分打款" ]; public function lists() { $params = I('get.'); $page = $params['p'] ? intval($params['p']) : 1; $row = $params['row'] ? intval($params['row']) : 10; //权限分配 if(!IS_ROOT){ $this->OpAuthList= getModuleControllerAuth(); } $this->assign('menubtn',$this->menuAuth()); $map = [ "c.verify_status"=>2, "p.verify_status"=>['in',[2,3,4,5]] ]; if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { $time_start = strtotime($_REQUEST['time_start']); $time_end = strtotime($_REQUEST['time_end'])+ 86399; $map["_string"] = "(c.statement_begin_time BETWEEN {$time_start} AND {$time_end}) OR (c.statement_end_time BETWEEN {$time_start} AND {$time_end}) OR (c.statement_begin_time <= {$time_end} AND c.statement_end_time >= {$time_end})"; } elseif (isset($_REQUEST['time_start'])) { $time_start = strtotime($_REQUEST['time_start']); $map["_string"] = "(c.statement_begin_time >= {$time_start} ) OR (c.statement_end_time >= {$time_start})"; } elseif (isset($_REQUEST['time_end'])) { $time_end = strtotime($_REQUEST['time_end'])+ 86399; $map["_string"] = "(c.statement_begin_time <= {$time_end} ) OR (c.statement_end_time <= {$time_end})"; } if(isset($_REQUEST['pay_status'])){ $map['c.pay_status'] = $_REQUEST['pay_status']; } //其他 if(isset($_REQUEST['company_type'])){ $map['c.company_type'] = $_REQUEST['company_type']; } if(isset($_REQUEST['company_name'])){ $map['c.company_name'] =["LIKE","%{$_REQUEST['company_name']}%"]; } if(isset($_REQUEST['statement_pool_num'])){ $map['p.statement_num'] =["LIKE","%{$_REQUEST['statement_pool_num']}%"]; } //条件end if (isset($_REQUEST['export']) && $_REQUEST['export']==1) { $map['c.company_type'] = $_REQUEST['export_company_type']; $data = SM("company_statement_info","tab_") ->alias("c") ->field("c.*,p.statement_num,p.verify_status") ->where($map) ->join("tab_company_statement_pool as p ON c.pool_id = p.id") ->order("id desc") ->select(); $ids = array_column($data, 'id'); $ids = implode(',', $ids); $this->export($ids); return ; } $data = SM("company_statement_info","tab_") ->alias("c") ->field("c.*,p.statement_num,p.verify_status") ->where($map) ->join("tab_company_statement_pool as p ON c.pool_id = p.id") ->order("id desc"); if (isset($_REQUEST['list_export']) && $_REQUEST['list_export']==1) { $data = $data->select(); }else{ $data = $data->page($page,$row)->select(); } $unPayData = SM("company_statement_info_part","tab_") ->field("sum(statement_money) statement_money,info_id") ->where(["pay_status"=>1]) ->group("info_id") ->select(); $handleData = []; foreach ($unPayData as $key => $value) { $handleData[$value['info_id']] = $value['statement_money']; } foreach($data as $k => &$v) { $v['statement_begin_time'] = date('Y.m.d',$v['statement_begin_time']); $v['statement_end_time'] = date('Y.m.d',$v['statement_end_time']); $v['company_type_str'] = $this->CompanyType[$v['company_type']]; $v["valid"] = "{$v['statement_begin_time']}-{$v['statement_end_time']}"; $v["pay_status_str"] = $this->PayStatus[$v["pay_status"]]; $v['surplus_amount'] = ($v["pay_check"]==2)?($handleData[$v['id']] ? ($v['statement_money']-$handleData[$v['id']]):$v['statement_money'] ):($v["pay_status"]!=1?($v["pay_status"]==2?($v['statement_money']-$handleData[$v['id']]):$v['statement_money']):"0.00"); $v["pay_info"] = json_decode($v['pay_info'], true); if(isset($v['pay_info']['payment_user'])){ $v["payment"]= "{$v['pay_status_str']}({$v['pay_info']['payment_user']})
{$v['pay_info']['payment_time']}"; }else{ $v["payment"] = $v["pay_status_str"]; } if ($v['pay_check'] == 0) { $v['pay_check_str'] = "---"; } else { $member = M("ucenter_member") ->field("username") ->where(['id'=>$v['pay_check_member_id']]) ->find(); if ($v['pay_check'] == 1) { $pay_check = '已确认'; } elseif($v['pay_check'] == 2) { $pay_check = '部分确认'; } else { $pay_check = '未确认'; } $v['pay_check_str'] = $member['username'].$pay_check."
".date('Y-m-d H:i:s', $v['pay_check_time']);; // $v['pay_check_str'] = "已确认"; } $isUnPay = SM("company_statement_info_part","tab_") ->field("info_id") ->where(["pay_status"=>0,'info_id'=>$v['id']]) ->group("info_id") ->find(); if ($isUnPay) { $v['pay_status'] = 0; } $v['oplist'] = $this->OpAuth($v); } //pay_status $field = "count(c.id) count,IFNULL(SUM(CASE WHEN pay_status = 1 and pay_check=1 THEN c.statement_money ELSE 0 END),0) as success_money, IFNULL(SUM(CASE WHEN pay_status = 0 or pay_status=2 THEN c.statement_money ELSE 0 END),0) as statement_money, IFNULL(SUM(CASE WHEN pay_status = -1 THEN c.statement_money ELSE 0 END),0) as error_money"; $count = SM("company_statement_info","tab_") ->alias("c") ->field($field) ->join("tab_company_statement_pool as p ON c.pool_id = p.id") ->where($map) ->find(); $countPart = SM("company_statement_info_part","tab_")->alias("c") ->field("IFNULL(SUM(CASE WHEN pay_status = 0 THEN c.statement_money ELSE 0 END),0) as statement_money, IFNULL(SUM(CASE WHEN pay_status = -1 THEN c.statement_money ELSE 0 END),0) as error_money") ->join("tab_company_statement_pool as p ON c.pool_id = p.id") ->where($map) ->find(); unset($map['c.pay_status']); $countSuccess = SM("company_statement_info_part","tab_")->alias("c") ->field("IFNULL(SUM(CASE WHEN c.pay_status = 0 THEN c.statement_money ELSE 0 END),0) as statement_money, IFNULL(SUM(CASE WHEN c.pay_status = 1 THEN c.statement_money ELSE 0 END),0) as success_money") ->join("tab_company_statement_pool as p ON c.pool_id = p.id") ->join("left join tab_company_statement_info i on c.info_id=i.id") ->where($map) ->where(['i.pay_status'=>['neq',1]]) ->find(); if ($_REQUEST['pay_status'] != 2) { $countSuccess = []; } // dump($countPart); // dump($countSuccess);die(); // dump($count);die(); $count['success_money'] += $countSuccess['success_money']; $count['statement_money'] -= $countSuccess['success_money']; $count['error_money'] += $countPart['error_money']; //新增列表导出 if (isset($_REQUEST['list_export']) && $_REQUEST['list_export']==1) { $data[]=[ 'company_name'=>'合计', 'company_type_str'=>"待打款金额:{$count['statement_money']} / 打款成功金额:{$count['success_money']} / 打款失败金额:{$count['error_money']}" ]; data2csv($data,'线下打款确认',array( 'company_name'=>'合作公司', 'company_type_str'=>'公司类型', 'valid'=>'结算时间', 'statement_money'=>'结算金额', 'surplus_amount'=>'剩余未打款金额', 'platform_amount'=>'结算流水', 'pay_check_str'=>'打款信息确认状态', 'payment'=>'打款状态', 'statement_num'=>'汇总单号' )); } $params['p'] = $page; $params['row'] = $row; $page = set_pagination($count['count'], $row, $params); if ($page) { $this->assign('_page', $page); } // dd($data); $this->assign('data',$data); $this->assign('count',$count); $this->assign('CompanyType',$this->CompanyType); $this->assign("PayStatus", $this->PayStatus); $this->display(); } //打款设置 public function setPayment(){ if(!isset($_REQUEST['id'])) $this->error("参数错误"); $id = $_REQUEST['id']; $CompanyInfo = M("company_statement_info","tab_") ->alias('i') ->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,i.remark,i.pay_status,i.verify_status,p.statement_num,i.statement_money,i.pay_check") ->join("tab_company_statement_pool p ON p.id = i.pool_id") ->where("i.id in({$id})") ->select(); // $temp = $this->addPaymentPartInfo($CompanyInfo); // $temp?$CompanyInfo=$temp:""; $all_money = 0; foreach($CompanyInfo as $k=>&$v){ if($v['verify_status'] == 2){ $v['is_payment'] = 2; }else{ $v['is_payment'] = 1; } $v['company_info'] = json_decode($v['company_info'],true); $v['company_info']['ali_user'] ?? ''; $v['company_info']['ali_account'] ?? ''; $all_money += $v['statement_money']; } $this->assign('all_money',$all_money); $this->assign("CompanyInfo",$CompanyInfo); $this->assign("id",$id); $this->display(); } public function addPaymentPartInfo($CompanyInfo) { if ($CompanyInfo[0]['pay_check'] !=2) { return []; } $id = array_column($CompanyInfo,"id"); $data = M("company_statement_info_part","tab_") ->alias('i') ->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,i.remark,i.pay_status,i.verify_status,p.statement_num,i.statement_money,info_id") ->join("tab_company_statement_pool p ON p.id = i.pool_id") ->where(['info_id'=>['in',$id],"pay_status"=>0]) ->select(); foreach ($data as $key => $value) { $data[$key]['id'] = $value['id']."-".$value['info_id']; } return $data; } //修改打款设置 public function editPayment(){ // dump($_SESSION);die(); if(!isset($_REQUEST['info'])) $this->error("参数错误"); $info = $_REQUEST['info']; $keys = ''; $saveKey = []; $CompanyInfo = M("company_statement_info","tab_"); //循环保存 foreach($info as $k=>$v){ // dump(explode('-',$k));die(); $exKeys = explode('-',$k); if (count($exKeys) > 1) { $keys = $exKeys; if (!$saveKey[$keys[1]]) { $saveKey[$keys[1]] = 1; $ydata = $CompanyInfo->where("id= '{$keys[1]}'")->find(); $company_info = json_decode($ydata['company_info'],true); if($ydata['verify_status'] == 2){ $company_info['payee_name'] = $v['payee_name']; $company_info['bank_account'] = $v['bank_account']; $company_info['opening_bank'] = $v['opening_bank']; }else{ $company_info['ali_user'] = $v['ali_user']; $company_info['ali_account'] = $v['ali_account']; } $savedata = [ "pay_check"=>1, "pay_check_member_id"=> $_SESSION['onethink_admin']['user_auth']['uid'], "id"=>$keys[1], "pay_check_time"=>time() ]; $CompanyInfo->save($savedata); } $ydata = M("company_statement_info_part","tab_")->where("id= '{$keys[0]}'")->find(); $company_info = json_decode($ydata['company_info'],true); if($ydata['verify_status'] == 2){ $company_info['payee_name'] = $v['payee_name']; $company_info['bank_account'] = $v['bank_account']; $company_info['opening_bank'] = $v['opening_bank']; }else{ $company_info['ali_user'] = $v['ali_user']; $company_info['ali_account'] = $v['ali_account']; } $savedata = [ "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE), "remark"=>$v['remark'], "pay_check"=>1, "pay_check_member_id"=> $_SESSION['onethink_admin']['user_auth']['uid'], "id"=>$keys[0], "pay_check_time"=>time() ]; M("company_statement_info_part","tab_")->save($savedata); } else { $ydata = $CompanyInfo->where("id= '{$k}'")->find(); $company_info = json_decode($ydata['company_info'],true); if($ydata['verify_status'] == 2){ $company_info['payee_name'] = $v['payee_name']; $company_info['bank_account'] = $v['bank_account']; $company_info['opening_bank'] = $v['opening_bank']; }else{ $company_info['ali_user'] = $v['ali_user']; $company_info['ali_account'] = $v['ali_account']; } $savedata = [ "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE), "remark"=>$v['remark'], "pay_check"=>1, "pay_check_member_id"=> $_SESSION['onethink_admin']['user_auth']['uid'], "id"=>$k, "pay_check_time"=>time() ]; $CompanyInfo->save($savedata); } } $this->ajaxReturn(array( 'status' => 1, "info"=>"打款信息编辑成功" )); } //打款设置 public function setPartPayment(){ if(!isset($_REQUEST['id'])) $this->error("参数错误"); $id = $_REQUEST['id']; $CompanyInfo = M("company_statement_info","tab_") ->alias('i') ->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,i.remark,i.pay_status,i.verify_status,p.statement_num,i.statement_money") ->join("tab_company_statement_pool p ON p.id = i.pool_id") ->where("i.id in({$id})") ->select(); $unPayData = SM("company_statement_info_part","tab_") ->field("sum(statement_money) statement_money,info_id") ->where(["pay_status"=>1]) ->group("info_id") ->select(); $handleData = []; foreach ($unPayData as $key => $value) { $handleData[$value['info_id']] = $value['statement_money']; } $surplurAmount = 0; $all_money = 0; foreach($CompanyInfo as $k=>&$v){ if($v['verify_status'] == 2){ $v['is_payment'] = 2; }else{ $v['is_payment'] = 1; } $v['company_info'] = json_decode($v['company_info'],true); $v['company_info']['ali_user'] ?? ''; $v['company_info']['ali_account'] ?? ''; $all_money += $v['statement_money']; $surplurAmount += $handleData[$v['id']]; } $this->assign('surplur_amount',$all_money-$surplurAmount); $this->assign('all_money',$all_money); $this->assign("CompanyInfo",$CompanyInfo); $this->assign("id",$id); $this->display(); } //修改打款设置 public function editPartPayment(){ // die(); if (count($_REQUEST['info']) < 2) { $this->error("未添加剩余打款金额"); } // dump($_REQUEST['info']);die(); if(!isset($_REQUEST['info'])) $this->error("参数错误"); $info = $_REQUEST['info']; $ydata = []; $company_info = []; $CompanyInfo = M("company_statement_info","tab_"); //循环保存 foreach($info as $k=>$v){ $ydata = $CompanyInfo->where("id= '{$k}'")->find(); $sumPartInfo = M("company_statement_info_part","tab_") ->field("sum(statement_money) statement_money") ->where(['info_id'=>$k]) ->find(); $company_info = json_decode($ydata['company_info'],true); if($ydata['verify_status'] == 2){ $company_info['payee_name'] = $v['payee_name']; $company_info['bank_account'] = $v['bank_account']; $company_info['opening_bank'] = $v['opening_bank']; }else{ $company_info['ali_user'] = $v['ali_user']; $company_info['ali_account'] = $v['ali_account']; } $savedata = [ "company_info"=>json_encode($company_info,JSON_UNESCAPED_UNICODE), "remark"=>$v['remark'], "pay_check"=>2, "pay_check_member_id"=> $_SESSION['onethink_admin']['user_auth']['uid'], "id"=>$k, "pay_check_time"=>time() ]; $CompanyInfo->save($savedata); unset($info[$k]); break; } // array_pop($info); $id = $ydata["id"]; unset($ydata["id"]); $sumUnPayAmount = array_sum(array_column($info,'unpay_amount')); // dump($sumUnPayAmount+$sumPartInfo['statement_money']);die(); if (($sumUnPayAmount+$sumPartInfo['statement_money']) > $ydata['statement_money'] ) { $this->error("剩余打款金额超过结算金额"); } foreach ($info as $k=>$v) { if($ydata['verify_status'] == 2){ $company_info['payee_name'] = $v['payee_name']; $company_info['bank_account'] = $v['bank_account']; $company_info['opening_bank'] = $v['opening_bank']; }else{ $company_info['ali_user'] = $v['ali_user']; $company_info['ali_account'] = $v['ali_account']; } $ydata['company_info'] = json_encode($company_info,JSON_UNESCAPED_UNICODE); $ydata['statement_money'] = $v['unpay_amount']; $ydata['pay_amount'] = $v['unpay_amount']; $ydata['remark'] = $v['remark']; $ydata['info_id'] = $id; $ydata['pay_check'] = 0; $ydata['pay_status'] = 0; M("company_statement_info_part","tab_")->add($ydata); } $this->ajaxReturn(array( 'status' => 1, "info"=>"打款信息编辑成功" )); } public function returnSetPayment() { if(!isset($_REQUEST['ids'])) $this->error("参数错误"); $ids = $_REQUEST['ids']; $ids = explode(',',$ids); $CompanyInfo = M("company_statement_info","tab_"); $data = $CompanyInfo->where(['id'=>['in',$ids]])->select(); foreach ($data as $key => $value) { if ($value['pay_check'] == 1&&$value['pay_status'] == 0) { $CompanyInfo ->where(['id'=>$value['id']]) ->save([ 'pay_check'=>0, 'pay_check_member_id'=>0, 'pay_check_time'=>0 ]); } if ($value['pay_check'] == 2) { if($value['pay_status'] == 0) { $CompanyInfo ->where(['id'=>$value['id']]) ->save([ 'pay_check'=>0, 'pay_check_member_id'=>0, 'pay_check_time'=>0 ]); } M("company_statement_info_part","tab_")->where(['info_id'=>$value['id'],'pay_status'=>['neq',1]])->delete(); } } $this->ajaxReturn(array( 'status' => 1, "info"=>"打款信息编辑成功" )); } public function doPayment() { if(!isset($_REQUEST['ids']) || !isset($_REQUEST['payment_time'])) $this->error("参数错误"); $ids = $_REQUEST['ids']; $payment_time = $_REQUEST['payment_time']; //获取所有的母单id $companyStatementInfo = SM("company_statement_info","tab_"); $statementPool = $companyStatementInfo->where("id in ($ids) and pay_status <> 1")->field("pool_id,count(id) count")->group("pool_id")->select(); $yPoolInfo = []; foreach ($statementPool as $k => $v) { $yPoolInfo[$v['pool_id']] = $v['count']; } unset($statementPool); //获取母单未支付完成订单 $poolIds = implode(",",array_keys($yPoolInfo)); // $poolInfo = $companyStatementInfo->where("pool_id in ($poolIds) and pay_status <> 1 and pay_check !=2")->field("pool_id,count(id) count")->group("pool_id")->select(); $info_id = $companyStatementInfo->field("id")->where("id in ($ids) and pay_check !=2")->select(); $unPayInfoId = $companyStatementInfo->field("id")->where("id in ($ids) and pay_check =2")->select(); $info_id = array_column($info_id,"id"); $unPayInfoId = array_column($unPayInfoId,"id"); //支付确认的部分 $saveData = [ "pay_type"=>3, "pay_status"=>1, "pay_info"=>json_encode(["payment_user"=>$_SESSION['onethink_admin']['user_auth']["username"],"payment_time"=>$payment_time]),'pay_time'=>strtotime($payment_time) ]; if($info_id) { $companyStatementInfo->where(['id'=>['in',$info_id]])->save($saveData); } //支付未确认的部分 $saveData = [ "pay_type"=>3, "pay_status"=>2, "pay_info"=>json_encode(["payment_user"=>$_SESSION['onethink_admin']['user_auth']["username"],"payment_time"=>$payment_time]) ,'pay_time'=>strtotime($payment_time) ]; $unPayData = M("company_statement_info_part","tab_") ->field("sum(statement_money) statement_money,info_id") ->where(["pay_status"=>0]) ->group("info_id") ->select(); $handleData = []; foreach ($unPayData as $key => $value) { $handleData[$value['info_id']] = $value['statement_money']; } $payData = M("company_statement_info_part","tab_") ->field("sum(statement_money) statement_money,info_id") ->group("info_id") ->select(); $handlePayData = []; foreach ($payData as $key => $value) { $handlePayData[$value['info_id']] = $value['statement_money']; } if ($unPayInfoId) { $unPayData = $companyStatementInfo->where(['id'=>['in',$unPayInfoId]])->select(); foreach ($unPayData as $key => $value) { $time = date("Y-m-d H:i:s",time()); $unPayAmount = $value['statement_money']-$handlePayData[$value['id']]; $saveData['remark'] = $value['remark']; $partInfo = M("company_statement_info_part","tab_")->where(['info_id'=>$value['id']])->order("id desc")->find(); $partCompanyInfo = json_decode($partInfo['company_info'],true); $saveData['company_info'] = $partInfo['company_info']; if($handleData[$value['id']]) { $saveData['remark'] .= ";{$_SESSION['onethink_admin']['user_auth']['username']}于{$time}向({$partCompanyInfo['payee_name']}/{$partCompanyInfo['opening_bank']}/{$partCompanyInfo['bank_account']})打款{$handleData[$value['id']]},剩余{$unPayAmount}"; } M("company_statement_info_part","tab_") ->where(['info_id'=>$value['id'],'pay_status'=>['neq',1]]) ->save(["pay_status"=>1,'pay_time'=>strtotime($payment_time)]); if($value['statement_money'] - $handlePayData[$value['id']] <=0) { //打款成功 $companyStatementInfo->where(['id'=>$value['id']])->save([ "pay_check"=>1, "pay_type"=>3, "pay_status"=>1, "pay_info"=>json_encode(["payment_user"=>$_SESSION['onethink_admin']['user_auth']["username"],"payment_time"=>$payment_time]), "remark"=>$saveData['remark'], 'pay_time'=>strtotime($payment_time), 'company_info'=>$partInfo['company_info'] ]); } else { $companyStatementInfo->where(['id'=>$value['id']])->save($saveData); } } } $poolInfo = $companyStatementInfo->where("pool_id in ($poolIds) and pay_status <> 1")->field("pool_id,count(id) count")->group("pool_id")->select(); $handlePoolInfo = []; foreach ($poolInfo as $key => $value) { $handlePoolInfo[$value['pool_id']] = $value['count']; } // dump($yPoolInfo); // dump($poolInfo);die(); //全部就打款成功,否则打款中 $companyStatementPool = SM("company_statement_pool","tab_"); // dump($yPoolInfo);die(); foreach ($yPoolInfo as $k => $v) { if (!$handlePoolInfo[$k]) { //打款成功 $this->setOneVerifyStatus(4,"payment",$k); } else { //打款中 $this->setOneVerifyStatus(3,"payment",$k); } // if($v['count'] == $yPoolInfo[$v['pool_id']]){ // //打款成功 // $this->setOneVerifyStatus(4,"payment",$v['pool_id']); // }else{ // //打款中 // $this->setOneVerifyStatus(3,"payment",$v['pool_id']); // } } // foreach ($poolInfo as $k => $v) { // if($v['count'] == $yPoolInfo[$v['pool_id']]){ // //打款成功 // $this->setOneVerifyStatus(4,"payment",$v['pool_id']); // }else{ // //打款中 // $this->setOneVerifyStatus(3,"payment",$v['pool_id']); // } // } $this->ajaxReturn(array( 'status' =>1, "info"=>"打款确认成功" )); } public function viewStatement() { // if(!isset($_REQUEST['id'])){ // $this->error('参数错误'); // } // $id = $_REQUEST['id']; // $is_export= false; // if (isset($_REQUEST['export']) && $_REQUEST['export']==1){ // $is_export = true; // } // //获取基本信息 // $dbres = SM("company_statement_info","tab_")->where("id='{$id}'")->select(); // $title = $dbres[0]['company_name']; // $this->assign("title",$title); // // if($dbres[0]['company_type'] == 3){ // //上游 // A("CompanyStatementPool")->viewCpPool($dbres,$is_export); // }elseif($dbres[0]['company_type'] == 1){ // //下游公司 // A("CompanyStatementPool")->viewPcPool($dbres,$is_export); // }else{ // A("CompanyStatementPool")->viewPuPool($dbres,$is_export,["withdraw_type"=>3]); // } if(!isset($_REQUEST['id'])) $this->error("参数错误"); $id = $_REQUEST['id']; $CompanyInfo = M("company_statement_info","tab_") ->alias('i') ->field("i.id,i.pool_id,i.company_name,i.company_info,i.statement_money,i.remark,i.pay_status,i.verify_status,p.statement_num,i.statement_money,i.pay_check,pay_time") ->join("tab_company_statement_pool p ON p.id = i.pool_id") ->where("i.id in({$id}) and (pay_check=1 or pay_check=2)") ->select(); // $temp = $this->addPaymentPartInfo($CompanyInfo); // $temp?$CompanyInfo=$temp:""; if ($CompanyInfo[0]['id']) { $CompanyInfoSecord = M("company_statement_info_part","tab_") ->alias('i') ->field("info_id id,i.pool_id,i.company_name,i.company_info,i.statement_money,i.remark,i.pay_status,i.verify_status,p.statement_num,i.statement_money,i.pay_check,pay_time") ->join("tab_company_statement_pool p ON p.id = i.pool_id") ->where("i.info_id ={$CompanyInfo[0]['id']}") ->select(); } if($CompanyInfoSecord) { $CompanyInfo = $CompanyInfoSecord; } $unPayData = SM("company_statement_info_part","tab_") ->field("sum(statement_money) statement_money,info_id") ->where(["pay_status"=>1,'info_id'=>['in',$_REQUEST['id']]]) ->group("info_id") ->select(); $handleData = []; foreach ($unPayData as $key => $value) { $handleData[$value['info_id']] = $value['statement_money']; } $payData = SM("company_statement_info","tab_") ->field("id,sum(statement_money) statement_money,pay_status") ->where(['id'=>['in',$_REQUEST['id']]]) ->group("id") ->select(); $handleAllData = []; foreach ($payData as $key => $value) { $handleAllData[$value['id']] = $value['statement_money']; } // dump($payData); $surplurAmount = array_sum($handleData); $all_money = array_sum($handleAllData); foreach ($payData as $key => $value) { if ($value['pay_status'] == 1) { $surplurAmount -= $handleData[$value['id']]; $surplurAmount += $value['statement_money']; } } $sAmount = number_format($all_money-$surplurAmount,2,'.',''); foreach($CompanyInfo as $k=>&$v){ if($v['verify_status'] == 2){ $v['is_payment'] = 2; }else{ $v['is_payment'] = 1; } $v['company_info'] = json_decode($v['company_info'],true); $v['company_info']['ali_user'] ?? ''; $v['company_info']['ali_account'] ?? ''; $v['time'] = date("Y-m-d H:i:s",$v['pay_time']); // $all_money += $v['statement_money']; } $this->assign('surplur_amount',$sAmount); $this->assign('all_money',$all_money); $this->assign("CompanyInfo",$CompanyInfo); $this->assign("id",$id); $this->display("viewstatement"); } public function export($ids=''){ if (!$ids) { if (!isset($_REQUEST['ids'])) $this->error("参数错误"); $ids = $_REQUEST['ids']; } $dbres = SM("company_statement_info","tab_")->where("id in ({$ids})")->select(); $is_export= false; if (isset($_REQUEST['export']) && $_REQUEST['export']==1){ $is_export = true; } if($dbres[0]['company_type'] == 3){ //上游 $this->assign("title","上游公司线下打款"); A("CompanyStatementPool")->viewCpPool($dbres,$is_export); }elseif($dbres[0]['company_type'] == 1){ //下游公司 $this->assign("title","下游公司线下打款"); A("CompanyStatementPool")->viewPcPool($dbres,$is_export); }else{ $this->assign("title","下游个人线下打款"); A("CompanyStatementPool")->viewPuPool($dbres,$is_export,["withdraw_type"=>3]); } } protected function setOneVerifyStatus($change_status,$op_pre,$id) { $dbres = SM("company_statement_pool","tab_")->field("id,verify_status,verify_log")->where("id = {$id}")->find(); $dbres['verify_log'] = json_decode($dbres['verify_log'],true); $dbres['verify_log'][$op_pre.'_user']=$_SESSION['onethink_admin']['user_auth']["username"]; $dbres['verify_log'][$op_pre.'_time']=date("Y-m-d H:i:s"); $dbres['verify_log'] = json_encode($dbres['verify_log']); $dbres['verify_status']=$change_status; SM("company_statement_pool","tab_")->save($dbres); } public function OpAuth($info) { $id = $info['id']; $type = $info['company_type']; //原始列表 $opBtn = [ "viewStatement"=>"查看", ]; //操作对应菜单 $optist = ["viewStatement"]; $resarr = []; foreach ($optist as $k => $v) { if(IS_ROOT){ $resarr[] = $opBtn[$v]; }else{ if(in_array($v,$this->OpAuthList)){ $resarr[] = $opBtn[$v]; } } } return $resarr; } public function menuAuth() { $mentBtn = [ "setPayment"=>"打款信息确认", "returnSetPayment"=>"打款信息确认撤回", "doPayment"=>"打款确认", "export"=>"导出所选记录", "export_all"=>"导出当前记录", ]; $resarr = []; foreach ($mentBtn as $k => $v) { if(IS_ROOT){ $resarr[] = $v; }else{ if(in_array($k,$this->OpAuthList)){ $resarr[] = $v; } } } return $resarr; } }