"; include $path;die; } } private function cacheFile($path){ $content = ob_get_contents(); $fp = fopen($path, "w"); fwrite($fp, $content); fclose($fp); } // private function getExeCount(){ // Doo::loadModel('receipt'); // $receipt=new receipt(); // $receiptList=$receipt->find(array('where'=>'(executeCopy like \'%["'.$this->staff[0]['sid'].'%\' and executeStaff NOT LIKE \'%'.$this->staff[0]['sid'].'%\' ) and (status=1 or status=6)','desc'=>'rid','asArray'=>true)); // return count($receiptList); // } // private function getReceiptCount(){ // $status=2; // $year=date('Y'); // Doo::loadModel('receipt'); // $receipt=new receipt(); // $dateCondition=" and Year(date) =".$year; // $approvalCondition=' and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' ) '; // $receiptList=$receipt->find(array('where'=>' status='.$status.$dateCondition.$approvalCondition,'desc'=>'rid','asArray'=>true)); // return count($receiptList); // } private function collectHtml($receiptCollectList=array(),$itemCategory="日常相关费用",$classType="b"){ $collectHtml="";$sumPrice=0.00; for ($i=1;$i<=12;$i++){ $falg=true; foreach ($receiptCollectList as $key=>$value){ if($value['itemCategory']==$itemCategory&&$value['month']==$i){ $sumPrice+=$value['price']; if ($classType=="b"){ $collectHtml.='¥'.$value['price'].'';$falg=false;break; }else{ $collectHtml.='¥'.$value['price'].'';$falg=false;break; } } } if ($falg) $collectHtml.='-'; } $collectHtml.='¥'.$sumPrice.''; return $collectHtml; } function __construct() { if(isset($_COOKIE["staff"])){ if(!empty($_COOKIE["staff"])){ Doo::loadModel ( 'staff' ); Doo::loadModel('verify'); $verify=new verify(); $staff = new staff (); Doo::loadModel("execute"); $execute=new execute(); $verifyList=$verify->find(array('select'=>'staff','asArray'=>true)); $list=array(); //判断角色的审批权限 foreach ($verifyList as $key=>$value){ $ver=json_decode($value['staff']); foreach ($ver as $k=>$v){ if ($v[1]=='ROLE'){ $roleList=json_decode($v[3]); foreach ($roleList as $t=>$g){ $gList=explode("_", $g); array_push($list, $gList[0]); //print_r($list); } }else array_push($list, $v[0]); } } //判断执行人的审批权限 $executeList=$execute->find(array('select'=>'staff','asArray'=>true)); $list2=array(); foreach ($executeList as $key=>$value){ $ver=json_decode($value['staff']); foreach ($ver as $k=>$v){ array_push($list2, $v[0]); } } $eidList=file_get_contents("protected/config/execute/execute.ini"); $eidList=array_filter(explode(",", $eidList)); $this->executeId= array_merge($list2,$eidList); $this->verifyId=$list; $this->staff=$staff->getUserByIdList($_COOKIE["staff"]); return "/"; } } Doo::loadCore ( 'uri/DooUriRouter' ); $router = new DooUriRouter (); $routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER ); if($routeRs['1']!="login"){ header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: /login" ); } } function saeaBorad(){ Doo::loadModel('receipt'); Doo::loadModel('verify'); $verify=new verify(); $receipt=new receipt(); Doo::loadModel('L_category'); $lCategory=new L_category(); Doo::loadModel("role"); $role=new role(); Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); $receiptLogList=$receiptLog->getReceiptLogByUid($this->staff[0]['sid']); $receiptDetail=$receipt->find(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=7 or status=5 or status=4 or status=8 and Rtype=1)','desc'=>'rid','asArray'=>true)); foreach ($receiptDetail as $key=>$value){ $receiptDetail[$key]['accountItem']=json_decode($value['accountItem'],true); $veList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $v=json_decode($veList['staff']); array_push($v[0], $veList['description']); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; } } $receiptDetail[$key]['staff']=$v; $category=$lCategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptDetail[$key]['category']=$category['title']; } //print_r($receiptLogList); $data['receiptLogList']=$receiptLogList; $data['receiptDetail']=$receiptDetail; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaBorad", $data ); } function remitAdd(){ Doo::loadModel('accountItem'); Doo::loadModel('verify'); Doo::loadModel('receipt'); Doo::loadModel('L_category'); $lCategory=new L_category(); $receipt=new receipt(); $verify=new verify(); $accountItem=new accountItem(); Doo::loadModel("role"); $role=new role(); $acItem=$accountItem->find(array('asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } $data['category']=$lCategory->find(array('asArray'=>true)); $data['veList']=$veList; $data['acItem']=$acItem; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/remitAdd", $data ); } function remitAddDo(){ $agency=$this->get_args('agency'); $travel=$this->get_args('travel'); $train=$this->get_args('train'); $other=$this->get_args('other'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; $enclosurName=$this->get_args('enclosurName')?$this->get_args('enclosurName'):""; //print_r($agency);die; if(!empty($verify)&&!empty($cid)&&!empty($explanation)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('enclosur'); Doo::loadModel('execute'); $execute=new execute(); $executeDetail=$execute->getOne(array('where'=>'mold="对公汇款执行人"','asArray'=>true)); // $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true)); $aItem=$accountItem->find(array('where'=>'name like "办公费用" or name like "其他费用"','asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; foreach ($aItem as $key=>$value){ if ($value['category']==$this->AGENCY){ if (isset($agency[$ag])){ if (is_numeric($agency[$ag])&&$agency[$ag]!=0){ array_push($accountJson[$this->AGENCY], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($agency[$ag], 2, '.', ''))); $sum+=$agency[$ag];$agencySum+=$agency[$ag]; } } $ag++; } } $accountJson['cSum']=array('agencySum'=>number_format($agencySum, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //报销单 $receipt->accountItem=json_encode($accountJson); $receipt->staff=$this->staff[0]['sid']; $receipt->sum=number_format($sum, 2, '.', ''); $receipt->date=date("Y-m-d"); $receipt->cid=$cid; $receipt->status=5; $receipt->Rtype=2; //修改审批流程加入角色 $receipt->verify=$verify; $receipt->executeCopy=$executeDetail['staff']; $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999); $receipt->explanation=$explanation; $rid=$receipt->insert(); //附件 if (!empty($enclosurName)){ $enclosurArray=explode('-', $enclosurName); foreach ($enclosurArray as $value){ $enclosur=new enclosur(); $enclosur->name=$value; $enclosur->rid=$rid; $enclosur->insert(); } //print_r($enclosurArray);die; } //报销详情 foreach ($accountJson[$this->AGENCY] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->AGENCY; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } } return "/saeaBorad"; } function remitEdit(){ $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; //echo $rid; Doo::loadModel('accountItem'); Doo::loadModel('verify'); Doo::loadModel('receipt'); $receipt=new receipt(); $verify=new verify(); $accountItem=new accountItem(); Doo::loadModel('L_category'); $lCategory=new L_category(); Doo::loadModel("role"); $role=new role(); $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and rid='.$rid.' and (status=5 or status=4)','asArray'=>true)); if(empty($receiptDetail)) return "/saeaCreate"; $acItem=$accountItem->find(array('asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } //配置编辑信息 $accountItemList=json_decode($receiptDetail['accountItem'],true); foreach ($acItem as $key=>$value){ foreach ($accountItemList[$this->AGENCY] as $k=>$v){ if($acItem[$key]['category']==$this->AGENCY&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->TRAIN] as $k=>$v){ if($acItem[$key]['category']==$this->TRAIN&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->TRAVEL] as $k=>$v){ if($acItem[$key]['category']==$this->TRAVEL&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->OTHER] as $k=>$v){ if($acItem[$key]['category']==$this->OTHER&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } } $data['category']=$lCategory->find(array('asArray'=>true)); $data['cSum']=$accountItemList['cSum']; $data['sum']=$receiptDetail['sum']; $data['receiptDetail']=$receiptDetail; $data['veList']=$veList; $data['acItem']=$acItem; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verify']=$receiptDetail['verify']; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $data['rid']=$rid; $this->render ( "/admin/remitEdit", $data ); } function remitEdiDo(){ $agency=$this->get_args('agency'); $travel=$this->get_args('travel'); $train=$this->get_args('train'); $other=$this->get_args('other'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; if(!empty($verify)&&!empty($explanation)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('execute'); $execute=new execute(); $executeDetail=$execute->getOne(array('where'=>'mold="对公汇款执行人"','asArray'=>true)); $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and rid='.$rid.' and (status=5 or status=7 or status=4)','asArray'=>true)); if(empty($receiptDetail)) return "/saeaBorad"; $aItem=$accountItem->find(array('where'=>'name like "办公费用" or name like "其他费用"','asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; foreach ($aItem as $key=>$value){ if ($value['category']==$this->AGENCY){ if (is_numeric($agency[$ag])&&$agency[$ag]!=0){ array_push($accountJson[$this->AGENCY], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($agency[$ag], 2, '.', ''))); $sum+=$agency[$ag];$agencySum+=$agency[$ag]; } $ag++; } } $accountJson['cSum']=array('agencySum'=>number_format($agencySum, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //报销单 $rid=$receipt->rid=$receiptDetail['rid']; $receipt->accountItem=json_encode($accountJson); $receipt->staff=$this->staff[0]['sid']; $receipt->sum=number_format($sum, 2, '.', ''); $receipt->date=date("Y-m-d"); $receipt->cid=$cid; if ($receiptDetail['Rtype']==1) $receipt->status=7; else $receipt->status=5; $receipt->verify=$verify; $receipt->executeCopy=$executeDetail['staff']; $receipt->explanation=$explanation; $receipt->update(); $receiptDetail=new receiptDetail(); $receiptDetail->delete(array('where'=>'rid='.$rid)); //报销详情 foreach ($accountJson[$this->AGENCY] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->AGENCY; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } //return "/referReceipt/".$rid; } return "/saeaBorad"; } function remitApproval(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; $status=isset($this->params['status'])?$this->params['status']:''; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')?$this->get_args('status'):2; $vidList=array(); $button=0; Doo::loadModel('verify'); Doo::loadModel('receipt'); Doo::loadModel('staff'); $staff=new staff(); $receipt=new receipt(); $verify=new verify(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('enclosur'); $enclosur=new enclosur(); //user verify ID $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $ap=""; if($status==4){ $ap=4;$status=2; } //get Receipt By verifyID status 2 $receiptList=$receipt->find(array('where'=>'rid ='.$rid,'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0; if($ap==4) $status=4; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); //print_r($verifyList); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']){ $roleId=$v[0]; } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } //print_r($roleArray); $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $button=4;$flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ $endKey=key($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ $button=4; $verifyList[$k]['status']=4; } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']= $verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['BIGsum']=$this->num_to_rmb($value['sum']); } $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } //获取审批日志 Doo::loadModel('receiptLog'); $receiptLog=new receiptLog(); $rlList=array(); $rlInfo=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=4','asArray'=>true)); $tijdate=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=2','asc'=>'rlid','asArray'=>true)); if (!empty($rlInfo)){ $rlList=$receiptLog->find(array('where'=>'rid='.$rid,'asc'=>'rlid','asArray'=>true)); } $receiptList[0]['rlList']=$rlList; $enclosurList=$enclosur->find(array('where'=>'rid='.$rid,'asArray'=>true)); $enclosurHtml=''; foreach ($enclosurList as $value){ $enclosurHtml.=''.$value['name'].''; } //print_r($receiptList); $data['enclosurHtml']=$enclosurHtml; $data['rolename']=$rolename['name']; $data['datetij']=$tijdate['date']; $data['mothHtml']=$mothHtml; $data['rid']=$rid; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($receiptList); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; $data['ap']=$ap; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approvalExpenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/remitApproval", $data ); } function saeaLoanAdd(){ Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel("role"); $role=new role(); Doo::loadModel('L_category'); $lCategory=new L_category(); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } $data['category']=$lCategory->find(array('asArray'=>true)); $data['veList']=$veList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaLoanAdd", $data ); } function saeaLoanAddDo(){ $agency=$this->get_args('agency'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; //die; if(!empty($verify)&&!empty($cid)&&!empty($explanation)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); Doo::loadModel('execute'); $execute=new execute(); Doo::loadModel('enclosur'); $executeDetail=$execute->getOne(array('where'=>'mold="借款执行人"','asArray'=>true)); // $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true)); // if(!empty($receiptDetail)) // return "/referReceipt/".$receiptDetail['rid']; $aItem=$accountItem->find(array('asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=$accountJson['借款费用']=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; array_push($accountJson['借款费用'], array('aid'=>0,'name'=>'申请金额','price'=>number_format($agency, 2, '.', ''))); $sum+=$agency;$agencySum+=$agency; $accountJson['cSum']=array('loanSum'=>number_format($agencySum, 2, '.', ''),'agencySum'=>number_format(0, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //借款数据备份 $loanReceipt->loanItem=json_encode($accountJson); $loanReceipt->staff=$this->staff[0]['sid']; $loanReceipt->sum=number_format($sum, 2, '.', ''); $loanReceipt->date=date("Y-m-d"); $loanReceipt->cid=$cid; $loanReceipt->receiptOrder="#J".date("Ymd").mt_rand(1000,9999); $loanReceipt->status=5; $loanReceipt->Rtype=1; $loanReceipt->verify=$verify; $receipt->receiptOrder=$receipt->receiptOrder; $loanReceipt->explanation=$explanation; $loanRid=$loanReceipt->insert(); //报销单 $receipt->loanItem=json_encode($accountJson); $receipt->staff=$this->staff[0]['sid']; $receipt->sum=number_format($sum, 2, '.', ''); $receipt->date=date("Y-m-d"); $receipt->cid=$cid; //特殊状态 $receipt->status=5; $receipt->Rtype=1; $receipt->loanRid=$loanRid; //修改审批流程加入角色 $receipt->verify=$verify; $receipt->executeCopy=$executeDetail['staff']; $receipt->receiptOrder=$loanReceipt->receiptOrder; $receipt->explanation=$explanation; $rid=$receipt->insert(); //执行数据备份 // $executeCopy->rid=$rid; // $executeCopy->staff=$executeDetail['staff']; // $executeCopy->eid=$executeDetail['eid']; // $ecid=$executeCopy->insert(); } return "/saeaBorad"; } function saeaLoanEdi(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel("role"); $role=new role(); Doo::loadModel('L_category'); $lCategory=new L_category(); Doo::loadModel('receipt'); $receipt=new receipt(); $receiptInfo=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } $receiptInfo['loanItem']=json_decode($receiptInfo['loanItem'],true); $data['receiptInfo']=$receiptInfo; $data['category']=$lCategory->find(array('asArray'=>true)); $data['veList']=$veList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaLoanEdi", $data ); } function saeaLoanEdiDo(){ $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; $agency=$this->get_args('agency'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; //die; if(!empty($verify)&&!empty($cid)&&!empty($explanation)&&!empty($rid)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); Doo::loadModel('enclosur'); Doo::loadModel('execute'); $execute=new execute(); $executeDetail=$execute->getOne(array('where'=>'mold="借款执行人"','asArray'=>true)); $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=5 and rid='.$rid,'asArray'=>true)); if(empty($receiptDetail)) die('参数错误'); $aItem=$accountItem->find(array('asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=$accountJson['借款费用']=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; array_push($accountJson['借款费用'], array('aid'=>0,'name'=>'申请金额','price'=>number_format($agency, 2, '.', ''))); $sum+=$agency;$agencySum+=$agency; $accountJson['cSum']=array('loanSum'=>number_format($agencySum, 2, '.', ''),'agencySum'=>number_format(0, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //报销单 $receipt->loanItem=json_encode($accountJson); $receipt->sum=number_format($sum, 2, '.', ''); $receipt->cid=$cid; //特殊状态 //修改审批流程加入角色 $receipt->verify=$verify; $receipt->explanation=$explanation; $receipt->update(array('where'=>'rid='.$rid)); //借款数据更新 $loanReceipt->loanItem=json_encode($accountJson); $loanReceipt->sum=number_format($sum, 2, '.', ''); $loanReceipt->cid=$cid; $loanReceipt->verify=$verify; $loanReceipt->explanation=$explanation; $receipt->executeCopy=$executeDetail['staff']; $loanReceipt->update(array('where'=>'rid='.$receiptDetail['loanRid'])); } return "/saeaBorad"; } function saeaLoanReceiptAdd(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); Doo::loadModel('statistics'); $statistics=new statistics(); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); $receiptDe=$receipt->getOne(array('where'=>'rid='.$rid,'desc'=>'rid','asArray'=>true)); $receiptList=$loanReceipt->find(array('where'=>'rid='.$receiptDe['loanRid'],'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; // //$receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']); $receiptList[$key]['BIGsum']=$this->num_to_rmb($value['sum']); } $data['receiptList']=$receiptList; Doo::loadModel('L_category'); $lCategory=new L_category(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $acItem=$accountItem->find(array('asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } $data['rid']=$rid; $data['category']=$lCategory->find(array('asArray'=>true)); $data['veList']=$veList; $data['acItem']=$acItem; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaLoanAddReceipt", $data ); } function saeaLoanReceiptAddDo(){ $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; $agency=$this->get_args('agency'); $travel=$this->get_args('travel'); $train=$this->get_args('train'); $other=$this->get_args('other'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; $enclosurName=$this->get_args('enclosurName')?$this->get_args('enclosurName'):""; if(!empty($verify)&&!empty($cid)&&!empty($explanation)&&!empty($rid)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('enclosur'); Doo::loadModel('execute'); $execute=new execute(); $executeDetail=$execute->getOne(array('where'=>'mold="借款费用执行人"','asArray'=>true)); $receiptDet=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); // if(!empty($receiptDetail)) // return "/referReceipt/".$receiptDetail['rid']; $aItem=$accountItem->find(array('asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; foreach ($aItem as $key=>$value){ if ($value['category']==$this->AGENCY){ if (is_numeric($agency[$ag])&&$agency[$ag]!=0){ array_push($accountJson[$this->AGENCY], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($agency[$ag], 2, '.', ''))); $sum+=$agency[$ag];$agencySum+=$agency[$ag]; } $ag++; } if($value['category']==$this->TRAVEL){ if (is_numeric($travel[$tr])&&$travel[$tr]!=0){ array_push($accountJson[$this->TRAVEL], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($travel[$tr], 2, '.', ''))); $sum+=$travel[$tr];$travelSum+=$travel[$tr]; } $tr++; } if($value['category']==$this->TRAIN){ if (is_numeric($train[$ta])&&$train[$ta]!=0){ array_push($accountJson[$this->TRAIN], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($train[$ta], 2, '.', ''))); $sum+=$train[$ta];$trainSum+=$train[$ta]; } $ta++; } if($value['category']==$this->OTHER){ if (is_numeric($other[$ot])&&$other[$ot]!=0){ array_push($accountJson[$this->OTHER], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($other[$ot], 2, '.', ''))); $sum+=$other[$ot];$otherSum+=$other[$ot]; } $ot++; } } $accountJson['cSum']=array('agencySum'=>number_format($agencySum, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //报销单 $receipt->accountItem=json_encode($accountJson); $receipt->staff=$this->staff[0]['sid']; $receipt->loanSum=$receiptDet['sum']; $receipt->sum=number_format($sum, 2, '.', ''); $receipt->date=date("Y-m-d"); $receipt->pastDate=''; $receipt->cid=$cid; $receipt->status=7; //修改审批流程加入角色 $receipt->verify=$verify; $receipt->verifyStaff=''; $receipt->executeStaff=''; $receipt->executeCopy=$executeDetail['staff']; //$receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999); $receipt->explanation=$explanation; $receipt->update(array('where'=>'rid='.$rid)); //附件 if (!empty($enclosurName)){ $enclosurArray=explode('-', $enclosurName); foreach ($enclosurArray as $value){ $enclosur=new enclosur(); $enclosur->name=$value; $enclosur->rid=$rid; $enclosur->insert(); } //print_r($enclosurArray);die; } //报销详情 foreach ($accountJson[$this->AGENCY] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->AGENCY; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->TRAVEL] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->TRAVEL; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->TRAIN] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->TRAIN; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->OTHER] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->OTHER; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } return "/saeaBorad"; } return "/saeaLoanReceiptAdd/".$rid; } function saeaLoanReceiptEdi(){ $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; //echo $rid; Doo::loadModel('accountItem'); Doo::loadModel('verify'); Doo::loadModel('receipt'); $receipt=new receipt(); $verify=new verify(); $accountItem=new accountItem(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel("role"); $role=new role(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); Doo::loadModel('staff'); $staff=new staff(); $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=4 or status=7) and rid='.$rid,'asArray'=>true)); if(empty($receiptDetail)) return "/saeaBorad"; $receiptList=$loanReceipt->find(array('where'=>'rid='.$receiptDetail['loanRid'],'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; // //$receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']); $receiptList[$key]['BIGsum']=$this->num_to_rmb($value['sum']); } $data['receiptList']=$receiptList; $acItem=$accountItem->find(array('asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } //配置编辑信息 $accountItemList=json_decode($receiptDetail['accountItem'],true); foreach ($acItem as $key=>$value){ foreach ($accountItemList[$this->AGENCY] as $k=>$v){ if($acItem[$key]['category']==$this->AGENCY&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->TRAIN] as $k=>$v){ if($acItem[$key]['category']==$this->TRAIN&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->TRAVEL] as $k=>$v){ if($acItem[$key]['category']==$this->TRAVEL&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->OTHER] as $k=>$v){ if($acItem[$key]['category']==$this->OTHER&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } } $data['category']=$Lcategory->find(array('asArray'=>true)); $data['cSum']=$accountItemList['cSum']; $data['sum']=$receiptDetail['sum']; $data['receiptDetail']=$receiptDetail; $data['veList']=$veList; $data['acItem']=$acItem; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verify']=$receiptDetail['verify']; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $data['rid']=$rid; $this->render ( "/admin/saeaLoanEdiReceipt", $data ); } function confirmation(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); $receipt=new receipt(); $receiptDetail=new receiptDetail(); Doo::loadModel('statistics'); Doo::loadModel('itemStatistics'); $statistics=new statistics(); $itemStatistics=new itemStatistics(); Doo::loadModel("verify"); $verify=new verify(); $receiptDetailList=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=4 or status=5) and Rtype=1 and rid='.$rid,'asArray'=>true)); if(empty($receiptDetailList)) return "/saeaBorad"; $verifyDetail=$verify->getOne(array('where'=>' vid ='.$receiptDetailList['verify'],'asArray'=>true)); $verifyDetail=json_decode($verifyDetail['staff'],true); if (empty($receiptDetailList['nowStaff'])){ $nowStaff="";$nowStaffList=array(); if ($verifyDetail[0][1]=='ROLE'){ $vStaffString=json_decode($verifyDetail[0][3]); foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); array_push($nowStaffList, $staffK[0]); } $nowStaff=implode(',', $nowStaffList); }else{ $nowStaff=$verifyDetail[0][0]; } $receipt->nowStaff=$nowStaff; } // echo $nowStaff; // print_r($verifyDetail);die; $receipt->rid=$receiptDetailList['rid']; $receipt->status=2; $receipt->update(); //操作日志 Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); $verify=new verify(); $receiptInfo=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); $vr=$verify->getOne(array('where'=>'vid='.$receiptInfo['verify'],'asArray'=>true)); $jd=json_decode($vr['staff']);$roleId=0; foreach ($jd as $key=>$value){ if ($value[1]=='ROLE'){ $pos = strpos($value[3], $this->staff[0]['sid']); if ($pos !== false) { $roleId=$value[0]; } } } //审批日志 //echo $roleId;die; if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion='提交审批'; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=2; $receiptLog->rid=$rid; $receiptLog->insert(); return "/expenses"; } function expenses(){ $item=isset($this->params['item'])?$this->params['item']:""; if(empty($item)) $item=$this->get_args('item')?$this->get_args('item'):""; $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $moth=$this->get_args('moth')?$this->get_args('moth'):""; Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); Doo::loadModel('statistics'); $statistics=new statistics(); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); $condition=""; if($item=="expenses") $condition=" and Rtype=1 "; elseif ($item=="receipts") $condition=" and Rtype=0 "; elseif ($item=="remits") $condition=" and Rtype=2 "; $dateCondition=" and Year(date) =".$year; if(!empty($moth)){ $dateCondition=" and Year(date) =".$year." and Month(date) = ".$moth; $stList=$statistics->getOne(array('select'=>'rePrice ,agPrice','where'=>' staff='.$this->staff[0]['sid'].$dateCondition,'asArray'=>true)); }else $stList=$statistics->statisticsByYear($year,$this->staff[0]['sid']); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $noPassSum=$receipt->receiptByYear($year,$this->staff[0]['sid']); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice']-$noPassSum['sum'])); $receiptList=$receipt->find(array('where'=>'staff='.$this->staff[0]['sid'].$condition.$dateCondition,'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; } //print_r($receiptList);die; $mothHtml=""; for($i=1;$i<=12;$i++){ if($moth==$i) $mothHtml.=''; else $mothHtml.=''; } $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='expenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $data['item']=$item; $data['year']=$year; $this->render ( "/admin/expenses", $data ); } function expensesCollect(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); Doo::loadModel('statistics'); $statistics=new statistics(); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); $receiptList=$receipt->find(array('where'=>'staff='.$this->staff[0]['sid'].' and rid='.$rid,'desc'=>'rid','asArray'=>true)); $loanList=$loanReceipt->find(array('where'=>'rid='.$receiptList[0]['loanRid'],'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($loanList as $key=>$value){ $loanList[$key]['Locate']=$Locate;$Locate++; $loanList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $loanList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $loanList[$key]['accountItem']=json_decode($value['accountItem'],true); $loanList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $loanList[$key]['category']=$categoryDetil['title']; //检测编辑状态 if ($value['status']==3||$value['status']==1||$value['status']==8||$value['status']==9) $verifyList['staff']=$value['verifyBreakup']; else $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; $loanList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $loanList[$key]['button']=$button; //$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']); } $data['loanList']=$loanList; $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 if ($value['status']==3||$value['status']==1||$value['status']==8||$value['status']==9){ if($value['status']==8&&$value['Rtype']==1) $verifyList['staff']=$loanList[0]['verifyBreakup']; else $verifyList['staff']=$value['verifyBreakup']; }else $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['sumCN']=$this->num_to_rmb($value['sum']); $receiptList[$key]['loanSumCN']=$this->num_to_rmb($value['loanSum']); $relust=$value['sum']-$value['loanSum']; $receiptList[$key]['relust']=$relust; $receiptList[$key]['relustCN']=$this->num_to_rmb($relust); } $data['receiptList']=$receiptList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='expenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/expensesCollect", $data ); } function approvalExpenses(){ $status=isset($this->params['status'])&&is_numeric($this->params['status'])?$this->params['status']:0; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')&&is_numeric($this->get_args('status'))?$this->get_args('status'):0; $page_size=12; $page = isset($this->params ['page'])&&is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $vidList=array(); $button=0; Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('L_category'); $Lcategory=new L_category(); //user verify ID $verifyDetail=$verify->find(array('where'=>' (staff not like "%\"'.$this->staff[0]['sid'].'\",\"ROLE%") and (staff like "%[\"'.$this->staff[0]['sid'].'\",%" or staff like "%\"'.$this->staff[0]['sid'].'\_%" )','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; // if ($status==0) // $dateCondition=""; // else $dateCondition=" and Year(date) =".$year; if(!empty($month)) $dateCondition=" and Year(date) =".$year." and Month(date) = ".$month; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $cateCondition="";$staffCondition="";$approvalCondition=""; if (!empty($cid)) $cateCondition=' and cid='.$cid; if(!empty($sid)){ $staffCondition=' and staff='.$sid; $cateCondition=""; } $approvalCondition=" and status=".$status; if($status==2){ //查找角色审批人 $approvalCondition=' and status='.$status.' and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' )'; } if($status==5){//and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%" $approvalCondition=' and status=2 '; } if($status==1){ $approvalCondition=' and (status='.$status.' or status=6) '; } //nowStaff like "%'.$this->staff[0]['sid'].'%" $pageinfo['page']=array('previous'=>''); if ($status==0){ $pageinfo=$this->get_page("CLD_receipt", $dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.') and status!=5', $page, $page_size, "approvalExpenses","",""); $receiptList=$receipt->find(array('where'=>'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')' ,'limit'=>$pageinfo ['lower'].','.$page_size,'desc'=>'rid','asArray'=>true)); //echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')'; }else $receiptList=$receipt->find(array('where'=>'status!=5 '.$dateCondition.$cateCondition.$staffCondition.$approvalCondition.' and verify in ('.$vid.')' ,'desc'=>'rid','asArray'=>true)); $rLRes=$receipt->find(array('where'=>'status=2 and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' )'.$cateCondition.$staffCondition ,'desc'=>'rid','asArray'=>true)); //echo '1 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')'; //print_r($pageinfo); $Locate=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); foreach ($verifyList as $k=>$v){ //init verifyStaff $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if ($v[0]==$this->staff[0]['sid']){ $verifyList[$k]['status']=4; $button=4; } }else{ $flag=true; foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } // elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;} // if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;} // if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;} } if($flag){//检测可编辑 if($v[0]==$this->staff[0]['sid']){ $verifyList[$k]['status']=4;$button=4; } } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['nowStaffArray']=explode(',',$value['nowStaff']); } //print_r($receiptList);die; //$data['verifyDetail']=$verifyDetail; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } $data['mothHtml']=$mothHtml; $data['page']=$pageinfo; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($rLRes); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; //print_r($receiptList); $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approvalExpenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/approvalExpenses", $data ); } function expensesDoc(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); Doo::loadModel('statistics'); $statistics=new statistics(); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); $receiptList=$receipt->find(array('where'=>' rid='.$rid,'desc'=>'rid','asArray'=>true)); $loanList=array(); if (!empty($receiptList)) $loanList=$loanReceipt->find(array('where'=>'rid='.$receiptList[0]['loanRid'],'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($loanList as $key=>$value){ $loanList[$key]['Locate']=$Locate;$Locate++; $loanList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $loanList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $loanList[$key]['accountItem']=json_decode($value['accountItem'],true); $loanList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $loanList[$key]['category']=$categoryDetil['title']; //检测编辑状态 if ($value['status']==3||$value['status']==1||$value['status']==8||$value['status']==9) $verifyList['staff']=$value['verifyBreakup']; else $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; $loanList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $loanList[$key]['button']=$button; //$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']); } $data['loanList']=$loanList; //print_r($loanList); $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 if ($value['status']==3||$value['status']==1||$value['status']==9){ $verifyList['staff']=$value['verifyBreakup']; }else $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); if ($verifyList==NULL) $verifyList=array(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['sumCN']=$this->num_to_rmb($value['sum']); $receiptList[$key]['loanSumCN']=$this->num_to_rmb($value['loanSum']); } //获取审批日志 Doo::loadModel('receiptLog'); $receiptLog=new receiptLog(); $rlList=array(); $rlInfo=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=4','asArray'=>true)); $tijdate=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=2','asc'=>'rlid','asArray'=>true)); if (!empty($rlInfo)){ $rlList=$receiptLog->find(array('where'=>'rid='.$rid,'asc'=>'rlid','asArray'=>true)); } $receiptList[0]['rlList']=$rlList; $data['receiptList']=$receiptList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approvalExpenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/expensesDoc", $data ); } function expensesEdi(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; $status=isset($this->params['status'])?$this->params['status']:''; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')?$this->get_args('status'):2; $vidList=array(); $button=0; Doo::loadModel('verify'); Doo::loadModel('receipt'); Doo::loadModel('staff'); $staff=new staff(); $receipt=new receipt(); $verify=new verify(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('enclosur'); $enclosur=new enclosur(); //user verify ID $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $ap=""; if($status==4){ $ap=4;$status=2; } //get Receipt By verifyID status 2 $receiptList=$receipt->find(array('where'=>'rid ='.$rid,'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0; if($ap==4) $status=4; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); //print_r($verifyList); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']){ $roleId=$v[0]; } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } //print_r($roleArray); $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $button=4;$flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ $endKey=key($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ $button=4; $verifyList[$k]['status']=4; } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } // print_r($roleArrayCopy); // echo $roleKey; foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['BIGsum']=$this->num_to_rmb($value['sum']); } //$data['verifyDetail']=$verifyDetail; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } //获取审批日志 Doo::loadModel('receiptLog'); $receiptLog=new receiptLog(); $rlList=array(); $rlInfo=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=4','asArray'=>true)); $tijdate=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=2','asc'=>'rlid','asArray'=>true)); if (!empty($rlInfo)){ $rlList=$receiptLog->find(array('where'=>'rid='.$rid,'asc'=>'rlid','asArray'=>true)); } $receiptList[0]['rlList']=$rlList; $enclosurList=$enclosur->find(array('where'=>'rid='.$rid,'asArray'=>true)); $enclosurHtml=''; foreach ($enclosurList as $value){ $enclosurHtml.=''.$value['name'].''; } //print_r($receiptList); $data['rid']=$rid; $data['enclosurHtml']=$enclosurHtml; $data['rolename']=$rolename['name']; $data['datetij']=$tijdate['date']; $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($receiptList); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; $data['ap']=$ap; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approvalExpenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/expensesEdi", $data ); } function expensesDefray(){ $opinion=$this->get_args('opinion')?$this->get_args('opinion'):""; $status=$this->get_args('status')&&is_numeric($this->get_args('status'))?$this->get_args('status'):0; $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; $Locate=$this->get_args('Locate')&&is_numeric($this->get_args('Locate'))?$this->get_args('Locate'):0; if(!empty($rid)){ Doo::loadModel("verify"); $verify=new verify(); Doo::loadModel("receiptDetail"); $receiptDetailObj=new receiptDetail(); Doo::loadModel("itemStatistics"); Doo::loadModel("statistics"); $statistics=new statistics(); $itemStatistics=new itemStatistics(); Doo::loadModel("receipt"); $receipt=new receipt(); Doo::loadModel("loanReceipt"); $loanReceipt=new loanReceipt(); $receiptDetail=$receipt->getOne(array('where'=>'rid='.$rid.' and status=2 ','asArray'=>true)); if (empty($receiptDetail)) return "/approval"; $verifyDetail=$verify->getOne(array('where'=>' vid ='.$receiptDetail['verify'],'asArray'=>true)); $verifyString=$verifyDetail['staff']; $verifyDetail=json_decode($verifyDetail['staff'],true); $verifyStaff=json_decode($receiptDetail['verifyStaff'],true); if(empty($opinion)){ if ($status==3) $opinion="终止"; else $opinion="同意支付"; } $nowStaff=0;$nowStaffList=array(); if(empty($verifyStaff)){ //还需加入是否已经进入角色审批 if ($verifyDetail[0][1]=='ROLE'){ //print_r($verifyDetail);echo "ddd"; $vStaffString=json_decode($verifyDetail[0][3]); foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); if ($staffK[0]!=$this->staff[0]['sid']) array_push($nowStaffList, $staffK[0]); } //print_r($verifyDetail); //die; $nowStaff=implode(',', $nowStaffList); $verifyStaff=array($this->staff[0]['sid']."_R"=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[0][0],'ROLE'=>1)); }else{ if ($verifyDetail[1][1]=='ROLE'){ $vStaffString=json_decode($verifyDetail[1][3]); //echo "dd"; foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); array_push($nowStaffList, $staffK[0]); } $nowStaff=implode(',', $nowStaffList); $verifyStaff=array($this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[1][0],'ROLE'=>1)); }else{ $nowStaff=$verifyDetail[1][0]; $verifyStaff=array($this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[1][0])); } } if($status==3) $verifyStaff=array('final'=>$status,$this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status)); $vStaffString=json_encode($verifyStaff); $receipt->nowStaff=$nowStaff; $receipt->verifyStaff=$vStaffString; $loanReceipt->nowStaff=$nowStaff; $loanReceipt->verifyStaff=$vStaffString; }else{ $VS=end($verifyStaff); //非角色审批 if (!array_key_exists($this->staff[0]['sid'],$verifyStaff)&&!isset($VS['ROLE'])){ $nextStaff=0;$roleSTF=false; foreach ($verifyDetail as $key=>$value){ if ($value[0]==$this->staff[0]['sid']&&$value[1]!='ROLE'){ if (isset($verifyDetail[$key+1])){ $nextStaff=$verifyDetail[$key+1][0]; if ($verifyDetail[$key+1][1]=='ROLE') $roleSTF=true; } break; } } if (!$roleSTF){ $nowStaff=$nextStaff; $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff); }else{ //获取角色下的所有用户ID $nowStaffList=array(); foreach ($verifyDetail as $vfk){ if ($vfk[1]=='ROLE'){ $vStaffString=json_decode($vfk[3]); foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); array_push($nowStaffList, $staffK[0]); } } } $nowStaff=implode(',', $nowStaffList); $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff,'ROLE'=>0); } if($status==3){ $verifyStaff['final']=$status; $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status); } $vStaffString=json_encode($verifyStaff); $receipt->nowStaff=$nowStaff; $receipt->verifyStaff=$vStaffString; $loanReceipt->nowStaff=$nowStaff; $loanReceipt->verifyStaff=$vStaffString; } //角色审批 if (isset($VS['ROLE'])){ //找出角色人 当前审批角色组 $verifyJSStaff=array();$nowStaffList2=array(); foreach ($verifyDetail as $key=>$value){ if($value[1]=='ROLE'&&$value[0]==$VS['nextStaff']){ $verifyJSStaff=json_decode($value[3]); foreach ($verifyJSStaff as $m){ $staffK=explode("_", $m); array_push($nowStaffList2, $staffK[0]); } // print_r($nowStaffList2); } } $RoleVerifyStaff=array(); foreach ($verifyStaff as $key=>$value){ if (isset($value['ROLE'])&&$value['ROLE']==1&&$VS['nextStaff']==$value['nextStaff']){ foreach ($nowStaffList2 as $m) { if ($key==$m."_R") $RoleVerifyStaff[$key]=$value; } } } $jsCount=count($verifyJSStaff)-1;//echo $jsCount;die; if ($jsCount==count($RoleVerifyStaff)){ //或者 //下一个审批人ID $nextStaff=0;$falg=false; foreach ($verifyDetail as $key=>$value){ if ($value[0]==$VS['nextStaff']&&$value[1]=='ROLE'){ if (isset($verifyDetail[$key+1])&&$verifyDetail[$key+1][1]=='ROLE'){ $falg=true; $vStaffString=json_decode($verifyDetail[$key+1][3]);$nowStaffList=array(); foreach ($vStaffString as $v){ $staffK=explode("_", $v); array_push($nowStaffList, $staffK[0]); } $nowStaff=implode(',', $nowStaffList); $nextStaff=$verifyDetail[$key+1][0]; }elseif(isset($verifyDetail[$key+1])){ $nextStaff=$verifyDetail[$key+1][0]; $nowStaff=$nextStaff; }else $nowStaff=''; break; } } if ($falg) $verifyStaff[$this->staff[0]['sid'].'_R']=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff,'ROLE'=>1); else $verifyStaff[$this->staff[0]['sid'].'_R']=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff); // print_r($verifyStaff); // echo $nowStaff;die; }else{ //进入下一个角色或者审批人 // echo str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']); // $nowStaff=str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']); $verifyStaff[$this->staff[0]['sid'].'_R']=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$VS['nextStaff'],'ROLE'=>1); // print_r($verifyStaff); // die; } if($status==3){ $verifyStaff['final']=$status; $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status); } $vStaffString=json_encode($verifyStaff); $receipt->verifyStaff=$vStaffString; $receipt->nowStaff=$nowStaff; $loanReceipt->nowStaff=$nowStaff; $loanReceipt->verifyStaff=$vStaffString; //die; //} // print_r($verifyStaff); // die; } //print_r($verifyStaff);die; } //print_r($verifyDetail); $roleKey=0;$roleId=0;$verifyDetailCopy=array(); foreach ($verifyDetail as $k=>$v){ if ($v[1]=='ROLE'){ $roleId=$v[0]; $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $exp=array(0=>$staffID[0],1=>$staffID[1]); array_push($roleArray, $exp); } $verifyDetailCopy[$v[0]]=$roleArray; } } //print_r($verifyDetail); foreach ($verifyDetailCopy as $k=>$v){ foreach ($verifyDetail as $m=>$n){ if ($n[0]==$k){ array_splice($verifyDetail,$m,1,$v); } } } //审批日志 if (!isset($verifyStaff['final'])){ Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion=$opinion; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=1; $receiptLog->rid=$rid; $receiptLog->insert(); } if (isset($verifyStaff['final'])){//rDetail $receipt->status=3; $receipt->verifyBreakup=$verifyString; $receiptDetailObj->status=3; $receiptDetailObj->update(array('where'=>'rid='.$rid)); }elseif(count($verifyStaff)==count($verifyDetail)){//要修改 角色的数量 $receipt->status=6; $receipt->pastDate=date("Y-m-d"); $receipt->isBK=1; $loanReceipt->verifyBreakup=$verifyString; $loanReceipt->status=1; $loanReceipt->pastDate=date("Y-m-d"); $loanReceipt->update(array('where'=>' rid = '.$receiptDetail['loanRid'])); } $receipt->update(array('where'=>' rid = '.$rid)); return "/approvalExpenses/2"; } } function implement(){ Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel("execute"); $execute=new execute(); $receiptList=$receipt->find(array('where'=>'executeCopy like \'%["'.$this->staff[0]['sid'].'%\' and (status=1 or status=6)','desc'=>'rid','asArray'=>true)); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); //print_r($receiptList); $loanList=array(); if (!isset($receiptList)) $loanList=$loanReceipt->find(array('where'=>'rid='.$receiptList[0]['loanRid'],'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($loanList as $key=>$value){ $loanList[$key]['Locate']=$Locate;$Locate++; $loanList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $loanList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $loanList[$key]['accountItem']=json_decode($value['accountItem'],true); $loanList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $loanList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; $loanList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); } $data['loanList']=$loanList; $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $button2=0; $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; $executeList=json_decode($value['executeCopy'],true); $executeStaff=array(); if (!empty($value['executeStaff'] )) $executeStaff=json_decode($value['executeStaff'],true); if (isset($executeList)){ foreach ($executeList as $op=>$lo){ $executeList[$op]['date']=""; $executeList[$op]['opinion']=""; $executeList[$op]['status']=""; foreach ($executeStaff as $m=>$u){ if ($lo[0]==$m){ $executeList[$op]['date']=$u['date']; $executeList[$op]['opinion']=$u['opinion']; $executeList[$op]['status']=$u['status']; break; } } if ($this->staff[0]['sid']==$lo[0]&&empty($executeList[$op]['status'])){ $button2=1; $executeList[$op]['status']=4; } } } //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['executeList']=$executeList; $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button2']=$button2; $receiptList[$key]['sumCN']=$this->num_to_rmb($value['sum']); $receiptList[$key]['loanSumCN']=$this->num_to_rmb($value['loanSum']); $relust=$value['sum']-$value['loanSum']; $receiptList[$key]['relust']=$relust; $receiptList[$key]['relustCN']=$this->num_to_rmb($relust); } //print_r($receiptList[$key]['executeList']); $data['receiptList']=$receiptList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='implement'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/implement", $data ); } function implementDo(){ $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; $implementOpinions=$this->get_args('opinion')?$this->get_args('opinion'):""; if (!empty($rid)){ Doo::loadModel('receipt'); $receipt=new receipt(); $rinfo=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); $executeCopy=json_decode($rinfo['executeCopy'],true); $executeStaff=json_decode($rinfo['executeStaff'],true); if(empty($executeStaff)){ $executeStaff=array($this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$implementOpinions,'status'=>1)); }else{ $executeStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$implementOpinions,'status'=>1); } if (count($executeStaff)==count($executeCopy)){ $receipt->executeStaff=json_encode($executeStaff); $receipt->status=8; if ($rinfo['Rtype']==1&&$rinfo['isBK']==1&&$rinfo['status']==1) $receipt->status=9; $receipt->executeDate= date("Y-m-d"); }else{ $receipt->executeStaff=json_encode($executeStaff); } $receipt->update(array('where'=>'rid='.$rid)); } return "/implement"; } function receiptburEdi(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; $status=isset($this->params['status'])?$this->params['status']:''; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')?$this->get_args('status'):2; $vidList=array(); $button=0; Doo::loadModel('verify'); Doo::loadModel('receipt'); Doo::loadModel('staff'); $staff=new staff(); $receipt=new receipt(); $verify=new verify(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('enclosur'); $enclosur=new enclosur(); Doo::loadModel('loanReceipt'); $loanReceipt=new loanReceipt(); //user verify ID $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $ap=""; if($status==4){ $ap=4;$status=2; } //get Receipt By verifyID status 2 $receiptList=$receipt->find(array('where'=>'rid ='.$rid,'desc'=>'rid','asArray'=>true)); $loanList=$loanReceipt->find(array('where'=>'rid='.$receiptList[0]['loanRid'],'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($loanList as $key=>$value){ $loanList[$key]['Locate']=$Locate;$Locate++; $loanList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $loanList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $loanList[$key]['accountItem']=json_decode($value['accountItem'],true); $loanList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $loanList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; } $htmlLoan=''; if (isset($loanList[0])){ foreach ($loanList[0]['verifyList'] as $key=>$value){ if ($value['status']==1) $htmlLoan.='
  • '; elseif ($value['status']==3) $htmlLoan.='
  • '; $htmlLoan.='
    '; $htmlLoan.='

    '.$value['1'].''.$value['date'].''; if (isset($value['rolename'])) $htmlLoan.=$value['rolename']; $htmlLoan.='

    '.$value['opinion'].'

  • '; } $data['loanDate']=$loanList[0]['date']; } $data['htmlLoan']=$htmlLoan; //print_r($loanList); $Locate=0;$roleId=0;$button=0; if($ap==4) $status=4; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $receiptList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); //print_r($verifyList); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']){ $roleId=$v[0]; } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } //print_r($roleArray); $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $button=4;$flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ $endKey=key($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ $button=4; $verifyList[$k]['status']=4; } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } //print_r($verifyList); $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['loanSumCN']=$this->num_to_rmb($value['loanSum']); $receiptList[$key]['sumCN']=$this->num_to_rmb($value['sum']); $relust=$value['sum']-$value['loanSum']; $receiptList[$key]['relust']=$relust; $receiptList[$key]['relustCN']=$this->num_to_rmb($relust); } //print_r($receiptList);die; //$data['verifyDetail']=$verifyDetail; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } //获取审批日志 Doo::loadModel('receiptLog'); $receiptLog=new receiptLog(); $rlList=array(); $rlInfo=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=4','asArray'=>true)); $tijdate=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=2','asc'=>'rlid','asArray'=>true)); if (!empty($rlInfo)){ $rlList=$receiptLog->find(array('where'=>'rid='.$rid,'asc'=>'rlid','asArray'=>true)); } //echo $rid; //print_r($receiptList); $receiptList[0]['rlList']=$rlList; $enclosurList=$enclosur->find(array('where'=>'rid='.$rid,'asArray'=>true)); $enclosurHtml=''; foreach ($enclosurList as $value){ $enclosurHtml.=''.$value['name'].''; } $data['enclosurHtml']=$enclosurHtml; $data['rolename']=$rolename['name']; // $data['datetij']=$tijdate['date']; $data['mothHtml']=$mothHtml; //print_r($receiptList); $data['rid']=$rid; $data['tijdate']=$tijdate['date']; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($receiptList); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; $data['ap']=$ap; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approvalExpenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/receiptburEdi", $data ); } function hisImplement(){ $item=isset($this->params['item'])?$this->params['item']:""; if(empty($item)) $item=$this->get_args('item')?$this->get_args('item'):""; $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $moth=$this->get_args('moth')?$this->get_args('moth'):date("m"); $day=$this->get_args('day')?$this->get_args('day'):date("d"); $sop=$this->get_args('sop')?$this->get_args('sop'):'SOP'; Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); Doo::loadModel('statistics'); $statistics=new statistics(); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); $condition=""; if($item=="expenses") $condition=" and Rtype=1 "; elseif ($item=="receipts") $condition=" and Rtype=0 "; elseif ($item=="remits") $condition=" and Rtype=2 "; $sopString=""; $dateCondition=" and Year(executeDate) =".$year; if($moth!='MONTH'){ $dateCondition=" and Year(executeDate) =".$year." and Month(executeDate) = ".$moth; } if($day!='DAY') $dateCondition=" and Year(executeDate) =".$year." and Month(executeDate) = ".$moth." and day(executeDate)=".$day; if ($sop!='SOP') $sopString=" and staff=".$sop; $noPassSum=$receipt->receiptByYear($year,$this->staff[0]['sid']); $receiptList=$receipt->find(array('where'=>' (status=8 or status=9 )'.$condition.$dateCondition.$sopString,'desc'=>'rid','asArray'=>true)); //员工筛选 $receiptList2=$receipt->find(array('where'=>' (status=8 or status=9 )'.$condition.$dateCondition,'desc'=>'rid','asArray'=>true)); $sopStaff=array(); foreach ($receiptList2 as $key=>$value){ $staffDetail=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $sopStaff[$value['staff']]=$staffDetail['username']; } $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; } //print_r($sopStaff); $mothHtml=""; for($i=1;$i<=12;$i++){ if($moth==$i) $mothHtml.=''; else $mothHtml.=''; } $dayHtml=""; if ($day!="DAY"||$moth!="MONTH"){ for($i = 1; $i <= 31; $i ++) { if($day==$i) $dayHtml.=''; else $dayHtml.=''; } } $sopHtml=""; foreach ($sopStaff as $key=>$value){ if($sop==$key) $sopHtml.=''; else $sopHtml.=''; } $data['sopHtml']=$sopHtml; $data['dayHtml']=$dayHtml; $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='implement'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $data['item']=$item; $data['year']=$year; $data['moth']=$moth; $data['day']=$day; $data['sop']=$sop; $this->render ( "/admin/hisImplement", $data ); } function ajaxExamine(){ $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; Doo::loadModel('receipt'); $receipt=new receipt(); if (!empty($rid)){ $rLRes=$receipt->find(array('where'=>'status=2 and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' ) and rid!='.$rid ,'asArray'=>true)); echo json_encode(array('status'=>1,'receipt'=>$rLRes[0]));die; } echo json_encode(array('status'=>0,'receipt'=>array()));die; } function myReceipt(){ //all approval past withdraw $item=isset($this->params['item'])?$this->params['item']:""; if(empty($item)) $item=$this->get_args('item')?$this->get_args('item'):""; $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $moth=$this->get_args('moth')?$this->get_args('moth'):""; Doo::loadModel('receipt'); $receipt=new receipt(); //pre-loaded if(!empty($item)&&($item=="past"||$item=="withdraw")){ //have cache $path=SITE_PATH.$this->MYREVEIPTCACHEPATH.$item."_".$year.".htmls"; if(!empty($moth))//yearPage $path=SITE_PATH.$this->MYREVEIPTCACHEPATH.$item."_".$year."_".$moth.".htmls"; $this->showCache($path); } Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('verify'); Doo::loadModel('statistics'); $statistics=new statistics(); $verify=new verify(); Doo::loadModel('staff'); $staff=new staff(); $condition=" and status!=0 "; if($item=="approval") $condition=" and status=2 "; elseif ($item=="withdraw") $condition=" and status=3 "; elseif ($item=="past") $condition=" and status=1 "; elseif ($item=="whdw") $condition=" and status=4 "; $dateCondition=" and Year(date) =".$year; if(!empty($moth)){ $dateCondition=" and Year(date) =".$year." and Month(date) = ".$moth; $stList=$statistics->getOne(array('select'=>'rePrice ,agPrice','where'=>' staff='.$this->staff[0]['sid'].$dateCondition,'asArray'=>true)); }else $stList=$statistics->statisticsByYear($year,$this->staff[0]['sid']); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $noPassSum=$receipt->receiptByYear($year,$this->staff[0]['sid']); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice']-$noPassSum['sum'])); $receiptList=$receipt->find(array('where'=>'staff='.$this->staff[0]['sid'].$condition.$dateCondition,'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; } //print_r($receiptList);die; $mothHtml=""; for($i=1;$i<=12;$i++){ if($moth==$i) $mothHtml.=''; else $mothHtml.=''; } $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='receipt'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $data['item']=$item; $data['year']=$year; if(!empty($item)&&($item=="past"||$item=="withdraw")){ //sufficient condition to generate cache if(empty($moth)&&($yearfind(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=2 or status=4) and Year(date) ='.$year,'asArray'=>true)); if(empty($receiptList)){ //generated files ob_start(); $this->render ( "/admin/saea_myList", $data ); $this->cacheFile($path);die; // $content = ob_get_contents(); // $fp = fopen($path, "w"); // fwrite($fp, $content); // fclose($fp); } }elseif (!empty($moth)&&($year<=date("Y"))&&($mothfind(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=2 or status=4) and Year(date) ='.$year.' and Month(date) ='.$moth,'asArray'=>true)); if(empty($receiptList)){ //generated files ob_start(); $this->render ( "/admin/saea_myList", $data ); $this->cacheFile($path);die; } } } $this->render ( "/admin/saea_myList", $data ); } function saeaCreate(){ Doo::loadModel('accountItem'); Doo::loadModel('verify'); Doo::loadModel('receipt'); Doo::loadModel('L_category'); $lCategory=new L_category(); $receipt=new receipt(); $verify=new verify(); $accountItem=new accountItem(); Doo::loadModel("role"); $role=new role(); $acItem=$accountItem->find(array('asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } $data['category']=$lCategory->find(array('asArray'=>true)); $data['veList']=$veList; $data['acItem']=$acItem; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saea_create", $data ); } function addReceipt(){ //include Doo::conf()->BASE_PATH.'diagnostic/debug.php'; $agency=$this->get_args('agency'); $travel=$this->get_args('travel'); $train=$this->get_args('train'); $other=$this->get_args('other'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; $enclosurName=$this->get_args('enclosurName')?$this->get_args('enclosurName'):""; if(!empty($verify)&&!empty($cid)&&!empty($explanation)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('enclosur'); Doo::loadModel('execute'); $execute=new execute(); $executeDetail=$execute->getOne(array('where'=>'mold="报销单执行人"','asArray'=>true)); // $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true)); // if(!empty($receiptDetail)) // return "/referReceipt/".$receiptDetail['rid']; $aItem=$accountItem->find(array('asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; foreach ($aItem as $key=>$value){ if ($value['category']==$this->AGENCY){ if (is_numeric($agency[$ag])&&$agency[$ag]!=0){ array_push($accountJson[$this->AGENCY], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($agency[$ag], 2, '.', ''))); $sum+=$agency[$ag];$agencySum+=$agency[$ag]; } $ag++; } if($value['category']==$this->TRAVEL){ if (is_numeric($travel[$tr])&&$travel[$tr]!=0){ array_push($accountJson[$this->TRAVEL], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($travel[$tr], 2, '.', ''))); $sum+=$travel[$tr];$travelSum+=$travel[$tr]; } $tr++; } if($value['category']==$this->TRAIN){ if (is_numeric($train[$ta])&&$train[$ta]!=0){ array_push($accountJson[$this->TRAIN], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($train[$ta], 2, '.', ''))); $sum+=$train[$ta];$trainSum+=$train[$ta]; } $ta++; } if($value['category']==$this->OTHER){ if (is_numeric($other[$ot])&&$other[$ot]!=0){ array_push($accountJson[$this->OTHER], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($other[$ot], 2, '.', ''))); $sum+=$other[$ot];$otherSum+=$other[$ot]; } $ot++; } } $accountJson['cSum']=array('agencySum'=>number_format($agencySum, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //报销单 $receipt->accountItem=json_encode($accountJson); $receipt->staff=$this->staff[0]['sid']; $receipt->sum=number_format($sum, 2, '.', ''); $receipt->date=date("Y-m-d"); $receipt->cid=$cid; $receipt->status=5; //修改审批流程加入角色 $receipt->verify=$verify; $receipt->executeCopy=$executeDetail['staff']; $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999); $receipt->explanation=$explanation; $rid=$receipt->insert(); //附件 if (!empty($enclosurName)){ $enclosurArray=explode('-', $enclosurName); foreach ($enclosurArray as $value){ $enclosur=new enclosur(); $enclosur->name=$value; $enclosur->rid=$rid; $enclosur->insert(); } //print_r($enclosurArray);die; } //报销详情 foreach ($accountJson[$this->AGENCY] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->AGENCY; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->TRAVEL] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->TRAVEL; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->TRAIN] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->TRAIN; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->OTHER] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->OTHER; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } //return "/referReceipt/".$rid; } return "/saeaBorad"; } function referReceipt(){ //$rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('receipt'); Doo::loadModel('verify'); $verify=new verify(); $receipt=new receipt(); Doo::loadModel('L_category'); $lCategory=new L_category(); Doo::loadModel("role"); $role=new role(); $receiptDetail=$receipt->find(array('where'=>'staff='.$this->staff[0]['sid'].' and status=5 ','asArray'=>true)); if(empty($receiptDetail)) return "/addReceipt"; foreach ($receiptDetail as $key=>$value){ $receiptDetail[$key]['accountItem']=json_decode($value['accountItem'],true); $veList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $v=json_decode($veList['staff']); array_push($v[0], $veList['description']); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; } } $receiptDetail[$key]['staff']=$v; $category=$lCategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptDetail[$key]['category']=$category['title']; } //print_r($receiptDetail); $data['receiptDetail']=$receiptDetail; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaCreate'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saea_confirm", $data ); } function editReceipt(){ //edit status 4 $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; //echo $rid; Doo::loadModel('accountItem'); Doo::loadModel('verify'); Doo::loadModel('receipt'); $receipt=new receipt(); $verify=new verify(); $accountItem=new accountItem(); Doo::loadModel('L_category'); $lCategory=new L_category(); Doo::loadModel("role"); $role=new role(); $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and rid='.$rid.' and (status=5 or status=4)','asArray'=>true)); if(empty($receiptDetail)) return "/saeaCreate"; $acItem=$accountItem->find(array('asArray'=>true)); $veList=$verify->find(array('asArray'=>true)); foreach ($veList as $key=>$value){ $v=json_decode($value['staff']); $list=array(); foreach ($v as $n=>$m){ if ($m['1']=='ROLE'){ $roleInfo=$role->getOne(array('where'=>'rid='.$m[0],'asArray'=>true)); $v[$n][1]=$roleInfo['name']; array_push($list, $roleInfo['name']); }else{ array_push($list, $v[$n][1]); } } $veList[$key]['staff']=implode('>', $list); } //配置编辑信息 $accountItemList=json_decode($receiptDetail['accountItem'],true); foreach ($acItem as $key=>$value){ foreach ($accountItemList[$this->AGENCY] as $k=>$v){ if($acItem[$key]['category']==$this->AGENCY&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->TRAIN] as $k=>$v){ if($acItem[$key]['category']==$this->TRAIN&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->TRAVEL] as $k=>$v){ if($acItem[$key]['category']==$this->TRAVEL&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } foreach ($accountItemList[$this->OTHER] as $k=>$v){ if($acItem[$key]['category']==$this->OTHER&&$acItem[$key]['name']==$v['name']){ $acItem[$key]['price']=$v['price']; } } } $data['category']=$lCategory->find(array('asArray'=>true)); $data['cSum']=$accountItemList['cSum']; $data['sum']=$receiptDetail['sum']; $data['receiptDetail']=$receiptDetail; $data['veList']=$veList; $data['acItem']=$acItem; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='saeaBorad'; $data['verify']=$receiptDetail['verify']; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $data['rid']=$rid; $this->render ( "/admin/saea_edit", $data ); } function updateReceipt(){ $agency=$this->get_args('agency'); $travel=$this->get_args('travel'); $train=$this->get_args('train'); $other=$this->get_args('other'); $verify=$this->get_args('verify')&&is_numeric($this->get_args('verify'))?$this->get_args('verify'):0; $explanation=$this->get_args('explanation')?$this->get_args('explanation'):""; $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0; $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; if(!empty($verify)&&!empty($explanation)){ Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $receipt=new receipt(); Doo::loadModel('execute'); $execute=new execute(); $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and rid='.$rid.' and (status=5 or status=7 or status=4)','asArray'=>true)); if(empty($receiptDetail)) return "/saeaBorad"; if ($receiptDetail['Rtype']==1) $executeDetail=$execute->getOne(array('where'=>'mold="借款费用执行人"','asArray'=>true)); else $executeDetail=$execute->getOne(array('where'=>'mold="报销单执行人"','asArray'=>true)); $aItem=$accountItem->find(array('asArray'=>true)); $accountJson[$this->AGENCY]=$accountJson[$this->TRAVEL]=$accountJson[$this->TRAIN]=$accountJson[$this->OTHER]=array(); $ag=$tr=$ta=$ot=0; $sum=$agencySum=$travelSum=$trainSum=$otherSum=0; foreach ($aItem as $key=>$value){ if ($value['category']==$this->AGENCY){ if (is_numeric($agency[$ag])&&$agency[$ag]!=0){ array_push($accountJson[$this->AGENCY], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($agency[$ag], 2, '.', ''))); $sum+=$agency[$ag];$agencySum+=$agency[$ag]; } $ag++; } if($value['category']==$this->TRAVEL){ if (is_numeric($travel[$tr])&&$travel[$tr]!=0){ array_push($accountJson[$this->TRAVEL], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($travel[$tr], 2, '.', ''))); $sum+=$travel[$tr];$travelSum+=$travel[$tr]; } $tr++; } if($value['category']==$this->TRAIN){ if (is_numeric($train[$ta])&&$train[$ta]!=0){ array_push($accountJson[$this->TRAIN], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($train[$ta], 2, '.', ''))); $sum+=$train[$ta];$trainSum+=$train[$ta]; } $ta++; } if($value['category']==$this->OTHER){ if (is_numeric($other[$ot])&&$other[$ot]!=0){ array_push($accountJson[$this->OTHER], array('aid'=>$value['aid'],'name'=>$value['name'],'price'=>number_format($other[$ot], 2, '.', ''))); $sum+=$other[$ot];$otherSum+=$other[$ot]; } $ot++; } } $accountJson['cSum']=array('agencySum'=>number_format($agencySum, 2, '.', ''),'travelSum'=>number_format($travelSum, 2, '.', ''),'trainSum'=>number_format($trainSum, 2, '.', ''),'otherSum'=>number_format($otherSum, 2, '.', '')); //报销单 $rid=$receipt->rid=$receiptDetail['rid']; $receipt->accountItem=json_encode($accountJson); $receipt->staff=$this->staff[0]['sid']; $receipt->sum=number_format($sum, 2, '.', ''); $receipt->date=date("Y-m-d"); $receipt->cid=$cid; if (($receiptDetail['status']!=4)){ if ($receiptDetail['Rtype']==1) $receipt->status=7; else $receipt->status=5; } $receipt->verify=$verify; $receipt->executeCopy=$executeDetail['staff']; $receipt->explanation=$explanation; $receipt->update(); $receiptDetail=new receiptDetail(); $receiptDetail->delete(array('where'=>'rid='.$rid)); //报销详情 foreach ($accountJson[$this->AGENCY] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->AGENCY; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->TRAVEL] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->TRAVEL; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->TRAIN] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->TRAIN; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } foreach ($accountJson[$this->OTHER] as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->staff=$this->staff[0]['sid']; $receiptDetail->item=$value['name']; $receiptDetail->itemCategory=$this->OTHER; $receiptDetail->price=number_format($value['price'], 2, '.', ''); $receiptDetail->date=date("Y-m-d"); $receiptDetail->cid=$cid; $receiptDetail->rid=$rid; $receiptDetail->status=4; $receiptDetail->insert(); } //return "/referReceipt/".$rid; } return "/saeaBorad"; } function approvedReceipt(){ $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; Doo::loadModel('receipt'); Doo::loadModel('receiptDetail'); $receipt=new receipt(); $receiptDetail=new receiptDetail(); Doo::loadModel('statistics'); Doo::loadModel('itemStatistics'); $statistics=new statistics(); $itemStatistics=new itemStatistics(); Doo::loadModel("verify"); $verify=new verify(); //审批状态的判定 $receiptDetailList=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and rid='.$rid.' and (status=4 or status=5 or status=7)','asArray'=>true)); if(empty($receiptDetailList)) return "/saeaBorad"; $verifyDetail=$verify->getOne(array('where'=>' vid ='.$receiptDetailList['verify'],'asArray'=>true)); $verifyDetail=json_decode($verifyDetail['staff'],true); if (empty($receiptDetailList['nowStaff'])){ $nowStaff="";$nowStaffList=array(); if ($verifyDetail[0][1]=='ROLE'){ $vStaffString=json_decode($verifyDetail[0][3]); foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); array_push($nowStaffList, $staffK[0]); } $nowStaff=implode(',', $nowStaffList); }else{ $nowStaff=$verifyDetail[0][0]; } $receipt->nowStaff=$nowStaff; } // echo $nowStaff; // print_r($verifyDetail);die; $receipt->rid=$receiptDetailList['rid']; $receipt->date=date("Y-m-d"); $receipt->status=2; $receipt->update(); $receiptDetail->status=2; $receiptDetail->update(array('where'=>'rid='.$receiptDetailList['rid'])); Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); Doo::loadModel("verify"); $verify=new verify(); $receiptInfo=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); $vr=$verify->getOne(array('where'=>'vid='.$receiptInfo['verify'],'asArray'=>true)); $jd=json_decode($vr['staff']);$roleId=0; foreach ($jd as $key=>$value){ if ($value[1]=='ROLE'){ $pos = strpos($value[3], $this->staff[0]['sid']); if ($pos !== false) { $roleId=$value[0]; } } } //审批日志 //echo $roleId;die; if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion='提交审批'; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=2; $receiptLog->rid=$rid; $receiptLog->insert(); //statistics item $dateArray=explode("-", $receiptDetailList['date']); $dateCondition=" and Year(date) =".$dateArray[0]." and Month(date) = ".$dateArray[1]; $accountItem=json_decode($receiptDetailList['accountItem'],true); //print_r($accountItem['cSum']['agencySum']);die; // foreach ($accountItem['cSum'] as $key=>$value){ // if($key=="agencySum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->AGENCY.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->AGENCY; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // }elseif($key=="travelSum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->TRAVEL.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->TRAVEL; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // }elseif($key=="trainSum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->TRAIN.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->TRAIN; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // }elseif($key=="otherSum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->OTHER.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->OTHER; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // } // } $stat=$statistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].$dateCondition,'asArray'=>true)); if(empty($stat)){ $statistics->date=date("Y-m-d"); $statistics->cid=$this->staff[0]['cid']; $statistics->staff=$this->staff[0]['sid']; $statistics->agPrice=0; $statistics->rePrice=$accountItem['cSum']['agencySum']+$accountItem['cSum']['travelSum']+$accountItem['cSum']['trainSum']+$accountItem['cSum']['otherSum']; $statistics->insert(); }else{ $statistics->rePrice=$stat['rePrice']+$accountItem['cSum']['agencySum']+$accountItem['cSum']['travelSum']+$accountItem['cSum']['trainSum']+$accountItem['cSum']['otherSum']; $statistics->update(array('where'=>'sid='.$stat['sid'])); } return "/expenses"; } function approval(){ $status=isset($this->params['status'])?$this->params['status']:''; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')?$this->get_args('status'):2; $vidList=array(); $button=0; Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('L_category'); $Lcategory=new L_category(); //user verify ID $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; /* */ $dateCondition=" and Year(date) =".$year; if(!empty($month)) $dateCondition=" and Year(date) =".$year." and Month(date) = ".$month; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $cateCondition="";$staffCondition="";$approvalCondition=""; if (!empty($cid)) $cateCondition=' and cid='.$cid; if(!empty($sid)){ $staffCondition=' and staff='.$sid; $cateCondition=""; } // elseif($status==1){ // $approvalCondition=' and staff='.$this->staff[0]['sid']; // } if($status==2){ //查找角色审批人 $approvalCondition=' and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' ) '; } $ap=""; if($status==4){ $ap=4;$status=2; $approvalCondition=' and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%" '; } if($status==5){ $status=4;$ap=5; } //echo $vid; //get Receipt By verifyID status 2 .$approvalCondition //$receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition,'desc'=>'rid','asArray'=>true)); $receiptList=$receipt->find(array('where'=>' status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition ,'desc'=>'rid','asArray'=>true)); //echo ' status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition; $Locate=0; if($ap==4) $status=4; elseif ($ap==5) $status=5; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); foreach ($verifyList as $k=>$v){ //init verifyStaff $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if ($v[0]==$this->staff[0]['sid']){ $verifyList[$k]['status']=4; $button=4; } }else{ $flag=true; foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } // elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;} // if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;} // if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;} } if($flag){//检测可编辑 if($v[0]==$this->staff[0]['sid']){ $verifyList[$k]['status']=4;$button=4; } } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; } //print_r($receiptList);die; //$data['verifyDetail']=$verifyDetail; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($receiptList); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; $data['ap']=$ap; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approval'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saea_reportList", $data ); } function approvalDetails(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('enclosur'); $enclosur=new enclosur(); $vidList=array(); $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $ap=0; $receiptList=$receipt->find(array('where'=>'rid ='.$rid,'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0;$button=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); //print_r($verifyList); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']){ $roleId=$v[0]; } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } //print_r($roleArray); $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $button=4;$flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ $endKey=key($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ $button=4; $verifyList[$k]['status']=4; } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; } $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } //获取审批日志 Doo::loadModel('receiptLog'); $receiptLog=new receiptLog(); $rlList=array(); $rlInfo=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=4','asArray'=>true)); $tijdate=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=2','asc'=>'rlid','asArray'=>true)); if (!empty($rlInfo)){ $rlList=$receiptLog->find(array('where'=>'rid='.$rid,'asc'=>'rlid','asArray'=>true)); } $receiptList[0]['rlList']=$rlList; $enclosurList=$enclosur->find(array('where'=>'rid='.$rid,'asArray'=>true)); $enclosurHtml=''; foreach ($enclosurList as $value){ $enclosurHtml.=''.$value['name'].''; } $data['enclosurHtml']=$enclosurHtml; $data['rolename']=$rolename['name']; $data['datetij']=$tijdate['date']; $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($receiptList); $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; $data['status']=0; if ($receiptList[0]['status']!=1&&$receiptList[0]['status']!=3){ $ap=4; }else $data['status']=$receiptList[0]['status']; if ($receiptList[0]['status']==4){ $data['status']=5; $ap=0; } $data['ap']=$ap; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approval'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaReportListReport", $data ); } function approvalEdi(){ $rid=isset($this->params['rid'])?$this->params['rid']:0; $status=isset($this->params['status'])?$this->params['status']:''; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')?$this->get_args('status'):2; $vidList=array(); $button=0; Doo::loadModel('verify'); Doo::loadModel('receipt'); Doo::loadModel('staff'); $staff=new staff(); $receipt=new receipt(); $verify=new verify(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('enclosur'); $enclosur=new enclosur(); //user verify ID $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $ap=""; if($status==4){ $ap=4;$status=2; } //get Receipt By verifyID status 2 $receiptList=$receipt->find(array('where'=>'rid ='.$rid,'desc'=>'rid','asArray'=>true)); $Locate=0;$roleId=0; if($ap==4) $status=4; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; //检测编辑状态 $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); // print_r($verifyList); // // if (empty($verifyStaff)){ // if ($this->staff[0]['sid']==$verifyStaff[0][0]){ // $verifyList[0]['status']=4;$button=4; // } // // }else{ // // } // die; // $a=array("a"=>"red","b"=>"green","c"=>"blue"); // echo array_search("green",$a); // Doo::loadModel('role'); $role=new role(); //print_r($verifyList); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']){ $roleId=$v[0]; } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } //print_r($roleArray); $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $button=4;$flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ $endKey=key($verifyStaff); if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ $button=4; $verifyList[$k]['status']=4; } } //print_r($endStaffArray);die; // if (empty($verifyStaff)){ // if ($this->staff[0]['sid']==$verifyStaff[0][0]){ // $verifyList[$k]['status']=4;$button=4; // } // // }else{ // // } // if($flag){//检测可编辑 // if($v[0]==$this->staff[0]['sid']){ // $verifyList[$k]['status']=4;$button=4; // } // } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } // print_r($roleArrayCopy); // echo $roleKey; foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } // if ($KOP) // array_splice($verifyList,$roleKey,1,$roleArray); //print_r($verifyList); $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; } //$data['verifyDetail']=$verifyDetail; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } //获取审批日志 Doo::loadModel('receiptLog'); $receiptLog=new receiptLog(); $rlList=array(); $rlInfo=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=4','asArray'=>true)); $tijdate=$receiptLog->getOne(array('where'=>'rid='.$rid.' and status=2','asc'=>'rlid','asArray'=>true)); if (!empty($rlInfo)){ $rlList=$receiptLog->find(array('where'=>'rid='.$rid,'asc'=>'rlid','asArray'=>true)); } $receiptList[0]['rlList']=$rlList; $enclosurList=$enclosur->find(array('where'=>'rid='.$rid,'asArray'=>true)); $enclosurHtml=''; foreach ($enclosurList as $value){ $enclosurHtml.=''.$value['name'].''; } $data['enclosurHtml']=$enclosurHtml; $data['rolename']=$rolename['name']; $data['datetij']=$tijdate['date']; $data['mothHtml']=$mothHtml; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($receiptList); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; $data['ap']=$ap; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approval'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaReportListReport", $data ); } function remittance(){ $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('staff'); $staff=new staff(); $dateCondition=" and Year(pastDate) =".$year; if(!empty($month)) $dateCondition=" and Year(pastDate) =".$year." and Month(pastDate) = ".$month; //get Receipt By verifyID status 1 $receiptList=$receipt->find(array('select'=>'sum(sum) as sum,staff,pastDate','where'=>' status=1'.$dateCondition,'desc'=>'pastDate','groupby'=>'staff,pastDate','asArray'=>true)); $dateList=$receipt->find(array('select'=>'pastDate,verifyStaff','where'=>' status=1'.$dateCondition,'desc'=>'pastDate','groupby'=>'pastDate','asArray'=>true)); $dataList=array(); foreach ($dateList as $d=>$a){ $dataList[$a['pastDate']]=array();$daySum=0; foreach ($receiptList as $key=>$value){ if($a['pastDate']==$value['pastDate']){ $oderList=$receipt->find(array('select'=>'receiptOrder','where'=>' status=1 and staff='.$value['staff'].' and pastDate=\''.$a['pastDate'].'\'','asArray'=>true)); $list=array();$html=""; foreach ($oderList as $v){ array_push($list, $v['receiptOrder']); $html.=' '.$v['receiptOrder'].'、'; } $receiptList[$key]['receiptOrder']=$html; //$receiptList[$key]['receiptOrder']=implode(",", $list); $sinfo=$staff->getOne(array('select'=>'username ','where'=>' sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['username']=$sinfo['username']; $daySum+=$value['sum']; array_push($dataList[$a['pastDate']], $receiptList[$key]); } $dataList[$a['pastDate']]['9999999']=number_format($daySum,2); //$dataList[$a['pastDate']]['8888888']=json_decode($a['verifyStaff'],true); } } //print_r($dataList); $data['dataList']=$dataList; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } $data['year']=$year; $data['mothHtml']=$mothHtml; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approval'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/saeaReportListPay", $data ); } function revocationAdjustment(){ $sid=isset($this->params['sid'])&&is_numeric($this->params['sid'])?$this->params['sid']:0; $price=isset($this->params['price'])&&is_numeric($this->params['price'])?$this->params['price']:-99999; $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; //echo $price;die; if ((!empty($sid))&&($price!=-99999)&&(!empty($rid))){ Doo::loadModel('receipt'); $receipt=new receipt(); $receiptDetail=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); if (empty($receiptDetail['reviseDetail'])) return "/approval"; $reviseDetail=json_decode($receiptDetail['reviseDetail'],true); $RD=array(); foreach ($reviseDetail as $key=>$value){ if ($value['price']==$price&&$value['sid']==$sid) continue; array_push($RD, $value); } $reviseDetailString=json_encode($RD); $receipt->reviseDetail=$reviseDetailString; $receipt->sum=$receiptDetail['sum']-$price; $receipt->revisePrice=$receiptDetail['revisePrice']-$price; $receipt->update(array('where'=>'rid='.$rid)); } //approvalEdi/37 return "/approvalEdi/".$rid; } function updateApprovalReceipt(){ $opinion=$this->get_args('opinion')?$this->get_args('opinion'):""; $status=$this->get_args('status')&&is_numeric($this->get_args('status'))?$this->get_args('status'):0; $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; $Locate=$this->get_args('Locate')&&is_numeric($this->get_args('Locate'))?$this->get_args('Locate'):0; if(!empty($rid)){ Doo::loadModel("verify"); $verify=new verify(); Doo::loadModel("receiptDetail"); $receiptDetailObj=new receiptDetail(); Doo::loadModel("itemStatistics"); Doo::loadModel("statistics"); $statistics=new statistics(); $itemStatistics=new itemStatistics(); Doo::loadModel("receipt"); $receipt=new receipt(); $receiptDetail=$receipt->getOne(array('where'=>'rid='.$rid.' and status=2 ','asArray'=>true)); if (empty($receiptDetail)) return "/approval"; $verifyDetail=$verify->getOne(array('where'=>' vid ='.$receiptDetail['verify'],'asArray'=>true)); $verifyString=$verifyDetail['staff']; $verifyDetail=json_decode($verifyDetail['staff'],true); $verifyStaff=json_decode($receiptDetail['verifyStaff'],true); if(empty($opinion)){ if ($status==3) $opinion="终止"; else $opinion="同意支付"; } $nowStaff=0;$nowStaffList=array(); if(empty($verifyStaff)){ //还需加入是否已经进入角色审批 if ($verifyDetail[0][1]=='ROLE'){ $vStaffString=json_decode($verifyDetail[0][3]); foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); if ($staffK[0]!=$this->staff[0]['sid']) array_push($nowStaffList, $staffK[0]); } //print_r($verifyDetail); //die; if (!empty($nowStaffList)){ $nowStaff=implode(',', $nowStaffList); $verifyStaff=array($this->staff[0]['sid']."_R"=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[0][0],'ROLE'=>1)); }else{ $nowStaff=$verifyDetail[1][0]; $verifyStaff=array($this->staff[0]['sid']."_R"=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[1][0])); } }else{ if ($verifyDetail[1][1]=='ROLE'){ $vStaffString=json_decode($verifyDetail[1][3]); //echo "dd"; foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); array_push($nowStaffList, $staffK[0]); } $nowStaff=implode(',', $nowStaffList); $verifyStaff=array($this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[1][0],'ROLE'=>1)); }else{ $nowStaff=$verifyDetail[1][0]; $verifyStaff=array($this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$verifyDetail[1][0])); } } if($status==3) $verifyStaff=array('final'=>$status,$this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status)); $vStaffString=json_encode($verifyStaff); $receipt->nowStaff=$nowStaff; $receipt->verifyStaff=$vStaffString; }else{ $VS=end($verifyStaff); //非角色审批 if (!array_key_exists($this->staff[0]['sid'],$verifyStaff)&&!isset($VS['ROLE'])){ $nextStaff=0;$roleSTF=false; foreach ($verifyDetail as $key=>$value){ if ($value[0]==$this->staff[0]['sid']&&$value[1]!='ROLE'){ if (isset($verifyDetail[$key+1])){ $nextStaff=$verifyDetail[$key+1][0]; if ($verifyDetail[$key+1][1]=='ROLE') $roleSTF=true; } break; } } if (!$roleSTF){ $nowStaff=$nextStaff; $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff); }else{ //获取角色下的所有用户ID $nowStaffList=array(); foreach ($verifyDetail as $vfk){ if ($vfk[1]=='ROLE'){ $vStaffString=json_decode($vfk[3]); foreach ($vStaffString as $key=>$value){ $staffK=explode("_", $value); array_push($nowStaffList, $staffK[0]); } } } $nowStaff=implode(',', $nowStaffList); $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff,'ROLE'=>0); } if($status==3){ $verifyStaff['final']=$status; $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status); } $vStaffString=json_encode($verifyStaff); $receipt->nowStaff=$nowStaff; $receipt->verifyStaff=$vStaffString; } //角色审批 if (isset($VS['ROLE'])){ //找出角色人 当前审批角色组 $verifyJSStaff=array();$nowStaffList2=array(); foreach ($verifyDetail as $key=>$value){ if($value[1]=='ROLE'&&$value[0]==$VS['nextStaff']){ $verifyJSStaff=json_decode($value[3]); foreach ($verifyJSStaff as $m){ $staffK=explode("_", $m); array_push($nowStaffList2, $staffK[0]); } // print_r($nowStaffList2); } } $RoleVerifyStaff=array(); foreach ($verifyStaff as $key=>$value){ if (isset($value['ROLE'])&&$value['ROLE']==1&&$VS['nextStaff']==$value['nextStaff']){ foreach ($nowStaffList2 as $m) { if ($key==$m."_R") $RoleVerifyStaff[$key]=$value; } } } // print_r($verifyStaff); // print_r($nowStaffList2); // print_r($RoleVerifyStaff); //if (!array_key_exists($this->staff[0]['sid'],$RoleVerifyStaff)){ //print_r($verifyJSStaff); $jsCount=count($verifyJSStaff)-1;//echo $jsCount;die; if ($jsCount==count($RoleVerifyStaff)){ //或者 //下一个审批人ID $nextStaff=0;$falg=false; foreach ($verifyDetail as $key=>$value){ if ($value[0]==$VS['nextStaff']&&$value[1]=='ROLE'){ if (isset($verifyDetail[$key+1])&&$verifyDetail[$key+1][1]=='ROLE'){ $falg=true; $vStaffString=json_decode($verifyDetail[$key+1][3]);$nowStaffList=array(); foreach ($vStaffString as $v){ $staffK=explode("_", $v); array_push($nowStaffList, $staffK[0]); } $nowStaff=implode(',', $nowStaffList); $nextStaff=$verifyDetail[$key+1][0]; }elseif(isset($verifyDetail[$key+1])){ $nextStaff=$verifyDetail[$key+1][0]; $nowStaff=$nextStaff; }else $nowStaff=''; break; } } if ($falg) $verifyStaff[$this->staff[0]['sid'].'_R']=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff,'ROLE'=>1); else $verifyStaff[$this->staff[0]['sid'].'_R']=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$nextStaff); // print_r($verifyStaff); // echo $nowStaff;die; }else{ //进入下一个角色或者审批人 /* */ // echo str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']); // $nowStaff=str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']); $verifyStaff[$this->staff[0]['sid'].'_R']=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status,'nextStaff'=>$VS['nextStaff'],'ROLE'=>1); // print_r($verifyStaff); // die; } if($status==3){ $verifyStaff['final']=$status; $verifyStaff[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status); } $vStaffString=json_encode($verifyStaff); $receipt->verifyStaff=$vStaffString; $receipt->nowStaff=$nowStaff; //die; //} // print_r($verifyStaff); // die; } //print_r($verifyStaff);die; } //print_r($verifyDetail); $roleKey=0;$roleId=0;$verifyDetailCopy=array(); foreach ($verifyDetail as $k=>$v){ if ($v[1]=='ROLE'){ $roleId=$v[0]; $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $exp=array(0=>$staffID[0],1=>$staffID[1]); array_push($roleArray, $exp); } $verifyDetailCopy[$v[0]]=$roleArray; } } //print_r($verifyDetail); foreach ($verifyDetailCopy as $k=>$v){ foreach ($verifyDetail as $m=>$n){ if ($n[0]==$k){ array_splice($verifyDetail,$m,1,$v); } } } // die; // if (!empty($roleArray)) // array_splice($verifyDetail,$roleKey,1,$roleArray); // echo $roleId; // print_r($verifyStaff); // print_r($verifyDetail); // die; Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); //审批日志 if (!isset($verifyStaff['final'])){ if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion=$opinion; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=1; $receiptLog->rid=$rid; $receiptLog->insert(); } if (isset($verifyStaff['final'])){//rDetail $receipt->verifyBreakup=$verifyString; $receipt->status=3; $receiptDetailObj->status=3; $receiptDetailObj->update(array('where'=>'rid='.$rid)); if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion=$opinion; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=3; $receiptLog->rid=$rid; $receiptLog->insert(); }elseif(count($verifyStaff)==count($verifyDetail)){//要修改 角色的数量 $receipt->status=1;$reviseSum=0; $receipt->verifyBreakup=$verifyString; if(!empty($receiptDetail['reviseDetail'])){//statistics item rDetail $reviseDetail=json_decode($receiptDetail['reviseDetail'],true); foreach ($reviseDetail as $key=>$value){ $receiptDetailObj=new receiptDetail(); $receiptDetailObj->staff=$receiptDetail['staff'];// $this->staff[0]['sid']; $receiptDetailObj->item=$value['description']; $receiptDetailObj->itemCategory="报销金额调整"; $receiptDetailObj->price=$value['price']; $receiptDetailObj->date=$receiptDetail['date']; $receiptDetailObj->cid=$this->staff[0]['cid']; $receiptDetailObj->rid=$rid; $receiptDetailObj->status=1; $receiptDetailObj->insert(); $reviseSum+=$value['price']; } $itemStatistics=new itemStatistics(); $itemStatistics->cid=$receiptDetail['cid'];//$this->staff[0]['cid']; $itemStatistics->staff=$receiptDetail['staff'];//$this->staff[0]['sid']; $itemStatistics->price=$reviseSum; $itemStatistics->itemCategory="报销金额调整"; $itemStatistics->date=$receiptDetail['date']; $itemStatistics->insert(); } $receiptDetailObj=new receiptDetail(); $receiptDetailObj->status=1; $receiptDetailObj->pastDate=date("Y-m-d"); $receiptDetailObj->update(array('where'=>'rid='.$rid)); $dateArray=explode("-", $receiptDetail['date']); $dateCondition=" and Year(date) =".$dateArray[0]." and Month(date) = ".$dateArray[1]; $stat=$statistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].$dateCondition,'asArray'=>true)); if(empty($stat)){ $statistics->date=$receiptDetail['date']; $statistics->cid=$receiptDetail['cid'];//$this->staff[0]['cid']; $statistics->staff=$receiptDetail['staff'];//$this->staff[0]['sid']; $statistics->agPrice=$receiptDetail['sum']; $statistics->rePrice=$reviseSum; $statistics->insert(); }else{ $statistics->agPrice=$stat['agPrice']+$receiptDetail['sum']; $statistics->rePrice=$stat['rePrice']+$reviseSum; $statistics->update(array('where'=>'sid='.$stat['sid'])); } $dateArray=explode("-", $receiptDetail['date']); $dateCondition=" and Year(date) =".$dateArray[0]." and Month(date) = ".$dateArray[1]; $accountItem=json_decode($receiptDetail['accountItem'],true); foreach ($accountItem['cSum'] as $key=>$value){ if($key=="agencySum"){ $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->AGENCY.'"'.$dateCondition,'asArray'=>true)); if(empty($iStatistics)){ $itemStatistics->cid=$receiptDetail['cid'];; $itemStatistics->staff=$receiptDetail['staff']; $itemStatistics->price=$value; $itemStatistics->itemCategory=$this->AGENCY; $itemStatistics->date=$receiptDetail['date']; $itemStatistics->insert(); }else{ if (!empty($value)){ $itemStatistics->price=$value+$iStatistics['price']; $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); } } }elseif($key=="travelSum"){ $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->TRAVEL.'"'.$dateCondition,'asArray'=>true)); if(empty($iStatistics)){ $itemStatistics->cid=$receiptDetail['cid']; $itemStatistics->staff=$receiptDetail['staff']; $itemStatistics->price=$value; $itemStatistics->itemCategory=$this->TRAVEL; $itemStatistics->date=$receiptDetail['date']; $itemStatistics->insert(); }else{ if (!empty($value)){ $itemStatistics->price=$value+$iStatistics['price']; $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); } } }elseif($key=="trainSum"){ $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->TRAIN.'"'.$dateCondition,'asArray'=>true)); if(empty($iStatistics)){ $itemStatistics->cid=$receiptDetail['cid']; $itemStatistics->staff=$receiptDetail['staff']; $itemStatistics->price=$value; $itemStatistics->itemCategory=$this->TRAIN; $itemStatistics->date=$receiptDetail['date']; $itemStatistics->insert(); }else{ if (!empty($value)){ $itemStatistics->price=$value+$iStatistics['price']; $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); } } }elseif($key=="otherSum"){ $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->OTHER.'"'.$dateCondition,'asArray'=>true)); if(empty($iStatistics)){ $itemStatistics->cid=$receiptDetail['cid']; $itemStatistics->staff=$receiptDetail['staff']; $itemStatistics->price=$value; $itemStatistics->itemCategory=$this->OTHER; $itemStatistics->date=$receiptDetail['date']; $itemStatistics->insert(); }else{ if (!empty($value)){ $itemStatistics->price=$value+$iStatistics['price']; $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); } } } } $receipt->pastDate=date("Y-m-d"); } $receipt->update(array('where'=>' rid = '.$rid)); return "/approvalExpenses/2"; } } function expensesRetreats(){ $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; if (!empty($rid)){ //操作记录 Doo::loadModel("receipt"); $receipt=new receipt(); Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); Doo::loadModel("verify"); $verify=new verify(); $receiptInfo=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); $vr=$verify->getOne(array('where'=>'vid='.$receiptInfo['verify'],'asArray'=>true)); $jd=json_decode($vr['staff']);$roleId=0; foreach ($jd as $key=>$value){ if ($value[1]=='ROLE'){ $pos = strpos($value[3], $this->staff[0]['sid']); if ($pos !== false) { $roleId=$value[0]; } } } //审批日志 //echo $roleId;die; if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion='撤回'; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=4; $receiptLog->rid=$rid; $receiptLog->insert(); $receipt->status=4; $receipt->update(array('where'=>'rid='.$rid)); } //echo "ddd"; return '/approvalExpenses'; } function updateCheReceipt(){ $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0; if (!empty($rid)){ //操作记录 Doo::loadModel("receipt"); $receipt=new receipt(); Doo::loadModel("receiptLog"); $receiptLog=new receiptLog(); Doo::loadModel("verify"); $verify=new verify(); $receiptInfo=$receipt->getOne(array('where'=>'rid='.$rid,'asArray'=>true)); $vr=$verify->getOne(array('where'=>'vid='.$receiptInfo['verify'],'asArray'=>true)); $jd=json_decode($vr['staff']);$roleId=0; foreach ($jd as $key=>$value){ if ($value[1]=='ROLE'){ $pos = strpos($value[3], $this->staff[0]['sid']); if ($pos !== false) { $roleId=$value[0]; } } } //审批日志 //echo $roleId;die; if (!empty($roleId)){ Doo::loadModel("role"); $role=new role(); $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); $receiptLog->rolename=$roleInfo['name']; } $receiptLog->username=$this->staff[0]['username']; $receiptLog->uid=$this->staff[0]['sid']; $receiptLog->date=date("Y-m-d"); $receiptLog->opinion='撤回'; $receiptLog->img=$this->staff[0]['avatar']; $receiptLog->status=4; $receiptLog->rid=$rid; $receiptLog->insert(); $receipt->status=4; $receipt->update(array('where'=>'rid='.$rid)); } //echo "ddd"; return '/saeaBorad'; } function revisePrice(){ $description=$this->get_args('description')?$this->get_args('description'):""; $price=$this->get_args('price')&&is_numeric($this->get_args('price'))?$this->get_args('price'):0; $rid=$this->get_args('rid')&&is_numeric($this->get_args('rid'))?$this->get_args('rid'):0; //echo $price;die; if (!empty($rid)){ Doo::loadModel("receipt"); $receipt=new receipt(); $receiptDetail=$receipt->getOne(array('where'=>'rid='.$rid.' and status=2 ','asArray'=>true)); if (empty($receiptDetail)) return "/approval"; $reviseDetail=array(); if (empty($receiptDetail['reviseDetail'])){ array_push($reviseDetail, array('sid'=>$this->staff[0]['sid'],'name'=>$this->staff[0]['username'],'description'=>$description,'price'=>$price)); $reviseDetailString=json_encode($reviseDetail); $receipt->reviseDetail=$reviseDetailString; $receipt->revisePrice=$price; $receipt->sum=bcadd($receiptDetail['sum'],$price,2); }else{ $reviseDetail=json_decode($receiptDetail['reviseDetail'],true); array_push($reviseDetail,array('sid'=>$this->staff[0]['sid'],'name'=>$this->staff[0]['username'],'description'=>$description,'price'=>$price)); $reviseDetailString=json_encode($reviseDetail); $receipt->reviseDetail=$reviseDetailString; $receipt->revisePrice=round($price,2)+round($receiptDetail['revisePrice'],2); $receipt->sum=bcadd($receiptDetail['sum'],$price,2); } $receipt->update(array('where'=>'rid='.$rid)); } return '/approvalEdi/'.$rid; } function personalCollect(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $path=SITE_PATH.$this->PERSONALCOLLECTCACHEPATH."personalCollect_".$year.".htmls"; $this->showCache($path); Doo::loadModel("receiptDetail"); Doo::loadModel("itemStatistics"); Doo::loadModel('statistics'); $statistics=new statistics(); $itemStatistics=new itemStatistics(); $receiptDetail=new receiptDetail(); $receiptCollectList=$receiptDetail->find(array('select'=>'staff,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'staff='.$this->staff[0]['sid']." and status=1 and Year(date)=".$year,'groupby'=>'itemCategory,Month(date)','asArray'=>true)); $data['itemStatisticsList']=$itemStatistics->find(array('where'=>'staff='.$this->staff[0]['sid'],'asArray'=>true)); //create collect html $collectArray=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $adjustment=array(); $collectHtml=$this->collectHtml($receiptCollectList,'日常相关费用'); array_push($collectArray['日常相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'差旅相关费用'); array_push($collectArray['差旅相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'培训班费用'); array_push($collectArray['培训班费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'其他'); array_push($collectArray['其他'], $collectHtml); $data['collectArray']=$collectArray; //statistics html $stList=$statistics->statisticsByYear($year,$this->staff[0]['sid']); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); //Adjustment price html $collectHtml=$this->collectHtml($receiptCollectList,'报销金额调整'); array_push($adjustment, $collectHtml); $data['adjustment']=$adjustment; //total price html $collectHtml="";$total=0; for ($i=1;$i<=12;$i++){ $sumPrice=0; foreach ($receiptCollectList as $key=>$value){ if($value['month']==$i){ $sumPrice+=$value['price']; } } if ($sumPrice==0) $collectHtml.='-'; else $collectHtml.='¥'.$sumPrice.''; $total+=$sumPrice; } $collectHtml.='¥'.$total.''; $data['totalPrice']=$collectHtml; $data['year']=$year; $data['totalYear']=$total; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='personalCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; //year staff status 2,4 if($yearfind(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=2 or status=4) and Year(date) ='.$year,'asArray'=>true)); if(empty($receiptList)){ ob_start(); $this->render ( "/admin/saea_slist_collect", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saea_slist_collect", $data ); } function personalCollectDetail(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $path=SITE_PATH.$this->PERSONALCOLLECTCACHEPATH."personalCollectDetail_".$year.".htmls"; $this->showCache($path); Doo::loadModel("receiptDetail"); Doo::loadModel("itemStatistics"); Doo::loadModel('statistics'); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $statistics=new statistics(); $itemStatistics=new itemStatistics(); $receiptDetail=new receiptDetail(); $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'staff='.$this->staff[0]['sid']." and status=1 and Year(date)=".$year,'groupby'=>'item,Month(date)','asArray'=>true)); $accountList=$accountItem->find(array('asArray'=>true)); //create CollectDetail HTML $collectHtml=array(); foreach ($accountList as $key=>$value){ $html="";$asum=0; for ($i=1;$i<=12;$i++){ $falg=true; foreach ($receiptCollectList as $v) { if($value['category']==$v['itemCategory']&&$v['item']==$value['name']&&$i==$v['month']){ $asum+=$v['price']; $html.='¥'.$v['price'].'';$falg=false;break; } } if($falg) $html.='-'; } $html.='¥'.$asum.''; $collectHtml[$value['category']][$value['name']]=$html; } $data['collectHtml']=$collectHtml; //create Adjustment price html $receiptCollectList=$receiptDetail->find(array('select'=>'staff,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'staff='.$this->staff[0]['sid']." and status=1 and Year(date)=".$year,'groupby'=>'itemCategory,Month(date)','asArray'=>true)); $adjustment=array();$collectArray=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $collectHtml=$this->collectHtml($receiptCollectList,'日常相关费用','b'); array_push($collectArray['日常相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'差旅相关费用','b'); array_push($collectArray['差旅相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'培训班费用','b'); array_push($collectArray['培训班费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'其他','b'); array_push($collectArray['其他'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'报销金额调整'); array_push($adjustment, $collectHtml); //total price html $collectHtml="";$total=0; for ($i=1;$i<=12;$i++){ $sumPrice=0; foreach ($receiptCollectList as $key=>$value){ if($value['month']==$i){ $sumPrice+=$value['price']; } } if ($sumPrice==0) $collectHtml.='-'; else $collectHtml.='¥'.$sumPrice.''; $total+=$sumPrice; } $collectHtml.='¥'.$total.''; //statistics html $stList=$statistics->statisticsByYear($year,$this->staff[0]['sid']); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $data['collectArray']=$collectArray; $data['adjustment']=$adjustment; $data['totalPrice']=$collectHtml; $data['totalYear']=$total; $data['year']=$year; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='personalCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; //year staff status 2,4 if($yearfind(array('where'=>'staff='.$this->staff[0]['sid'].' and (status=2 or status=4) and Year(date) ='.$year,'asArray'=>true)); if(empty($receiptList)){ ob_start(); $this->render ( "/admin/saeaCollectArticles", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saeaCollectArticles", $data ); } function companyCategoryCollect(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $path=SITE_PATH.$this->CATEGORYCOLLECTPATH."categoryCollect_".$year.".htmls"; $this->showCache($path); Doo::loadModel('L_category'); Doo::loadModel('itemStatistics'); Doo::loadModel('statistics'); $statistics=new statistics(); $Lcategory=new L_category(); $itemStatistics=new itemStatistics(); $LcategoryList=$Lcategory->find(array('asArray'=>true));//'staff='.$this->staff[0]['sid']." and $itemStatisticsList=$itemStatistics->find(array('select'=>'cid,staff,sum(price) as price,itemCategory,Month(date) as month', 'where'=>" Year(date)=".$year,'groupby'=>'cid,Month(date)','asArray'=>true)); //ceatre companyCollectHtml foreach ($LcategoryList as $value){ $html="";$asum=0; for ($i=1;$i<=12;$i++){ $falg=true; foreach ($itemStatisticsList as $v){ if($value['cid']==$v['cid']&&$i==$v['month']){ $asum+=$v['price']; $html.='¥'.$v['price'].'';$falg=false;break; } } if($falg) $html.='-'; } $html.='¥'.$asum.''; $collectHtml[$value['title']]=array('html'=>$html,'cid'=>$value['cid']); } $data['companyHtml']=$collectHtml; //total price html $collectHtml="";$total=0; for ($i=1;$i<=12;$i++){ $sumPrice=0; foreach ($itemStatisticsList as $key=>$value){ if($value['month']==$i){ $sumPrice+=$value['price']; } } if ($sumPrice==0) $collectHtml.='-'; else $collectHtml.='¥'.$sumPrice.''; $total+=$sumPrice; } $collectHtml.='¥'.$total.''; $data['companyTotalHtml']=$collectHtml; $data['total']=$total; //statistics html $stList=$statistics->statisticsByComPanyYear($year,$this->staff[0]['sid']); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $data['year']=$year; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; //year staff status 2,4 if($yearfind(array('where'=>'Year(date) ='.$year.' and (status=2 or status=4)','asArray'=>true)); if(empty($receiptList)){ ob_start(); $this->render ( "/admin/saeaCompanyCollect", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saeaCompanyCollect", $data ); } function categoryCollectDetail(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $cid=isset($this->params['cid'])&&is_numeric($this->params['cid'])?$this->params['cid']:0; $path=SITE_PATH.$this->CATEGORYCOLLECTPATH."categoryCollectDetail_".$year."_".$cid.".htmls"; $this->showCache($path); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); $LcategoryList=$Lcategory->find(array('asArray'=>true)); if ($cid==0){ $cid=$this->get_args('cid')?$this->get_args('cid'):0; if ($cid==0) $cid=$LcategoryList[0]['cid']; } $data['LcategoryList']=$LcategoryList; $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'cid='.$cid." and status=1 and Year(pastDate)=".$year,'groupby'=>'item,Month(pastDate)','asArray'=>true)); $accountList=$accountItem->find(array('asArray'=>true)); //create CollectDetail HTML $collectHtml=array(); foreach ($accountList as $key=>$value){ $html="";$asum=0; for ($i=1;$i<=12;$i++){ $falg=true; foreach ($receiptCollectList as $v) { if($value['category']==$v['itemCategory']&&$v['item']==$value['name']&&$i==$v['month']){ $asum+=$v['price']; $html.='¥'.$v['price'].'';$falg=false;break; } } if($falg) $html.='-'; } $html.='¥'.$asum.''; $collectHtml[$value['category']][$value['name']]=$html; } $data['collectHtml']=$collectHtml; //create Adjustment price html $receiptCollectList=$receiptDetail->find(array('select'=>'staff,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'cid='.$cid." and status=1 and Year(pastDate)=".$year,'groupby'=>'itemCategory,Month(pastDate)','asArray'=>true)); $adjustment=array();$collectArray=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $collectHtml=$this->collectHtml($receiptCollectList,'日常相关费用','b'); array_push($collectArray['日常相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'差旅相关费用','b'); array_push($collectArray['差旅相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'培训班费用','b'); array_push($collectArray['培训班费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'其他','b'); array_push($collectArray['其他'], $collectHtml); $data['collectArray']=$collectArray; $collectHtml=$this->collectHtml($receiptCollectList,'报销金额调整'); array_push($adjustment, $collectHtml); $data['adjustment']=$adjustment; //total price html $collectHtml="";$total=0; for ($i=1;$i<=12;$i++){ $sumPrice=0; foreach ($receiptCollectList as $key=>$value){ if($value['month']==$i){ $sumPrice+=$value['price']; } } if ($sumPrice==0) $collectHtml.='-'; else $collectHtml.='¥'.$sumPrice.''; $total+=$sumPrice; } $collectHtml.='¥'.$total.''; //statistics html $stList=$statistics->statisticsByCid($year,$cid); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $data['totalYear']=$total; $data['year']=$year; $data['cid']=$cid; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; //year staff status 2,4 if($yearfind(array('where'=>'Year(date) ='.$year.' and cid ='.$cid.' and (status=2 or status=4)','asArray'=>true)); if(empty($receiptList)){ ob_start(); $this->render ( "/admin/saeaCategoryCollectDetail", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saeaCategoryCollectDetail", $data ); } function staffCollect(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $path=SITE_PATH.$this->STAFFCOLLECTPATH."staffCollect_".$year."_.htmls"; //$this->showCache($path); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('itemStatistics'); $itemStatistics=new itemStatistics(); /* $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>" Year(date)=".$year,'groupby'=>'Month(date)','asArray'=>true)); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); */ //statistics html $stList=$statistics->statisticsByComPanyYear($year,$this->staff[0]['sid']); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); //--- $staffList=$staff->find(array('where'=>'username !="admin"','asArray'=>true)); $LcategoryList=$Lcategory->find(array('asArray'=>true));//'staff='.$this->staff[0]['sid']." and $itemStatisticsList=$itemStatistics->find(array('select'=>'cid,staff,sum(price) as price,itemCategory,Month(date) as month', 'where'=>" Year(date)=".$year,'groupby'=>'staff,Month(date)','asArray'=>true)); $categoryList=$staff->find(array('select'=>'COUNT(*) as count,cid,category','where'=>'username !="admin"','groupby'=>'cid','asArray'=>true)); //print_r($itemStatisticsList);die; //ceatre companyCollectHtml foreach ($categoryList as $vlu){ $count=$vlu['count']+1; $html=''.$vlu['category'].''; $m1=0;$m2=0;$m3=0;$m4=0;$m5=0;$m6=0;$m7=0;$m8=0;$m9=0;$m10=0;$m11=0;$m12=0;$m13=0; foreach ($staffList as $value){ if ($vlu['cid']==$value['cid']){ $html.=''.$value['username'].''; $asum=0; for ($i=1;$i<=12;$i++){ $falg=true; foreach ($itemStatisticsList as $v){ if($value['sid']==$v['staff']&&$i==$v['month']){ if ($v['month']==1) $m1+=$v['price']; if ($v['month']==2) $m2+=$v['price']; if ($v['month']==3) $m3+=$v['price']; if ($v['month']==4) $m4+=$v['price']; if ($v['month']==5) $m5+=$v['price']; if ($v['month']==6) $m6+=$v['price']; if ($v['month']==7) $m7+=$v['price']; if ($v['month']==8) $m8+=$v['price']; if ($v['month']==9) $m9+=$v['price']; if ($v['month']==10) $m10+=$v['price']; if ($v['month']==11) $m11+=$v['price']; if ($v['month']==12) $m12+=$v['price']; $asum+=$v['price']; $html.='¥'.$v['price'].'';$falg=false;break; } } if($falg) $html.='-'; } $m13+=$asum; $html.='¥'.$asum.''; $collectHtml[$value['username']]=array('html'=>$html,'sid'=>$value['sid']); $html=""; } } $hl='小计¥'.$m1.'¥'.$m2.'¥'.$m3.'¥'.$m4.'¥'.$m5.' ¥'.$m6.'¥'.$m7.'¥'.$m8.'¥'.$m9.'¥'.$m10.'¥'.$m11.' ¥'.$m12.'¥'.$m13.''; $collectHtml[$vlu['cid']]=array('html'=>$hl,'sid'=>''); } $data['companyHtml']=$collectHtml; //total price html $collectHtml="";$total=0; for ($i=1;$i<=12;$i++){ $sumPrice=0; foreach ($itemStatisticsList as $key=>$value){ if($value['month']==$i){ $sumPrice+=$value['price']; } } if ($sumPrice==0) $collectHtml.='-'; else $collectHtml.='¥'.$sumPrice.''; $total+=$sumPrice; } $collectHtml.='¥'.$total.''; $data['companyTotalHtml']=$collectHtml; $data['total']=$total; $data['year']=$year; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; if ($year<=date("Y")){ Doo::loadModel('receipt'); $receipt=new receipt(); $receiptList=$receipt->find(array('where'=>'(status=2 or status=4) and Year(date) ='.$year,'asArray'=>true)); if(empty($receiptList)){ //generated files ob_start(); $this->render ( "/admin/saeaStaffCollectB", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saeaStaffCollectB", $data ); } function staffCollectBak(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $month=$this->get_args('month')?$this->get_args('month'):1; $path=SITE_PATH.$this->STAFFCOLLECTPATH."staffCollect_".$year."_".$month.".htmls"; $this->showCache($path); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('itemStatistics'); $itemStatistics=new itemStatistics(); $itemStatisticsList=$itemStatistics->find(array('select'=>'cid,staff,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'Month(date)='.$month." and Year(date)=".$year,'groupby'=>'staff,itemCategory,Month(date)','asArray'=>true)); $itemCategoryList=$itemStatistics->find(array('select'=>'cid,staff,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'Month(date)='.$month." and Year(date)=".$year,'groupby'=>'cid,itemCategory,Month(date)','asArray'=>true)); $LcategoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('asArray'=>true)); $htmlArray=array(); foreach ($LcategoryList as $value){ $htmlArray[$value['title']]=array(); foreach ($staffList as $v){ if($value['cid']==$v['cid']){ $html="";$falg=true;$staffSumPrice=0; foreach ($itemStatisticsList as $a){ if($v['sid']==$a['staff']&&$a['itemCategory']=="日常相关费用"){ if(empty($a['price'])){ $html.='-';$falg=false;break; }else{ $staffSumPrice+=$a['price']; $html.='¥'.$a['price'].'';$falg=false;break; } } } if ($falg){ $html.='-';$falg=true; } $falg=true; foreach ($itemStatisticsList as $a){ if($v['sid']==$a['staff']&&$a['itemCategory']=="差旅相关费用"){ if(empty($a['price'])){ $html.='-';$falg=false;break; }else{ $staffSumPrice+=$a['price']; $html.='¥'.$a['price'].'';$falg=false;break; } } } if ($falg){ $html.='-';$falg=true; } $falg=true; foreach ($itemStatisticsList as $a){ if($v['sid']==$a['staff']&&$a['itemCategory']=="培训班费用"){ if(empty($a['price'])){ $html.='-';$falg=false;break; }else{ $staffSumPrice+=$a['price']; $html.='¥'.$a['price'].'';$falg=false;break; } } } if ($falg){ $html.='-';$falg=true; } $falg=true; foreach ($itemStatisticsList as $a){ if($v['sid']==$a['staff']&&$a['itemCategory']=="其他"){ if(!empty($a['price'])){ $staffSumPrice+=$a['price']; $html.='¥'.$a['price'].'';$falg=false;break; }else{ $html.='-';$falg=false;break; } } } if ($falg){ $html.='-';$falg=true; } $falg=true; foreach ($itemStatisticsList as $a){ if($v['sid']==$a['staff']&&$a['itemCategory']=="报销金额调整"){ if(!empty($a['price'])){ $staffSumPrice+=$a['price']; $html.='¥'.$a['price'].'';$falg=false;break; }else{ $html.='-';$falg=false;break; } } } if ($falg){ $html.='-';$falg=true; } $html.='¥'.$staffSumPrice.''; $htmlArray[$value['title']][$v['username']]=$html; } } /*-- ---*/ //合计费用 $cateHtml="";$catePrice=0;$cateFalg=true; foreach ($itemCategoryList as $l){ if($value['cid']==$l['cid']&&$l['itemCategory']=="日常相关费用"){ if(empty($l['price'])){ $cateHtml.='-';$cateFalg=false;break; }else{ $catePrice+=$l['price']; $cateHtml.='¥'.$l['price'].'';$cateFalg=false;break; } } } if ($cateFalg){ $cateHtml.='-';$cateFalg=true; } $cateFalg=true; foreach ($itemCategoryList as $l){ if($value['cid']==$l['cid']&&$l['itemCategory']=="差旅相关费用"){ if(empty($l['price'])){ $cateHtml.='-';$cateFalg=false;break; }else{ $catePrice+=$l['price']; $cateHtml.='¥'.$l['price'].'';$cateFalg=false;break; } } } if ($cateFalg){ $cateHtml.='-';$cateFalg=true; } $cateFalg=true; foreach ($itemCategoryList as $l){ if($value['cid']==$l['cid']&&$l['itemCategory']=="培训班费用"){ if(empty($l['price'])){ $cateHtml.='-';$cateFalg=false;break; }else{ $catePrice+=$l['price']; $cateHtml.='¥'.$l['price'].'';$cateFalg=false;break; } } } if ($cateFalg){ $cateHtml.='-';$cateFalg=true; } $cateFalg=true; foreach ($itemCategoryList as $l){ if($value['cid']==$l['cid']&&$l['itemCategory']=="其他"){ if(empty($l['price'])){ $cateHtml.='-';$cateFalg=false;break; }else{ $catePrice+=$l['price']; $cateHtml.='¥'.$l['price'].'';$cateFalg=false;break; } } } if ($cateFalg){ $cateHtml.='-';$cateFalg=true; } $cateFalg=true; foreach ($itemCategoryList as $l){ if($value['cid']==$l['cid']&&$l['itemCategory']=="报销金额调整"){ if(empty($l['price'])){ $cateHtml.='-';$cateFalg=false;break; }else{ $catePrice+=$l['price']; $cateHtml.='¥'.$l['price'].'';$cateFalg=false;break; } } } if ($cateFalg){ $cateHtml.='-';$cateFalg=true; } $cateHtml.='¥'.$catePrice.''; $htmlArray[$value['title']]['合计']=$cateHtml; /*-- ---*/ } //print_r($htmlArray);die; $data['htmlArray']=$htmlArray; //statistics html $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>'Month(date)='.$month." and Year(date)=".$year,'groupby'=>'Month(date)','asArray'=>true)); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $monthHtml=""; for ($i=1;$i<=12;$i++){ if ($i==$month) $monthHtml.=''; else $monthHtml.=''; } $data['monthHtml']=$monthHtml; $data['year']=$year; $data['month']=$month; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; if (!empty($month)&&($year<=date("Y"))&&($monthfind(array('where'=>'(status=2 or status=4) and Year(date) ='.$year.' and Month(date) ='.$month,'asArray'=>true)); if(empty($receiptList)){ //generated files ob_start(); $this->render ( "/admin/saeaStaffCollect", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saeaStaffCollect", $data ); } function lyt(){ Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); $receiptCollectList=$receiptDetail->find(array('where'=>'status=1 ','asArray'=>true)); foreach ($receiptCollectList as $key=>$value){ $receiptDetail=new receiptDetail(); $receiptDetail->pastDate=$value['date']; $receiptDetail->update(array('where' => "rdid= '".$value['rdid']."'")); } } function staffCollectMonthDetail(){ $year=$this->get_args('year')?$this->get_args('year'):""; $month=$this->get_args('month')?$this->get_args('month'):""; if(!$year) $year=isset($this->params['year'])?$this->params['year']:date("Y"); if(!$month) $month=isset($this->params['month'])?$this->params['month']:1; Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel('L_category'); $lCategory=new L_category(); $staffList=$staff->find(array('where'=>'username!="admin"','asArray'=>true)); $categoryList=$staff->find(array('select'=>'COUNT(*) as count,cid,category','where'=>'username !="admin"','groupby'=>'cid','asArray'=>true)); $list=array(); foreach ($categoryList as $vlu){ //$html=''.$v['category'].''; $r1=0;$r2=0;$r3=0;$r4=0;$r5=0;$r6=0;$r7=0;$r8=0;$r9=0;$r10=0;$r11=0;$r12=0;$r13=0;$r14=0;$r15=0; $c1=0;$c2=0;$c3=0;$c4=0;$c5=0;$c6=0; $p1=0;$p2=0;$p3=0;$p4=0;$p5=0;$p6=0;$p7=0;$p8=0;$p9=0; $t1=0;$t2=0;$t3=0;$t4=0;$t5=0; $s1=0; $m1=0; foreach ($staffList as $value){ if ($vlu['cid']==$value['cid']){ //pastDate $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'staff='.$value['sid']." and status=1 and Year(pastDate)=".$year.' and Month(pastDate)='.$month,'groupby'=>'item,Month(pastDate),itemCategory','asArray'=>true)); // if ($value['sid']==42){ // print_r($receiptCollectList);die; // } if(!empty($receiptCollectList)){ $receiptL=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $html=""; $psum=0; $item=array('市内交通费','市内出租费','办事处房租','电话费','水费','电费','办公费用','邮寄费','其他费用','车辆费用','广告费','团队建设费','物业管理费','宽带费'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='日常相关费用'){ if($v['item']==$va){ if ($va=='市内交通费') $r1+=$v['price']; if ($va=='市内出租费') $r2+=$v['price']; if ($va=='办事处房租') $r3+=$v['price']; if ($va=='电话费') $r4+=$v['price']; if ($va=='水费') $r5+=$v['price']; if ($va=='电费') $r6+=$v['price']; if ($va=='办公费用') $r7+=$v['price']; if ($va=='邮寄费') $r8+=$v['price']; if ($va=='其他费用') $r9+=$v['price']; if ($va=='车辆费用') $r10+=$v['price']; if ($va=='广告费') $r11+=$v['price']; if ($va=='团队建设费') $r13+=$v['price']; if ($va=='物业管理费') $r14+=$v['price']; if ($va=='宽带费') $r15+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $r12+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['日常相关费用']=$psum.$html; /*-----------------------------------*/ $html=""; $psum=0; $item=array('往来交通费','市内交通费','出差住宿费','出差补助','其他费用'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='差旅相关费用'){ if($v['item']==$va){ if ($va=='往来交通费') $c1+=$v['price']; if ($va=='市内交通费') $c2+=$v['price']; if ($va=='出差住宿费') $c3+=$v['price']; if ($va=='出差补助') $c4+=$v['price']; if ($va=='其他费用') $c5+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $c6+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['差旅相关费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('场租费','薪酬','住宿费','交通费','餐饮费','办公费','公关费','其他'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='培训班费用'){ if($v['item']==$va){ if ($va=='场租费') $p1+=$v['price']; if ($va=='薪酬') $p2+=$v['price']; if ($va=='住宿费') $p3+=$v['price']; if ($va=='交通费') $p4+=$v['price']; if ($va=='餐饮费') $p5+=$v['price']; if ($va=='办公费') $p6+=$v['price']; if ($va=='公关费') $p7+=$v['price']; if ($va=='其他') $p8+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $p9+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['培训班费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('公关费','广告费','借款','可自加费用'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='其他'){ // if ($value['sid']==42){ // // echo var_dump($v['item']); // echo var_dump($va); // echo var_dump($v['item']==" ".$va); // echo $v['item']."==".$va."/
    "; // //print_r( $receiptCollectList);//echo $va; // } if(trim($v['item'])==$va){ if ($va=='公关费') $t1+=$v['price']; if ($va=='广告费'){ $t2+=$v['price']; } if ($va=='借款') $t3+=$v['price']; if ($va=='可自加费用') $t4+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $t5+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['其他']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='报销金额调整'){ if (!empty($v['price'])){ $psum+=$v['price']; } } } $s1+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['报销金额调整']=$psum.$html; }else{ $receiptL['日常相关费用']='----- -------- --'; $receiptL['差旅相关费用']='-- ----'; $receiptL['培训班费用']='----- ----'; $receiptL['其他']='-----'; $receiptL['报销金额调整']='-'; } $monthStaffPrice=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'staff='.$value['sid']." and status=1 and Year(pastDate)=".$year.' and Month(pastDate)='.$month,'groupby'=>'Month(pastDate)','asArray'=>true)); //echo 'staff='.$value['sid']." and status=1 and Year(date)=".$year.' and Month(date)='.$month; if(!empty($monthStaffPrice[0]['price'])){ $m1+=$monthStaffPrice[0]['price']; $receiptL['monthStaffPrice']='¥'.$monthStaffPrice[0]['price'].''; }else $receiptL['monthStaffPrice']='-'; $list[$value['username']]=$receiptL; } } $receiptL['日常相关费用']=''.$r12.''.$r1.''.$r2.''.$r3.''.$r4.''.$r5.' '.$r6.''.$r7.''.$r8.''.$r9.''.$r10.''.$r11.''.$r13.' '.$r14.''.$r15.''; $receiptL['差旅相关费用']=''.$c6.''.$c1.' '.$c2.''.$c3.''.$c4.''.$c5.''; $receiptL['培训班费用']=''.$p9.''.$p1.''.$p2.''.$p3.''.$p4.' '.$p5.''.$p6.''.$p7.''.$p8.''; $receiptL['其他']=''.$t5.''.$t1.''.$t2.''.$t3.''.$t4.''; $receiptL['报销金额调整']=''.$s1.''; $receiptL['monthStaffPrice']='¥'.$m1.''; $list[''.$vlu['category'].'小计']=$receiptL; } $data['list']=$list; $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>" status=1 and Year(pastDate)=".$year.' and Month(pastDate)='.$month,'groupby'=>'item,Month(pastDate),itemCategory','asArray'=>true)); $data['monthPriceHtml']=$this->_getMonthCollectDetail($receiptCollectList); //statistics html $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>'Month(date)='.$month." and Year(date)=".$year,'groupby'=>'Month(date)','asArray'=>true)); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $monthHtml=""; for ($i=1;$i<=12;$i++){ if ($i==$month) $monthHtml.=''; else $monthHtml.=''; } $data['monthHtml']=$monthHtml; $data['year']=$year; $data['month']=$month; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/staffCollectMonthDetail", $data ); //$this->render ( "/admin/saeaStaffCollectDetail", $data ); } function staffCollectMonthDetail2(){ $year=$this->get_args('year')?$this->get_args('year'):""; $month=$this->get_args('month')?$this->get_args('month'):""; if(!$year) $year=isset($this->params['year'])?$this->params['year']:date("Y"); if(!$month) $month=isset($this->params['month'])?$this->params['month']:1; Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel('L_category'); $lCategory=new L_category(); $staffList=$staff->find(array('where'=>'username!="admin"','asArray'=>true)); $categoryList=$staff->find(array('select'=>'COUNT(*) as count,cid,category','where'=>'username !="admin"','groupby'=>'cid','asArray'=>true)); $list=array(); foreach ($categoryList as $vlu){ //$html=''.$v['category'].''; $r1=0;$r2=0;$r3=0;$r4=0;$r5=0;$r6=0;$r7=0;$r8=0;$r9=0;$r10=0;$r11=0;$r12=0;$r13=0;$r14=0;$r15=0; $c1=0;$c2=0;$c3=0;$c4=0;$c5=0;$c6=0; $p1=0;$p2=0;$p3=0;$p4=0;$p5=0;$p6=0;$p7=0;$p8=0;$p9=0; $t1=0;$t2=0;$t3=0;$t4=0;$t5=0; $s1=0; $m1=0; foreach ($staffList as $value){ if ($vlu['cid']==$value['cid']){ $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'staff='.$value['sid']." and status=1 and Year(date)=".$year.' and Month(date)='.$month,'groupby'=>'item,Month(date),itemCategory','asArray'=>true)); if(!empty($receiptCollectList)){ $receiptL=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $html=""; $psum=0; $item=array('市内交通费','市内出租费','办事处房租','电话费','水费','电费','办公费用','邮寄费','其他费用','车辆费用','广告费','团队建设费','物业管理费','宽带费'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='日常相关费用'){ if($v['item']==$va){ if ($va=='市内交通费') $r1+=$v['price']; if ($va=='市内出租费') $r2+=$v['price']; if ($va=='办事处房租') $r3+=$v['price']; if ($va=='电话费') $r4+=$v['price']; if ($va=='水费') $r5+=$v['price']; if ($va=='电费') $r6+=$v['price']; if ($va=='办公费用') $r7+=$v['price']; if ($va=='邮寄费') $r8+=$v['price']; if ($va=='其他费用') $r9+=$v['price']; if ($va=='车辆费用') $r10+=$v['price']; if ($va=='广告费') $r11+=$v['price']; if ($va=='团队建设费') $r13+=$v['price']; if ($va=='物业管理费') $r14+=$v['price']; if ($va=='宽带费') $r15+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $r12+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['日常相关费用']=$psum.$html; /*-----------------------------------*/ $html=""; $psum=0; $item=array('往来交通费','市内交通费','出差住宿费','出差补助','其他费用'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='差旅相关费用'){ if($v['item']==$va){ if ($va=='往来交通费') $c1+=$v['price']; if ($va=='市内交通费') $c2+=$v['price']; if ($va=='出差住宿费') $c3+=$v['price']; if ($va=='出差补助') $c4+=$v['price']; if ($va=='其他费用') $c5+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $c6+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['差旅相关费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('场租费','薪酬','住宿费','交通费','餐饮费','办公费','公关费','其他'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='培训班费用'){ if($v['item']==$va){ if ($va=='场租费') $p1+=$v['price']; if ($va=='薪酬') $p2+=$v['price']; if ($va=='住宿费') $p3+=$v['price']; if ($va=='交通费') $p4+=$v['price']; if ($va=='餐饮费') $p5+=$v['price']; if ($va=='办公费') $p6+=$v['price']; if ($va=='公关费') $p7+=$v['price']; if ($va=='其他') $p8+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $p9+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['培训班费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('公关费','广告费','借款','可自加费用'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='其他'){ if($v['item']==$va){ if ($va=='公关费') $t1+=$v['price']; if ($va=='广告费') $t2+=$v['price']; if ($va=='借款') $t3+=$v['price']; if ($va=='可自加费用') $t4+=$v['price']; $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } $t5+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['其他']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='报销金额调整'){ if (!empty($v['price'])){ $psum+=$v['price']; } } } $s1+=$psum; if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['报销金额调整']=$psum.$html; }else{ $receiptL['日常相关费用']='----- --------'; $receiptL['差旅相关费用']='-- ----'; $receiptL['培训班费用']='----- ----'; $receiptL['其他']='-----'; $receiptL['报销金额调整']='-'; } $monthStaffPrice=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where'=>'staff='.$value['sid']." and status=1 and Year(date)=".$year.' and Month(date)='.$month,'asArray'=>true)); if(!empty($monthStaffPrice[0]['price'])){ $m1+=$monthStaffPrice[0]['price']; $receiptL['monthStaffPrice']='¥'.$monthStaffPrice[0]['price'].''; }else $receiptL['monthStaffPrice']='-'; $list[$value['username']]=$receiptL; } } $receiptL['日常相关费用']=''.$r12.''.$r1.''.$r2.''.$r3.''.$r4.''.$r5.' '.$r6.''.$r7.''.$r8.''.$r9.''.$r10.''.$r11.''.$r13.' '.$r14.''.$r15.''; $receiptL['差旅相关费用']=''.$c6.''.$c1.' '.$c2.''.$c3.''.$c4.''.$c5.''; $receiptL['培训班费用']=''.$p9.''.$p1.''.$p2.''.$p3.''.$p4.' '.$p5.''.$p6.''.$p7.''.$p8.''; $receiptL['其他']=''.$t5.''.$t1.''.$t2.''.$t3.''.$t4.''; $receiptL['报销金额调整']=''.$s1.''; $receiptL['monthStaffPrice']='¥'.$m1.''; $list[''.$vlu['category'].'小计']=$receiptL; } $data['list']=$list; $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where'=>" status=1 and Year(date)=".$year.' and Month(date)='.$month,'groupby'=>'item,Month(date),itemCategory','asArray'=>true)); $data['monthPriceHtml']=$this->_getMonthCollectDetail($receiptCollectList); //statistics html $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>'Month(date)='.$month." and Year(date)=".$year,'groupby'=>'Month(date)','asArray'=>true)); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $monthHtml=""; for ($i=1;$i<=12;$i++){ if ($i==$month) $monthHtml.=''; else $monthHtml.=''; } $data['monthHtml']=$monthHtml; $data['year']=$year; $data['month']=$month; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/staffCollectMonthDetail2", $data ); //$this->render ( "/admin/saeaStaffCollectDetail", $data ); } function companyMonthCollectDetail(){ $year=$this->get_args('year')?$this->get_args('year'):""; $month=$this->get_args('month')?$this->get_args('month'):""; if(!$year) $year=isset($this->params['year'])?$this->params['year']:date("Y"); if(!$month) $month=isset($this->params['month'])?$this->params['month']:1; Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel('L_category'); $lCategory=new L_category(); $staffList=$staff->find(array('where'=>'username!="admin"','asArray'=>true)); $categoryList=$lCategory->find(array('asArray'=>true)); $list=array(); foreach ($categoryList as $value){ $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'cid='.$value['cid']." and status=1 and Year(pastDate)=".$year.' and Month(pastDate)='.$month,'groupby'=>'item,Month(pastDate),itemCategory','asArray'=>true)); if(!empty($receiptCollectList)){ $receiptL=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $html=""; $psum=0; $item=array('市内交通费','市内出租费','办事处房租','电话费','水费','电费','办公费用','邮寄费','其他费用','车辆费用','广告费','团队建设费'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='日常相关费用'){ if($v['item']==$va){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['日常相关费用']=$psum.$html; /*-----------------------------------*/ $html=""; $psum=0; $item=array('往来交通费','市内交通费','出差住宿费','出差补助','其他费用'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='差旅相关费用'){ if($v['item']==$va){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['差旅相关费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('场租费','薪酬','住宿费','交通费','餐饮费','办公费','公关费','其他'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='培训班费用'){ if($v['item']==$va){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['培训班费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('公关费','广告费','借款','可自加费用'); foreach ($item as $va){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='其他'){ if($v['item']==$va){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['其他']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='报销金额调整'){ if (!empty($v['price'])) $psum+=$v['price']; } } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['报销金额调整']=$psum.$html; }else{ $receiptL['日常相关费用']='------- ------'; $receiptL['差旅相关费用']='-- ----'; $receiptL['培训班费用']='----- ----'; $receiptL['其他']='-----'; $receiptL['报销金额调整']='-'; } $monthStaffPrice=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'cid='.$value['cid']." and status=1 and Year(pastDate)=".$year.' and Month(pastDate)='.$month,'asArray'=>true)); if(!empty($monthStaffPrice[0]['price'])) $receiptL['monthStaffPrice']='¥'.$monthStaffPrice[0]['price'].''; else $receiptL['monthStaffPrice']='-'; $list[$value['title']]=$receiptL; } $data['list']=$list; $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>" status=1 and Year(pastDate)=".$year.' and Month(pastDate)='.$month,'groupby'=>'item,Month(pastDate),itemCategory','asArray'=>true)); $data['monthPriceHtml']=$this->_getMonthCollectDetail($receiptCollectList); //print_r($data['monthPriceHtml']); // foreach ($data['monthPriceHtml'] as $value){ // echo $value; // } // die; //statistics html $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>'Month(date)='.$month." and Year(date)=".$year,'groupby'=>'Month(date)','asArray'=>true)); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $monthHtml=""; for ($i=1;$i<=12;$i++){ if ($i==$month) $monthHtml.=''; else $monthHtml.=''; } $data['monthHtml']=$monthHtml; $data['year']=$year; $data['month']=$month; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/companyMonthCollectDetail", $data ); } function staffCollectDetail(){ $year=$this->get_args('year')?$this->get_args('year'):date("Y"); $staffname=$this->get_args('username')?$this->get_args('username'):""; $pcid=$this->get_args('category')?$this->get_args('category'):""; if(!$staffname){ $staffname=isset($this->params['staffname'])?$this->params['staffname']:""; $staffname= urldecode($staffname); } Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel("receiptDetail"); $receiptDetail=new receiptDetail(); Doo::loadModel('accountItem'); $accountItem=new accountItem(); Doo::loadModel('statistics'); $statistics=new statistics(); Doo::loadModel('L_category'); $lCategory=new L_category(); $staffList=$staff->find(array('asArray'=>true)); $stHtml='';$stTitle="";$staffId=0;$cid=0;$ocid=0; foreach ($staffList as $value){ if ($value['username']==$staffname&&$value['username']!='admin'){ $stTitle=$value['category'].'-'.$value['username']; $staffId=$value['sid']; $cid=$value['cid']; $ocid=$value['cid']; if (!empty($value['othercid'])) $cid=$value['cid'].','.$value['othercid']; $stHtml.=''; }elseif ($value['username']!='admin') $stHtml.=''; } $data['lCategoryHtml']=$lCategory->find(array('where'=>'cid in('.$cid.')','asArray'=>true)); if(empty($pcid)) $pcid=$ocid; $data['ocid']=$pcid; $path=SITE_PATH.$this->STAFFCOLLECTPATH."staffCollectDetail_".$year."_".$staffId.".htmls"; $this->showCache($path); // $receiptCollectList=$receiptDetail->find(array('select'=>'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'staff='.$staffId." and cid=".$pcid." and status=1 and Year(pastDate)=".$year,'groupby'=>'item,Month(pastDate),itemCategory','asArray'=>true)); $accountList=$accountItem->find(array('asArray'=>true)); //create CollectDetail HTML $collectHtml=array(); foreach ($accountList as $key=>$value){ $html="";$asum=0; for ($i=1;$i<=12;$i++){ $falg=true; foreach ($receiptCollectList as $v) { if($value['category']==$v['itemCategory']&&$v['item']==$value['name']&&$i==$v['month']){ $asum+=$v['price']; $html.='¥'.$v['price'].'';$falg=false;break; } } if($falg) $html.='-'; } $html.='¥'.$asum.''; $collectHtml[$value['category']][$value['name']]=$html; } $data['collectHtml']=$collectHtml; //create Adjustment price html $receiptCollectList=$receiptDetail->find(array('select'=>'staff,sum(price) as price,itemCategory,Month(pastDate) as month', 'where'=>'staff='.$staffId." and cid=".$pcid." and status=1 and Year(pastDate)=".$year,'groupby'=>'itemCategory,Month(pastDate)','asArray'=>true)); $adjustment=array();$collectArray=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $collectHtml=$this->collectHtml($receiptCollectList,'日常相关费用','b'); array_push($collectArray['日常相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'差旅相关费用','b'); array_push($collectArray['差旅相关费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'培训班费用','b'); array_push($collectArray['培训班费用'], $collectHtml); $collectHtml=$this->collectHtml($receiptCollectList,'其他','b'); array_push($collectArray['其他'], $collectHtml); $data['collectArray']=$collectArray; $collectHtml=$this->collectHtml($receiptCollectList,'报销金额调整'); array_push($adjustment, $collectHtml); $data['adjustment']=$adjustment; //total price html $collectHtml="";$total=0; for ($i=1;$i<=12;$i++){ $sumPrice=0; foreach ($receiptCollectList as $key=>$value){ if($value['month']==$i){ $sumPrice+=$value['price']; } } if ($sumPrice==0) $collectHtml.='-'; else $collectHtml.='¥'.$sumPrice.''; $total+=$sumPrice; } $collectHtml.='¥'.$total.''; //statistics html $stList=$statistics->statisticsByYear($year,$staffId); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice'])); $data['totalPrice']=$collectHtml; $data['totalYear']=$total; $data['stHtml']=$stHtml; $data['year']=$year; $data['stTitle']=$stTitle; $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='companyCategoryCollect'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; if ($yearfind(array('where'=>'staff='.$staffId.' and (status=2 or status=4) and Year(date) ='.$year,'asArray'=>true)); if(empty($receiptList)){ //generated files ob_start(); $this->render ( "/admin/saeaStaffCollectDetail", $data ); $this->cacheFile($path);die; } } $this->render ( "/admin/saeaStaffCollectDetail", $data ); } function BUGFLAG(){ $status=isset($this->params['status'])&&is_numeric($this->params['status'])?$this->params['status']:0; $year=$this->get_args('year')?$this->get_args('year'):date('Y'); $month=$this->get_args('month')?$this->get_args('month'):""; $cid=$this->get_args('cid')?$this->get_args('cid'):0; $sid=$this->get_args('sid')?$this->get_args('sid'):0; if (empty($status)) $status=$this->get_args('status')&&is_numeric($this->get_args('status'))?$this->get_args('status'):0; $page_size=12; $page = isset($this->params ['page'])&&is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $vidList=array(); $button=0; Doo::loadModel('verify'); $verify=new verify(); Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('L_category'); $Lcategory=new L_category(); $dateCondition=" and Year(date) =".$year; if(!empty($month)) $dateCondition=" and Year(date) =".$year." and Month(date) = ".$month; $categoryList=$Lcategory->find(array('asArray'=>true)); $staffList=$staff->find(array('where'=>'cid='.$cid,'asArray'=>true)); $cateCondition="";$staffCondition="";$approvalCondition=""; if (!empty($cid)) $cateCondition=' and cid='.$cid; if(!empty($sid)){ $staffCondition=' and staff='.$sid; $cateCondition=""; } $approvalCondition=" and status=".$status; if($status==2){ //查找角色审批人 $approvalCondition=' and status='.$status.' and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' )'; } if($status==5){//and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%" $approvalCondition=' and status=2 '; } if($status==1){ $approvalCondition=' and (status='.$status.' or status=6) '; } //nowStaff like "%'.$this->staff[0]['sid'].'%" $pageinfo['page']=array('previous'=>''); if ($status==0){ $pageinfo=$this->get_page("CLD_receipt", $dateCondition.$cateCondition.$staffCondition.' and status!=5', $page, $page_size, "approvalExpenses","",""); $receiptList=$receipt->find(array('where'=>'status!=5 '.$dateCondition.$cateCondition.$staffCondition ,'limit'=>$pageinfo ['lower'].','.$page_size,'desc'=>'rid','asArray'=>true)); //echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')'; }else $receiptList=$receipt->find(array('where'=>'status!=5 '.$dateCondition.$cateCondition.$staffCondition.$approvalCondition ,'desc'=>'rid','asArray'=>true)); $rLRes=$receipt->find(array('where'=>'status=2 and (nowStaff like "%,'.$this->staff[0]['sid'].'%" or nowStaff like "%'.$this->staff[0]['sid'].',%" or nowStaff='.$this->staff[0]['sid'].' )'.$cateCondition.$staffCondition ,'desc'=>'rid','asArray'=>true)); //echo '1 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')'; //print_r($pageinfo); $Locate=0; foreach ($receiptList as $key=>$value){ $receiptList[$key]['Locate']=$Locate;$Locate++; $receiptList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $receiptList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $receiptList[$key]['accountItem']=json_decode($value['accountItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $receiptList[$key]['category']=$categoryDetil['title']; $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); foreach ($verifyList as $k=>$v){ //init verifyStaff $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if ($v[0]==$this->staff[0]['sid']){ $verifyList[$k]['status']=4; $button=4; } }else{ $flag=true; foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } // elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;} // if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;} // if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;} } if($flag){//检测可编辑 if($v[0]==$this->staff[0]['sid']){ $verifyList[$k]['status']=4;$button=4; } } } } $receiptList[$key]['verifyList']=$verifyList; $receiptList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $receiptList[$key]['button']=$button; $receiptList[$key]['nowStaffArray']=explode(',',$value['nowStaff']); } //print_r($receiptList);die; //$data['verifyDetail']=$verifyDetail; $mothHtml=""; for($i=1;$i<=12;$i++){ if($month==$i) $mothHtml.=''; else $mothHtml.=''; } $data['mothHtml']=$mothHtml; $data['page']=$pageinfo; $data['receiptList']=$receiptList; $data['receiptApprovalCount']=count($rLRes); $data['status']=$status; $data['year']=$year; $data['categoryList']=$categoryList; $data['staffList']=$staffList; $data['cid']=$cid; $data['sid']=$sid; //print_r($receiptList); $data['memu']="receipt"; $data['staff']=$this->staff; $data['receiptMemu']='approvalExpenses'; $data['verifyId']=$this->verifyId; $data['executeId']=$this->executeId; $this->render ( "/admin/FALG", $data ); } function ajaxGetReceiptOrder(){ $receiptOrder=$this->get_args('receiptOrder')?$this->get_args('receiptOrder'):""; if (!empty($receiptOrder)){ Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel ( 'staff' ); $staff = new staff (); $receiptInfo=$receipt->getOne(array('where'=>' receiptOrder="'.$receiptOrder.'"','asArray'=>true)); $verifyStaff=json_decode($receiptInfo['verifyStaff'],true); $html='
    单号:'.$receiptOrder.'金额:¥'.$receiptInfo['sum'].'
    '; foreach ($verifyStaff as $key=>$value){ $staffInfo=$staff->getOne(array('select'=>'username','where'=>' sid="'.$key.'"','asArray'=>true)); $html.=''; } $html.='
    '.$staffInfo['username'].''.$value['opinion'].'
    '; echo json_encode(array('status'=>1,'receiptHtml'=>$html));die; } echo json_encode(array('status'=>2,'receiptHtml'=>''));die; } function _getMonthCollectDetail($receiptCollectList){ if(!empty($receiptCollectList)){ $receiptL=array('日常相关费用'=>array(),'差旅相关费用'=>array(),'培训班费用'=>array(),'其他'=>array()); $html=""; $psum=0; $item=array('市内交通费','市内出租费','办事处房租','电话费','水费','电费','办公费用','邮寄费','其他费用','车辆费用','广告费','团队建设费','物业管理费','宽带费'); foreach ($item as $value){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='日常相关费用'){ if($v['item']==$value){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['日常相关费用']=$psum.$html; /*-----------------------------------*/ $html=""; $psum=0; $item=array('往来交通费','市内交通费','出差住宿费','出差补助','其他费用'); foreach ($item as $value){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='差旅相关费用'){ if($v['item']==$value){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['差旅相关费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('场租费','薪酬','住宿费','交通费','餐饮费','办公费','公关费','其他'); foreach ($item as $value){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='培训班费用'){ if($v['item']==$value){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['培训班费用']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; $item=array('公关费','广告费','借款','可自加费用'); foreach ($item as $value){ $falg=true; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='其他'){ if($v['item']==$value){ $psum+=$v['price']; $html.=''.$v['price'].'';$falg=false;break; } } } if($falg) $html.='-'; } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['其他']=$psum.$html; /*-------------------------------------*/ $html=""; $psum=0; foreach ($receiptCollectList as $v){ if($v['itemCategory']=='报销金额调整'){ if (!empty($v['price'])) $psum+=$v['price']; } } if(!empty($psum)) $psum='¥'.$psum.''; else $psum='-'; $receiptL['报销金额调整']=$psum.$html; }else{ $receiptL['日常相关费用']='------- ------'; $receiptL['差旅相关费用']='-- ----'; $receiptL['培训班费用']='----- ----'; $receiptL['其他']='-----'; $receiptL['报销金额调整']='-'; } return $receiptL; } function eMail(){ Doo::loadModel('staff'); $staff=new staff(); Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('L_category'); $Lcategory=new L_category(); Doo::loadModel("verify"); $verify=new verify(); $staffList=$staff->find(array('asArray'=>true)); foreach ($staffList as $key=>$value){ if($value['username']!='admin'){ //提交人 $receiptList=$receipt->find(array('where'=>'staff='.$value['sid'].' and status=1 and notice=0','asArray'=>true)); if(!empty($receiptList)){ $html='
    CLD 邮件提醒

    Hi,'.$value['username'].'

    美好的一天从今天开始,您需要关注以下事项:

    以下报销单完成了审批,等着收款吧:

    '; foreach ($receiptList as $k=>$v){ $category=$Lcategory->getOne(array('where'=>'cid='.$v['cid'],'asArray'=>true)); $html.=' '; } $html.='

    '.$v['receiptOrder'].'

    '.$category['title'].'

    ¥'.$v['sum'].'元

    '.$v['date'].'
    立即登录

    '; if(filter_var($value['email'], FILTER_VALIDATE_EMAIL)){ $this->SMail($value['email'], "CLD提醒您,您的报销单已同意支付", $html); $this->SMail('1971614655@qq.com', "CLD提醒您,您的报销单已同意支付", $html); $this->SMail('cpthought@vip.qq.com', "CLD提醒您,您的报销单已同意支付", $html); $receipt=new receipt(); $receipt->notice=1; $receipt->update(array('where'=>'staff='.$value['sid'].' and status=1 and notice=0')); } } //审批人 $verifyList=$verify->find(array('where'=>" staff like '%[\"".$value['sid']."\",%'",'asArray'=>true)); $html='
    CLD 邮件提醒

    Hi,'.$value['username'].'

    美好的一天从今天开始,您需要关注以下事项:

    以下报销单需要您的审批:

    '; foreach ($verifyList as $k=>$v){ $receiptList=$receipt->find(array('where'=>"verify=".$v['vid']." and status=2 and verifyStaff not like '%{\"".$value['sid']."\":%'",'asArray'=>true)); foreach ($receiptList as $r=>$l){ $category=$Lcategory->getOne(array('where'=>'cid='.$l['cid'],'asArray'=>true)); $staffDetile=$staff->getOne(array('where'=>'sid='.$l['staff'],'asArray'=>true)); $html.=' '; } } $html.='

    '.$l['receiptOrder'].'

    '.$category['title'].'-'.$staffDetile['username'].'

    ¥'.$l['sum'].'元

    '.$l['date'].'
    立即登录

    '; if((filter_var($value['email'], FILTER_VALIDATE_EMAIL))&&(!empty($verifyList))&&(!empty($receiptList))){ $this->SMail($value['email'], "CLD提醒您,有需要你审批的报销单", $html); // $receipt=new receipt(); // $receipt->notice=1; // $receipt->update(array('where'=>'staff='.$value['sid'].' and status=1 and notice=0')); } } } } // Email发送函数 function SMail($toemail, $subject, $contents) { Doo::loadClass('class.phpmailer'); $mail = new PHPMailer(); $mail->From = "postmaster@support.zhzdwk.com"; //发送邮箱全名 $mail->FromName = "=?UTF-8?B?" . base64_encode("CLD") . "?="; //发送人昵称 $mail->Username = "postmaster@websupport.sendcloud.org"; //用户名 $mail->Password = "cDO1GjtY1seH"; //密码 $mail->CharSet = "UTF8"; $mail->SMTPAuth = true; $mail->Host = "smtpcloud.sohu.com"; //邮件主机的smtp地址 $mail->Mailer = "smtp"; $mail->Port = 25; $mail->Subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; $mail->MsgHTML($contents); $mail->AddAddress($toemail); $mail->CharSet = "UTF-8"; return $mail->Send(); } function swfupload(){ $POST_MAX_SIZE = ini_get('post_max_size'); $unit = strtoupper(substr($POST_MAX_SIZE, -1)); $multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1))); if ((int)$_SERVER['CONTENT_LENGTH'] > $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) { header("HTTP/1.1 500 Internal Server Error"); echo "POST exceeded maximum allowed size."; exit(0); } // Settings $save_path = DOO::conf()->SITE_PATH."upload/swfupload/"; // The path were we will save the file (getcwd() may not be reliable and should be tested in your environment) $upload_name = "Filedata"; $max_file_size_in_bytes = 2147483647; // 2GB in bytes $extension_whitelist = array("doc", "txt", "jpg", "gif", "png"); // Allowed file extensions $valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format) // Other variables $MAX_FILENAME_LENGTH = 260; $file_name = ""; $file_extension = ""; $uploadErrors = array( 0=>"文件上传成功", 1=>"上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置", 2=>"上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置", 3=>"上传的文件仅为部分文件", 4=>"没有文件上传", 6=>"缺少临时文件夹" ); $nk= time(); $file_name = $nk.'.'.$this->_GetFileEXT($_FILES[$upload_name]['name']); //preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name'])); if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_name)) { echo "文件无法保存."; exit(0); } // Return output to the browser (only supported by SWFUpload for Flash Player 9) echo json_encode(array('filename'=>$file_name,'id'=>$nk)); exit(0); } function _GetFileEXT($filename) { $pics = explode ( '.', $filename ); $num = count ( $pics ); return $pics [$num - 1]; } /** * 获取get或者POST值 * @param string $name 属性名称 * @return fixed 值 */ function get_args($name) { if (isset ( $_GET [$name] )) { if (is_array ( $_GET [$name] )) return $_GET [$name]; else return addslashes ( $_GET [$name] ); } elseif (isset ( $_POST [$name] )) { if (is_array ( $_POST [$name] )) return $_POST [$name]; else return addslashes ( $_POST [$name] ); } else return false; } function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以只留两个小数位 $num = round($num, 2); //将数字转化为整数 $num = $num * 100; if (strlen($num) > 10) { return "金额太大,请检查"; } $i = 0; $c = ""; while (1) { if ($i == 0) { //获取最后一位数字 $n = substr($num, strlen($num)-1, 1); } else { $n = $num % 10; } //每次将最后一位数字转化为中文 $p1 = substr($c1, 3 * $n, 3); $p2 = substr($c2, 3 * $i, 3); if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) { $c = $p1 . $p2 . $c; } else { $c = $p1 . $c; } $i = $i + 1; //去掉数字最后一位了 $num = $num / 10; $num = (int)$num; //结束循环 if ($num == 0) { break; } } $j = 0; $slen = strlen($c); while ($j < $slen) { //utf8一个汉字相当3个字符 $m = substr($c, $j, 6); //处理数字中很多0的情况,每次循环去掉一个汉字“零” if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') { $left = substr($c, 0, $j); $right = substr($c, $j + 3); $c = $left . $right; $j = $j-3; $slen = $slen-3; } $j = $j + 3; } //这个是为了去掉类似23.0中最后一个“零”字 if (substr($c, strlen($c)-3, 3) == '零') { $c = substr($c, 0, strlen($c)-3); } //将处理的汉字加上“整” if (empty($c)) { return "零元整"; }else{ return $c . "整"; } } /** * 获得分页数据 * @param unknown_type $table * @param unknown_type $condition * @param unknown_type $on_page * @param unknown_type $page_size */ function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page") { $page_c = ""; $page ['previous'] = $this->get_previous ( $on_page ); $page ['on_page'] = $on_page; $total_count = $this->get_table_count ( $table, $condition ); $total = intval ( $total_count / $page_size ); $page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1; $page ['total_data'] = $total_count; $page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1; $i = 1; $page_max = 1; $page_width=3; if ($on_page >= $page_width) { $page_max = intval ( $on_page / $page_width ) + 1; $i = intval ( $on_page / $page_width ) * $page_width - 1; } for(; $i <= $page ['total_page']; $i ++) { if ($i == $on_page) $page_c .= '
  • ' . $i . '
  • '; else $page_c .= '
  • ' . $i . '
  • '; if ($i == ($page_width * $page_max)) break; } $page ['page'] = $page_c; $page ['lower'] = (-- $on_page) * $page_size; return $page; } /** * 获取总页数 * @param unknown_type $table * @param unknown_type $condition */ public function get_table_count($table = "", $condition = "") { //$sql = "select count(*) as count from " . $table . " where 1 " . $condition; $sql = "select count(*) as count from " . $table . " where 1 " . $condition; //echo $sql;die; $query = Doo::db ()->query ( $sql ); $result = $query->fetch (); return $result ['count']; } /** * 获取上一页 * @param unknown_type $on_page */ function get_previous($on_page = 1) { return $on_page != 0 ? $on_page - 1 : $on_page; } } ?>