"; include $path; die (); } } private function cacheFile($path) { $content = ob_get_contents (); $fp = fopen ( $path, "w" ); fwrite ( $fp, $content ); fclose ( $fp ); } 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; } private function _itineraryDateMin(){ Doo::loadModel ( "itinerary" ); $itinerary = new itinerary (); $itineraryDetail=$itinerary->getOne(array ( 'where'=>'sid ='.$this->staff [0] ['sid'], 'desc'=>'itineraryDate', 'asArray' => true )); return date("Y-m-d",strtotime("+1 day",strtotime($itineraryDetail['itineraryDate']))); } public function beforeRun($resource, $action) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $sid = $XDeode->decode ( $_COOKIE ["staff"] ); // 单独判断公司汇总的访问权限 if ($action == 'companyCategoryCollect') { Doo::loadModel ( "receiptAuthorityManage" ); $invoiceCompanyManage = new receiptAuthorityManage (); $icm = $invoiceCompanyManage->getInvoiceCMByStaff ( $sid ); if (empty ( $icm )) die ( 'illegal request-statistics' ); } Doo::loadModel ( 'staff' ); $staff = new staff (); $detail = $staff->getStaffBySid ( $_COOKIE ["staff"] ); $accessModular = 'RECEIPTS'; if (empty ( $detail ['cldAccessArray'] )) die ( 'illegal request' ); else { if (in_array ( $accessModular, $detail ['cldAccessArray'] )) { if (Doo::acl ()->isAllowed ( $accessModular, $resource, $action )) { $flag = true; } else { $flag = false; } } else { die ( 'illegal request' ); } } if (! $flag) die ( 'illegal request' ); } 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 ( 'where'=>'mold !="日常收支"', '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 ); //print_r($this->executeId); $this->verifyId = $list; $this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] ); // 检测用户信息完成 $this->data ['isStaffCompleteMsg'] = false; $detail = $staff->checkStaffInfoIsComplete ( $_COOKIE ["staff"] ); if (! empty ( $detail )) $this->data ['isStaffCompleteMsg'] = true; 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() { $travel= $this->get_args ( 'travel' ) ? $this->get_args ( 'travel' ) : ""; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'verify' ); $verify = new verify (); Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); Doo::loadModel ( "role" ); $role = new role (); Doo::loadModel ( "receiptLog" ); $receiptLog = new receiptLog (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $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] ['ridKey'] = $XDeode->encode ( $value ['rid'] ); $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); Doo::loadModel ( 'RAssist' ); $RAssist = new RAssist (); $receiptExtendList=$RAssist->getRAssistBySid($this->staff[0]['sid']); //费用项目 $acItem = $accountItem->find ( array ('asArray' => true) ); if ($travel=='success'){ $data ['travel'] =true; }else{ $data ['travel'] =false; } $data ['acItem'] = $acItem; $data ['receiptExtendList'] = $receiptExtendList; $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 ( "/receipt/receiptFee", $data ); } /** * 费用报销单-导流入哪个细分类 */ function receiptFeeDiversion(){ $feeType= $this->get_args ( 'feeType' ) ? $this->get_args ( 'feeType' ) : ""; if($feeType==2){ return '/receipt/feeTravel'; }elseif($feeType==3){ return '/receipt/feeInternalTrain'; }else{ return '/receipt/feeAgency'; } } private function _feeData(){ Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); Doo::loadModel ( 'verify' ); $verify = new verify (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadModel ( "role" ); $role = new role (); $acItem = $accountItem->find ( array ( 'asArray' => true ) ); $veList = $verify->getVerifyBySubordinate('RECEIPT'); $data ['category'] = $lCategory->find ( array ( 'asArray' => true ) ); $data ['itineraryDate'] = $this->_itineraryDateMin(); $data ['veList'] = $veList; $data ['acItem'] = $acItem; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; return $data; } /** * 办事处相关费用 */ function feeAgency(){ $data=$this->_feeData(); $this->render ( "/receipt/feeAgency", $data ); } /** * 办事处 */ function feeTravel(){ $data=$this->_feeData(); $this->render ( "/receipt/feeTravel", $data ); } function feeInternalTrain(){ $data=$this->_feeData(); $this->render ( "/receipt/feeInternalTrain", $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->getVerifyBySubordinate('RECEIPT'); $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 ); } private function _storageItinerary($itinerary,$rid,$version=2){ $itineraryJson=json_decode($itinerary,true); Doo::loadModel ( 'itinerary' ); $itinerary = new itinerary (); $itinerary->delete(array('where' => 'rid=' . $rid )); if($version==2){ foreach ($itineraryJson as $k=>$v){ foreach ($v as $kk=>$vv){ foreach ($vv as $key=>$value){ if($key==0){ $feeTraveItem=json_encode($value['feeTraveItem']); $itinerary = new itinerary (); $itinerary->rid=$rid; $itinerary->sid=$this->staff [0] ['sid']; $itinerary->itineraryDate=$value['departuredate']; $itinerary->itineraryCity=$value['departurecity']; $itinerary->feeTraveItem=''; $itinerary->itineraryIndex=0; $itinerary->insert (); $itinerary = new itinerary (); $itinerary->rid=$rid; $itinerary->sid=$this->staff [0] ['sid']; $itinerary->itineraryDate=substr($value['arrivalsdate'],1); $itinerary->itineraryCity=substr($value['arrivalscity'],1); $itinerary->feeTraveItem=$feeTraveItem; $itinerary->itineraryIndex=1; $itinerary->insert (); }else{ $feeTraveItem=json_encode($value['feeTraveItem']); $itinerary = new itinerary (); $itinerary->rid=$rid; $itinerary->sid=$this->staff [0] ['sid']; $itinerary->itineraryDate=substr($value['arrivalsdate'],1); $itinerary->itineraryCity=substr($value['arrivalscity'],1); $itinerary->feeTraveItem=$feeTraveItem; $itinerary->itineraryIndex=$key+1; $itinerary->insert (); } } } } }elseif($version==1){ foreach ($itineraryJson as $key=>$value){ if($key==0){ $feeTraveItem=json_encode($value['feeTraveItem']); $itinerary = new itinerary (); $itinerary->rid=$rid; $itinerary->sid=$this->staff [0] ['sid']; $itinerary->itineraryDate=$value['departuredate']; $itinerary->itineraryCity=$value['departurecity']; $itinerary->feeTraveItem=''; $itinerary->itineraryIndex=0; $itinerary->insert (); $itinerary = new itinerary (); $itinerary->rid=$rid; $itinerary->sid=$this->staff [0] ['sid']; $itinerary->itineraryDate=substr($value['arrivalsdate'],1); $itinerary->itineraryCity=substr($value['arrivalscity'],1); $itinerary->feeTraveItem=$feeTraveItem; $itinerary->itineraryIndex=1; $itinerary->insert (); }else{ $feeTraveItem=json_encode($value['feeTraveItem']); $itinerary = new itinerary (); $itinerary->rid=$rid; $itinerary->sid=$this->staff [0] ['sid']; $itinerary->itineraryDate=substr($value['arrivalsdate'],1); $itinerary->itineraryCity=substr($value['arrivalscity'],1); $itinerary->feeTraveItem=$feeTraveItem; $itinerary->itineraryIndex=$key+1; $itinerary->insert (); } } }else{ die ( '行程单版本不正确' ); } } private function _verificationItinerary($itinerary){ Doo::loadModel ( 'itinerary' ); $itineraryObj = new itinerary (); if(empty($itinerary)){ header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写行程单' ); } $itineraryJson=json_decode($itinerary,true); $itineraryDate=array();$sql=array(); foreach ($itineraryJson as $k=>$v){ foreach ($v as $kk=>$vv){ foreach ($vv as $key=>$value){ if(empty($value['departuredate'])||empty($value['arrivalsdate'])){ header ( 'Content-Type:text/html;charset=utf-8' ); die ( '有行程的日期未设置' ); } if($key==0){ array_push($itineraryDate, $value['departuredate']); array_push($itineraryDate, substr($value['arrivalsdate'],1)); array_push($sql,'?');array_push($sql,'?'); }else{ array_push($itineraryDate, substr($value['arrivalsdate'],1)); array_push($sql,'?'); } } } } array_push($itineraryDate, $this->staff [0] ['sid']); $sql=implode(',',$sql); // $itineraryDate=array();$sql=array(); // foreach ($itineraryJson as $key=>$value){ // if($key==0){ // array_push($itineraryDate, $value['departuredate']); // array_push($itineraryDate, substr($value['arrivalsdate'],1)); // array_push($sql,'?');array_push($sql,'?'); // }else{ // array_push($itineraryDate, substr($value['arrivalsdate'],1)); // array_push($sql,'?'); // } // } // array_push($itineraryDate, $this->staff [0] ['sid']); // $sql=implode(',',$sql); if(empty($sql)){ header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写行程单-2' ); } $qualification=array( 'where' => 'itineraryDate in ('.$sql.') and sid=? ', 'param' => $itineraryDate, 'asArray' => TRUE); $itDateList=$itineraryObj->find($qualification); if(empty($itDateList)){ return false; }else{ return true; } } private function _buildFeeData($receiptClass=1,$itinerary=''){ $agency = $this->get_args ( 'agency' ); $travel = $this->get_args ( 'travel' ); $train = $this->get_args ( 'train' ); $other = $this->get_args ( 'other' ); $inttrain = $this->get_args ( 'inttrain' ); $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' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } if($receiptClass==2){ //TODO 日期检测 if($this->_verificationItinerary($itinerary)){ header ( 'Content-Type:text/html;charset=utf-8' ); die ( '已申请过类此日期的行程' ); } } $itinerary=str_replace('\n','
',$itinerary); 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 ) ); $aItem = $accountItem->find ( array ( 'asArray' => true ) ); $accountJson [$this->AGENCY]=$accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array (); $ag = $tr = $ta = $ot= $it = 0; $sum = $agencySum = $travelSum = $trainSum =$inttrainSum= $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->INTTRAIN) { if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) { array_push ( $accountJson [$this->INTTRAIN], array ( 'aid' => $value ['aid'], 'name' => $value ['name'], 'price' => number_format ( $inttrain [$it], 2, '.', '' ) ) ); $sum += $inttrain [$it]; $inttrainSum += $inttrain [$it]; } $it ++; } 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, '.', '' ), 'inttrainSum'=>number_format ( $inttrainSum, 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 ); $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $explanation = str_replace ( $order, $replace, $explanation ); $receipt->explanation = $explanation; $receipt->receiptClass = $receiptClass; $receipt->itinerary2=$itinerary; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) { $receipt->coupletNumber = $coupletNumber; } $rid = $receipt->insert (); //记录行程单 $this->_storageItinerary($itinerary,$rid); // 附件 if (! empty ( $enclosurName )) { $enclosurArray = explode ( '-', $enclosurName ); foreach ( $enclosurArray as $value ) { $enclosur = new enclosur (); $enclosur->name = $value; $enclosur->rid = $rid; $enclosur->insert (); } } // 报销详情 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->INTTRAIN] as $key => $value ) { $receiptDetail = new receiptDetail (); $receiptDetail->staff = $this->staff [0] ['sid']; $receiptDetail->item = $value ['name']; $receiptDetail->itemCategory = $this->INTTRAIN; $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 true; } else return false; } function addReceipt() { // include Doo::conf()->BASE_PATH.'diagnostic/debug.php'; if ($this->_buildFeeData(1)) { return "/saeaBorad"; } else{ die ( 'illegal request' ); } } function addFeeTravel(){ $itinerary = $_POST['itinerary'] ? $_POST['itinerary'] : ""; $itineraryList=json_decode($itinerary,true); // foreach ($itineraryList as $key=>$value){ // if(empty($value['departuredate'])||empty($value['departurecity'])){ // header ( 'Content-Type:text/html;charset=utf-8' ); // die ( '请设置出发地和出发日期' ); // } // } if ($this->_buildFeeData(2,$itinerary)) { return "/saeaBorad?travel=success"; } else{ die ( 'illegal request' ); } } function addFeeInternalTrain(){ if ($this->_buildFeeData(3)) { return "/saeaBorad"; } else{ die ( 'illegal request' ); } } 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 $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (empty ( $rid )) { die ( 'illegal request-id' ); } // echo $rid.'sd'; 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 ( 'enclosur' ); $enclosur = new enclosur (); $receiptDetail = $receipt->getOne ( array ( 'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)', 'asArray' => true ) ); if (empty ( $receiptDetail )) { die ( 'illegal request-emptyData' ); } $enclosurList = $enclosur->getEnclosurByRid ( $receiptDetail ['rid'] ); $acItem = $accountItem->find ( array ( 'asArray' => true ) ); $veList = $verify->getVerifyBySubordinate ( 'RECEIPT' ); // 配置编辑信息 $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->INTTRAIN] as $k => $v ) { if ($acItem [$key] ['category'] == $this->INTTRAIN && $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']; } } } //$receiptDetail['itinerary']=str_replace('\n','
',$receiptDetail['itinerary']); //nl2br($receiptDetail['explanation']); $receiptDetail['explanation']= str_replace('
',"\n",$receiptDetail['explanation']); $data ['category'] = $lCategory->find ( array ( 'asArray' => true ) ); $data ['cSum'] = $accountItemList ['cSum']; $data ['sum'] = $receiptDetail ['sum']; $data ['enclosurList'] = $enclosurList; $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'] = $ridKey; if($receiptDetail['receiptClass']==1){ $this->render ( "/receipt/feeAgencyEdi", $data ); }elseif($receiptDetail['receiptClass']==2){ if(!empty($receiptDetail['itinerary2'])){ //TODO 报销说明 $this->render ( "/receipt/feeTravelEdi2", $data ); }else{ $this->render ( "/receipt/feeTravelEdi", $data ); } }elseif($receiptDetail['receiptClass']==3){ $this->render ( "/receipt/feeInternalTrainEdi", $data ); }else{ $this->render ( "/admin/saea_edit", $data ); //die ( 'illegal request-renderHtml' ); } } function updateReceipt() { $agency = $this->get_args ( 'agency' ); $travel = $this->get_args ( 'travel' ); $train = $this->get_args ( 'train' ); $other = $this->get_args ( 'other' ); $inttrain = $this->get_args ( 'inttrain' ); $receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : ""; $itinerary = $_POST['itinerary']; $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; $ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0; $enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! empty ( $rid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } Doo::loadModel ( 'receipt' ); Doo::loadModel ( 'receiptDetail' ); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $receipt = new receipt (); Doo::loadModel ( 'enclosur' ); 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"; } //TODO 存储行程单-兼容旧版本的行程单 $itinerary=str_replace('\n','
',$itinerary); if(!empty($receiptDetail['itinerary2'])){ $this->_storageItinerary($itinerary,$rid); }else{ $this->_storageItinerary($itinerary,$rid,1); } 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->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array (); $ag = $tr = $ta = $ot = $it = 0; $sum = $agencySum = $travelSum = $trainSum = $inttrainSum = $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->INTTRAIN) { if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) { array_push ( $accountJson [$this->INTTRAIN], array ( 'aid' => $value ['aid'], 'name' => $value ['name'], 'price' => number_format ( $inttrain [$it], 2, '.', '' ) ) ); $sum += $inttrain [$it]; $inttrainSum += $inttrain [$it]; } $it ++; } 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, '.', '' ), 'inttrainSum' => number_format ( $inttrainSum, 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; } } if ($receiptDetail != 4 && ! empty ( $verify )) $receipt->verify = $verify; $receipt->executeCopy = $executeDetail ['staff']; $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $explanation = str_replace ( $order, $replace, $explanation ); $receipt->explanation = $explanation; if($receiptClass=='trave'){ if(!empty($receiptDetail['itinerary2'])){//行程单版本 $receipt->itinerary2=$itinerary; }else{ $receipt->itinerary=$itinerary; } } $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $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->INTTRAIN] as $key => $value ) { $receiptDetail = new receiptDetail (); $receiptDetail->staff = $this->staff [0] ['sid']; $receiptDetail->item = $value ['name']; $receiptDetail->itemCategory = $this->INTTRAIN; $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 (); } // 附件 if (! empty ( $enclosurName )) { $enclosurArray = explode ( '-', $enclosurName ); foreach ( $enclosurArray as $value ) { $enclosur = new enclosur (); $enclosur->name = $value; $enclosur->rid = $rid; $enclosur->insert (); } } // return "/referReceipt/".$rid; } return "/saeaBorad"; } 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->getVerifyBySubordinate('REMIT'); $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' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; // print_r($agency);die; if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } 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 "服务器费用" or name like "邮寄费" or name like "其他费用" or name like "公积金" or name like "社保") and category like "'.$this->AGENCY.'"', '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; print_r($aItem); 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, '.', '' ) ); //die; // 报销单 $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 ); $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $explanation = str_replace ( $order, $replace, $explanation ); $receipt->explanation = $explanation; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $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"; } else die ( 'illegal request' ); } function remitEdit() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); 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 ( 'enclosur' ); $enclosur = new enclosur (); $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"; $enclosurList = $enclosur->getEnclosurByRid ( $receiptDetail ['rid'] ); $acItem = $accountItem->find ( array ( 'asArray' => true ) ); $veList = $verify->getVerifyBySubordinate('REMIT'); // 配置编辑信息 $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 ['enclosurList'] = $enclosurList; $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; $data ['ridKey'] = $ridKey; $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; $ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0; $enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! empty ( $rid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } Doo::loadModel ( 'receipt' ); Doo::loadModel ( 'receiptDetail' ); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $receipt = new receipt (); Doo::loadModel ( 'enclosur' ); $enclosur = new 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 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 "服务器费用" or name like "邮寄费" or name like "其他费用" or name like "公积金" or name like "社保") and category like "'.$this->AGENCY.'"', '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; if ($receiptDetail ['status'] != 4 && ! empty ( $verify )) $receipt->verify = $verify; $receipt->executeCopy = $executeDetail ['staff']; $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $explanation = str_replace ( $order, $replace, $explanation ); $receipt->explanation = $explanation; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $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 (); } // 附件 if (! empty ( $enclosurName )) { $enclosurArray = explode ( '-', $enclosurName ); foreach ( $enclosurArray as $value ) { $enclosur = new enclosur (); $enclosur->name = $value; $enclosur->rid = $rid; $enclosur->insert (); } } } 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 . ' and status=2', 'desc' => 'rid', 'asArray' => true ) ); if (empty ( $receiptList )) { die ( 'illegal request' ); } $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->getVerifyBySubordinate('LOAN'); $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' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; // die; if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } 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 ) ); $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; // 添加HTML换行符 // var_dump($explanation); $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $explanation = str_replace ( $order, $replace, $explanation ); // $explanation=str_replace('\r',"
",$explanation); // $explanation=str_replace('\r\n',"
",$explanation); $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; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $rid = $receipt->insert (); return "/saeaBorad"; } else die ( 'illegal request' ); } function saeaLoanEdi() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); 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 ( 'where'=>'subordinate like "%LOAN%"', '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 ); // print_r($receiptInfo); $data ['receiptInfo'] = $receiptInfo; $data ['category'] = $lCategory->find ( array ( 'asArray' => true ) ); $data ['veList'] = $veList; $data ['ridKey'] = $ridKey; $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() { $ridKey = $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' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; // die; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } 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 or status=4) 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; // 特殊状态 // 修改审批流程加入角色 if ($receiptDetail ['status'] != 4) $receipt->verify = $verify; $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $explanation = str_replace ( $order, $replace, $explanation ); $receipt->explanation = $explanation; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); // 借款数据更新 $loanReceipt->loanItem = json_encode ( $accountJson ); $loanReceipt->sum = number_format ( $sum, 2, '.', '' ); $loanReceipt->cid = $cid; if ($receiptDetail ['status'] != 4) $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; $receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : ""; 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 (); $receiptDetail = $receipt->getOne ( array ( 'where' => 'rid=' . $rid, 'desc' => 'rid', 'asArray' => true ) ); $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; $data ['receiptDetail'] = $receiptDetail; Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $acItem = $accountItem->find ( array ( 'asArray' => true ) ); $veList = $verify->getVerifyBySubordinate('RECEIPT','LOAN'); $data ['rid'] = $rid; $data ['category'] = $lCategory->find ( array ( 'asArray' => true ) ); $data ['veList'] = $veList; $data ['acItem'] = $acItem; $data['itineraryDate']=$this->_itineraryDateMin(); $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $data['receiptClass']=$receiptClass; if($receiptClass=='trave'){ $this->render ( "/receipt/feeLoanReceiptTrave", $data ); }else{ $this->render ( "/receipt/feeLoanReceipt", $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' ); $inttrain = $this->get_args ( 'inttrain' ); $itinerary = $_POST['itinerary'];//$this->get_args ( 'itinerary' ) ? $this->get_args ( 'itinerary' ) : ""; $receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : ""; $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' ) : ""; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } if($receiptClass=='agency'){ $receiptClass=1; }elseif($receiptClass=='trave'){ $receiptClass=2; if($this->_verificationItinerary($itinerary)){ header ( 'Content-Type:text/html;charset=utf-8' ); die ( '已申请过类此日期的行程' ); } }elseif($receiptClass=='internalTrain'){ $receiptClass=3; }else{ header ( 'Content-Type:text/html;charset=utf-8' ); die ( '借款报销单分类不正确' ); } 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->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array (); $ag = $tr = $ta = $ot =$it = 0; $sum = $agencySum = $travelSum = $trainSum =$inttrainSum= $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->INTTRAIN) { if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) { array_push ( $accountJson [$this->INTTRAIN], array ( 'aid' => $value ['aid'], 'name' => $value ['name'], 'price' => number_format ( $inttrain [$it], 2, '.', '' ) ) ); $sum += $inttrain [$it]; $inttrainSum += $inttrain [$it]; } $it ++; } 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, '.', '' ), 'inttrainSum'=>number_format ( $inttrainSum, 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 = '0000-00-00'; $receipt->cid = $cid; $receipt->status = 7; $receipt->receiptClass=$receiptClass; if($receiptClass==2){ $receipt->itinerary=$itinerary; $this->_storageItinerary($itinerary, $rid); } // 修改审批流程加入角色 $receipt->verify = $verify; $receipt->verifyStaff = ''; $receipt->executeStaff = ''; $receipt->executeCopy = $executeDetail ['staff']; // $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999); $receipt->explanation = $explanation; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $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->INTTRAIN] as $key => $value ) { $receiptDetail = new receiptDetail (); $receiptDetail->staff = $this->staff [0] ['sid']; $receiptDetail->item = $value ['name']; $receiptDetail->itemCategory = $this->INTTRAIN; $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() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); 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->INTTRAIN] as $k => $v ) { if ($acItem [$key] ['category'] == $this->INTTRAIN && $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 ['ridKey'] = $ridKey; $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; if($receiptDetail['receiptClass']==1){ $this->render ( "/receipt/feeLoanReceiptAgencyEdi", $data ); }elseif($receiptDetail['receiptClass']==2){ $this->render ( "/receipt/feeLoanReceiptTraveEdi", $data ); }elseif($receiptDetail['receiptClass']==3){ $this->render ( "/receipt/feeLoanReceiptITEdi", $data ); }else{ $this->render ( "/admin/saeaLoanEdiReceipt", $data ); } } /** * 培训班结算 */ function receiptTrainAdd() { Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $acItem = $accountItem->find ( array ( 'asArray' => true ) ); // 审批组 Doo::loadModel ( 'verify' ); $verify = new verify (); $veList = $verify->getVerifyBySubordinate('TRAIN'); // 办事处 Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); $data ['category'] = $lCategory->getCategory (); $data ['veList'] = $veList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['acItem'] = $acItem; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/receipt/receiptTrainAdd", $data ); } /** * 添加培训班结算 */ function receiptTrainAddDo() {//include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php'; // 培训班信息 $trainName = $this->get_args ( 'trainName' ) ? $this->get_args ( 'trainName' ) : ""; $trainStartDate = $this->get_args ( 'trainStartDate' ) ? $this->get_args ( 'trainStartDate' ) : ""; $trainEndDate = $this->get_args ( 'trainEndDate' ) ? $this->get_args ( 'trainEndDate' ) : ""; $participants = $this->get_args ( 'participants' ) && is_numeric ( $this->get_args ( 'participants' ) ) ? $this->get_args ( 'participants' ) : 0; $freeParticipants = $this->get_args ( 'freeParticipants' ) && is_numeric ( $this->get_args ( 'freeParticipants' ) ) ? $this->get_args ( 'freeParticipants' ) : 0; $trainAddress = $this->get_args ( 'trainAddress' ) ? $this->get_args ( 'trainAddress' ) : ""; $trainRemarks = $this->get_args ( 'trainRemarks' ) ? $this->get_args ( 'trainRemarks' ) : ""; // 发票信息 $verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; //&&! empty ( $participants ) if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber ) && ! empty ( $trainName ) && ! empty ( $trainStartDate ) && ! empty ( $trainEndDate ) && ! empty ( $trainAddress )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } Doo::loadModel ( 'execute' ); $execute = new execute (); $executeDetail = $execute->getOne ( array ( 'where' => 'mold="培训班结算"', 'asArray' => true ) ); if (empty ( $executeDetail )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '未设置执行人' ); } Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $cid = $XDeode->decode ( $cid ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); // 创建费用培训班 $item = array ( 'cid' => $this->staff [0] ['cid'], 'categoryName' => $this->staff [0] ['category'], 'trainName' => $trainName, 'trainStartDate' => $trainStartDate, 'trainEndDate' => $trainEndDate, 'participants' => $participants, 'freeParticipants'=>$freeParticipants, 'trainAddress' => $trainAddress, 'trainRemarks' => $trainRemarks, 'creator' => $this->staff [0] ['sid'], 'creatorDate' => date ( "Y-m-d H:i:s" ) ); $irid = $receiptTraining->addReceiptTraining ( $item ); // 报销单 $receipt->status = 5; $receipt->trainId = $irid; $receipt->Rtype = 3; $receipt->staff = $this->staff [0] ['sid']; $receipt->cid = $cid; $receipt->verify = $verify; $receipt->date = date ( "Y-m-d" ); $receipt->executeCopy = $executeDetail ['staff']; $receipt->receiptOrder = "#P" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $rid = $receipt->insert (); $XDeode = new XDeode ( 7 ); return "/receiptTrainEdi/" . $XDeode->encode ( $rid ) . ".html"; } else die ( 'illegal request' ); } /** * 培训班编辑 */ function receiptTrainEdi() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; $trainEdiType = $this->get_args ( 'trainEdiType' ) ? $this->get_args ( 'trainEdiType' ) : "INFO"; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)){ die ('illegal request--status'); } //如有已入账已收款的发票,自动取消办事处已收款 // Doo::loadModel ( 'RIExtend' ); // $RIExtend = new RIExtend (); // $RIExtendList=$RIExtend->getRIExtendByRid($rid); // if (!empty($RIExtendList)){ // foreach ($RIExtendList as $key=>$value){ // $RIExtend = new RIExtend (); // $RIExtend->delete(array ( // 'where' => 'iid=' . $value['iid'], // 'limit' => 1 // )); // } // } $receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] ); // 汇总表合计 // 收入合计--加入开票合计 Doo::loadModel ( 'invoiceTraining' ); $invoiceTraining = new invoiceTraining (); $invoiceTrainingDetail = array ( 'invoiceArriveAmount' => 0, 'RIAmount' => 0, 'invoiceTotalAmount' => 0, 'invoiceCompanyAmount'=>0 ); if ($receiptDetail ['invoiceTrainId'] != 0) { $invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $receiptDetail ['invoiceTrainId'] ); } // print_r($invoiceTrainingDetail); $invoiceArriveAmount = $RIAmount = 0; if (! empty ( $invoiceTrainingDetail )) { $invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount']; $RIAmount = $invoiceTrainingDetail ['RIAmount']; } $data ['invoiceTrainingDetail'] = $invoiceTrainingDetail; //print_r($invoiceTrainingDetail); // 支出项目 Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); // 项目金额合计 Doo::loadModel ( 'RItem' ); $RItem = new RItem (); // 讲师获得 Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); $RItemList = $RItem->getRItemByRid ( $rid ); $RILecturerList = $RILecturer->getRILecturerByRid ( $rid ); // 支出项金额详情 $aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount ); // print_r($aiData); // 利润 $profit=$invoiceArriveAmount - $aiData ['total']; $companyProfit=$profit * 0.6; $categoryProfit=$profit * 0.4; $data ['profit'] = sprintf("%.2f",$profit); $data ['companyProfit'] = sprintf("%.2f",$companyProfit); $data ['categoryProfit'] = sprintf("%.2f",$categoryProfit); //发票利润 $data ['invoiceProfit'] = $invoiceTrainingDetail ['invoiceTotalAmount'] - $aiData ['total']; //发票公司利润 $invoiceCompanyProfit=$data ['invoiceProfit'] * 0.6; $data ['invoiceCompanyProfit'] = sprintf("%.2f",$invoiceCompanyProfit); //办事处利润 $invoiceCategoryProfit=$data ['invoiceProfit'] * 0.4; $data ['invoiceCategoryProfit'] = sprintf("%.2f",$invoiceCategoryProfit); // print_r($aiData['dataList']); $categoryActualExpenditure= $aiData ['total'] - $aiData ['categoryActualExpenditure']; $data ['categoryActualExpenditure'] = sprintf("%.2f",$categoryActualExpenditure); // 备用金 $sum = 0; $data ['receiptLoanDetail'] = array ( 'sum' => '0.00' ); if (! empty ( $receiptDetail ['trainLoanRid'] )) { //$data ['receiptLoanDetail'] = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] ); $receiptLoanList = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] ); $sum=0; foreach ($receiptLoanList as $key=>$value){ $sum+=$value['sum']; } $data ['receiptLoanDetail'] = array ( 'sum' => $sum ); //$sum = $data ['receiptLoanDetail'] ['sum']; } $payment=$sum + $RIAmount - $categoryActualExpenditure; $data ['payment'] = sprintf("%.2f",$payment); $data ['total'] = sprintf("%.2f",$aiData ['total']); $data ['aiCount'] = count ( $aiData ['dataList'] ) + 5; $data ['aiList'] = $aiData ['dataList']; // 占比计算 if ($invoiceArriveAmount != 0) { $data ['totalProportion'] = sprintf("%.2f",$aiData ['total'] / $invoiceArriveAmount* 100) ; $data ['profitProportion'] = sprintf("%.2f",$profit / $invoiceArriveAmount*100) ; //number_format ( $profit / $invoiceArriveAmount, 2, '.', '' ) * 100; $data ['sumProportion'] = sprintf("%.2f",$sum / $invoiceArriveAmount*100) ; //number_format ( $sum / $invoiceArriveAmount, 2, '.', '' ) * 100; $data ['invoiceTotalAmountProportion'] = sprintf("%.2f",$data ['invoiceTrainingDetail'] ['invoiceCompanyAmount'] / $invoiceArriveAmount*100) ; $data ['RIAmountProportion'] = sprintf("%.2f",$data ['invoiceTrainingDetail'] ['RIAmount'] / $invoiceArriveAmount*100) ; $data ['companyProfitProportion'] = sprintf("%.2f",$companyProfit / $invoiceArriveAmount*100) ; $data ['categoryProportion'] = sprintf("%.2f",$categoryProfit / $invoiceArriveAmount*100) ; $data ['categoryActualExpenditureProportion'] = sprintf("%.2f",$categoryActualExpenditure / $invoiceArriveAmount*100) ; $data ['paymentProportion'] = sprintf("%.2f",$payment / $invoiceArriveAmount*100) ; } else { $data ['totalProportion'] = $data ['profitProportion'] = $data ['sumProportion'] = $data ['invoiceTotalAmountProportion'] = $data ['RIAmountProportion'] = $data ['companyProfitProportion'] = $data ['categoryActualExpenditureProportion'] = $data ['paymentProportion'] = $data ['categoryProportion'] = 0; } //发票金额占比计算 if ($invoiceTrainingDetail ['invoiceTotalAmount'] != 0) { //支出 $data ['invoicetotalProportion'] = sprintf("%.2f",$aiData ['total'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //利润 $data ['invoiceprofitProportion'] = sprintf("%.2f",$data ['invoiceProfit'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //公司利润 $data ['invoicecompanyProfitProportion'] = sprintf("%.2f", $invoiceCompanyProfit / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //办事处利润 $data ['invoicecategoryProportion'] = sprintf("%.2f", $invoiceCategoryProfit / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //公司收款 $data ['invoiceTotalAmountProportionB'] = sprintf("%.2f", $data ['invoiceTrainingDetail'] ['invoiceCompanyAmount'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //备用金 $data ['invoicesumProportion'] = sprintf("%.2f", $sum / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //办事处收款 $data ['invoiceRIAmountProportion'] = sprintf("%.2f", $data ['invoiceTrainingDetail'] ['RIAmount'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //办事处实际支出 $data ['ICAEP'] = sprintf("%.2f", $categoryActualExpenditure / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; //付总部款 $data ['invoicepaymentProportion'] = sprintf("%.2f", $payment / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ; }else{ $data ['invoiceprofitProportion'] =$data ['invoiceRIAmountProportion'] =$data ['invoicetotalProportion'] =$data ['invoiceTotalAmountProportionB'] =$data ['invoicesumProportion'] =$data ['ICAEP'] =$data ['invoicepaymentProportion'] =$data ['invoicecompanyProfitProportion'] =$data ['invoicecategoryProportion'] =0; } //讲师人数 Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); $RILecturerList = $RILecturer->getRILecturerByRid ( $rid ); $data['lectureCount']=count($RILecturerList); // 审批组 Doo::loadModel ( 'verify' ); $verify = new verify (); $veList = $verify->getVerifyBySubordinate('TRAIN'); // 办事处 Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); $data ['category'] = $lCategory->getCategory (); $data ['receiptTrainingDetail'] = $receiptTrainingDetail; $data ['receiptDetail'] = $receiptDetail; $data ['veList'] = $veList; $data ['trainEdiType'] = $trainEdiType; $data ['ridKey'] = $ridKey; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/receipt/receiptTrainEdi", $data ); } /** * 培训班借款编辑 */ function receiptTrainLoanEdi() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); Doo::loadModel ( 'verify' ); $verify = new verify (); $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) die (); $receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] ); // 借款详情HTML // 获得借款信息 $receiptLoanHtml = ''; if (! empty ( $receiptDetail ['trainLoanRid'] )) { $receiptLoanList = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] ); foreach ($receiptLoanList as $key=>$value){ // 获得某费用单审批信息 $verifylist = $verify->getVerifyByRid ( $value ['rid'] ); Doo::loadClass ( 'receipt.func' ); $extendHtml = '

移除借款

'; $receiptLoanHtml .= _getReceiptLoanHtml ( $value, $verifylist, $extendHtml ); } } $data ['receiptLoanHtml'] = $receiptLoanHtml; $data ['receiptTrainingDetail'] = $receiptTrainingDetail; $data ['receiptDetail'] = $receiptDetail; $data ['trainEdiType'] = "LOAN"; $data ['ridKey'] = $ridKey; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/receipt/receiptTrainLoanEdi", $data ); } /** * 更新培训班结算基本信息 */ function receiptTrainInfoEdiDo() { $rid = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : ""; $rtid = $this->get_args ( 'rtid' ) ? $this->get_args ( 'rtid' ) : ""; // 培训班信息 $trainName = $this->get_args ( 'trainName' ) ? $this->get_args ( 'trainName' ) : ""; $trainStartDate = $this->get_args ( 'trainStartDate' ) ? $this->get_args ( 'trainStartDate' ) : ""; $trainEndDate = $this->get_args ( 'trainEndDate' ) ? $this->get_args ( 'trainEndDate' ) : ""; $participants = $this->get_args ( 'participants' ) && is_numeric ( $this->get_args ( 'participants' ) ) ? $this->get_args ( 'participants' ) : 0; $freeParticipants = $this->get_args ( 'freeParticipants' ) && is_numeric ( $this->get_args ( 'freeParticipants' ) ) ? $this->get_args ( 'freeParticipants' ) : 0; $trainAddress = $this->get_args ( 'trainAddress' ) ? $this->get_args ( 'trainAddress' ) : ""; $trainRemarks = $this->get_args ( 'trainRemarks' ) ? $this->get_args ( 'trainRemarks' ) : ""; // 发票信息 $verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0; $remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : ""; $bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : ""; $bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : ""; $coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : ""; $remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0; //&& ! empty ( $participants ) if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber ) && ! empty ( $trainName ) && ! empty ( $trainStartDate ) && ! empty ( $trainEndDate ) && ! empty ( $trainAddress )) { if ($remittanceBankType == 1 && empty ( $coupletNumber )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '请填写联行号' ); } Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $cid = $XDeode->decode ( $cid ); $rtid = $XDeode->decode ( $rtid ); $rid = $XDeode->decode ( $rid ); if (! is_numeric ( $rtid ) || ! is_numeric ( $rid )) { die ( 'illegal request-IdError' ); } Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); // 更新费用培训班 $item = array ( 'rtid' => $rtid, 'trainName' => $trainName, 'trainStartDate' => $trainStartDate, 'trainEndDate' => $trainEndDate, 'participants' => $participants, 'freeParticipants'=>$freeParticipants, 'trainAddress' => $trainAddress, 'trainRemarks' => $trainRemarks ); $irid = $receiptTraining->setReceiptTrainByCondition ( $item ); // 报销单 $receipt->rid = $rid; $receipt->cid = $cid; $receipt->verify = $verify; $receipt->remittanceName = $remittanceName; $receipt->bankName = $bankName; $receipt->bankNumber = $bankNumber; $receipt->remittanceBankType = $remittanceBankType; if ($remittanceBankType == 1) $receipt->coupletNumber = $coupletNumber; $receipt->update (); $XDeode = new XDeode ( 7 ); return "/receiptTrainEdi/" . $XDeode->encode ( $rid ) . ".html?trainEdiType=INFO"; } else die ( 'illegal request' ); } /** * 编辑培训班结算---更新借款 */ function receiptTrainLoanEdiDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; $ridLoanKey = $this->get_args ( 'ridLoanKey' ) ? $this->get_args ( 'ridLoanKey' ) : ""; if (! empty ( $ridKey ) && ! empty ( $ridLoanKey )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $ridKey ); $ridLoan = $XDeode->decode ( $ridLoanKey ); if (! is_numeric ( $rid ) || ! is_numeric ( $ridLoan )) die ( 'illegal request-ridError' ); $receiptDetail = $receipt->getReceiptByRid ( $rid ); $receiptLoanDetail = $receipt->getReceiptByRid ( $ridLoan ); // 不合法的数据if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)) if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) { die ( 'illegal request-receiptError' ); } if ($receiptLoanDetail ['status'] != 8 || $receiptLoanDetail ['Rtype'] != 1) { die ( 'illegal request-receipLoantError' ); } // 培训班结算挂钩借款 $receipt = new receipt (); $trainLoanRid=$ridLoan; if (!empty($receiptDetail['trainLoanRid'])){ $trainLoanRid=$receiptDetail['trainLoanRid'].','.$ridLoan; } $item = array ( 'rid' => $rid, 'trainLoanRid' => $trainLoanRid ); $receipt->setReceiptByCondition ( $item ); // 更新借款状态变成已挂钩 $receipt = new receipt (); $item = array ( 'rid' => $ridLoan, 'status' => 10, 'statusTrain' => 1 ); $receipt->setReceiptByCondition ( $item ); $XDeode = new XDeode ( 7 ); return "/receiptTrainLoanEdi/" . $XDeode->encode ( $rid ) . ".html"; } else die ( 'illegal request' ); } /** * 编辑培训班结算--移除借款 */ function receiptTrainLoanRemoveDo() { $ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : 0; $ridLoanKey = isset ( $this->params ['ridLoanKey'] ) ? $this->params ['ridLoanKey'] : 0; if (! empty ( $ridKey ) || ! empty ( $ridLoanKey )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $ridKey ); $ridLoan = $XDeode->decode ( $ridLoanKey ); if (! is_numeric ( $rid ) || ! is_numeric ( $ridLoan )) die ( 'illegal request-ridError' ); $receiptDetail = $receipt->getReceiptByRid ( $rid ); $receiptLoanDetail = $receipt->getReceiptByRid ( $ridLoan ); // 不合法的数据 !($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4) if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) { die ( 'illegal request-receiptError' ); } if ($receiptLoanDetail ['status'] != 10 || $receiptLoanDetail ['Rtype'] != 1) { die ( 'illegal request-receipLoantError' ); } // 培训班结算挂钩借款 $receipt = new receipt (); $trainLoanRidArray=explode(",", $receiptDetail['trainLoanRid']); foreach ($trainLoanRidArray as $key=>$value){ if($value==$ridLoan){ unset($trainLoanRidArray[$key]); } } $trainLoanRidString=implode(",", $trainLoanRidArray); $item = array ( 'rid' => $rid, 'trainLoanRid' => $trainLoanRidString ); $receipt->setReceiptByCondition ( $item ); // 更新借款状态变成已挂钩 $receipt = new receipt (); $item = array ( 'rid' => $ridLoan, 'status' => 8, 'statusTrain' => 0 ); $receipt->setReceiptByCondition ( $item ); $XDeode = new XDeode ( 7 ); return "/receiptTrainLoanEdi/" . $XDeode->encode ( $rid ) . ".html"; } else die ( 'illegal request' ); } /** * 编辑培训班结算 ---开票 */ function receiptTrainInvoiceEdi() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); Doo::loadModel ( 'invoice' ); $invoice = new invoice (); Doo::loadModel ( 'invoiceTraining' ); $invoiceTraining = new invoiceTraining (); $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) die (); $receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] ); $invoiceList = $invoiceTrainingDetail = array (); if ($receiptDetail ['invoiceTrainId'] != 0) { $invoiceList = $invoice->getInvoicePrintedByItid ( $receiptDetail ['invoiceTrainId'] ); $invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $receiptDetail ['invoiceTrainId'] ); } //print_r($invoiceList); $data ['invoiceList'] = $invoiceList; $data ['invoiceTrainingDetail'] = $invoiceTrainingDetail; $data ['receiptTrainingDetail'] = $receiptTrainingDetail; $data ['receiptDetail'] = $receiptDetail; $data ['trainEdiType'] = "INVOICE"; $data ['ridKey'] = $ridKey; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/receipt/receiptTrainInvoiceEdi", $data ); } /** * 编辑培训班结算---更新开票 */ function receiptTrainInvoiceEdiDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; $itidKey = $this->get_args ( 'itidKey' ) ? $this->get_args ( 'itidKey' ) : ""; if (! empty ( $ridKey ) && ! empty ( $itidKey )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'invoiceTraining' ); $invoiceTraining = new invoiceTraining (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $ridKey ); $itid = $XDeode->decode ( $itidKey ); if (! is_numeric ( $rid ) || ! is_numeric ( $itid )) die ( 'illegal request-idError' ); $receiptDetail = $receipt->getReceiptByRid ( $rid ); $invoiceTrainDetail = $invoiceTraining->getInvoiceTrainingByItid ( $itid ); // 不合法的数据 if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) { die ( 'illegal request-receiptError' ); } if (empty ( $invoiceTrainDetail ) || $invoiceTrainDetail ['bindReceipt'] == 1) { die ( 'illegal request-receipLoantError' ); } // 培训班结算挂钩借款 $receipt = new receipt (); $item = array ( 'rid' => $rid, 'invoiceTrainId' => $itid ); $receipt->setReceiptByCondition ( $item ); $invoiceTraining = new invoiceTraining (); $item = array ( 'bindReceipt' => 1, 'itid' => $itid ); $invoiceTraining->setInvoiceTrainByCondition ( $item ); $XDeode = new XDeode ( 7 ); return "/receiptTrainInvoiceEdi/" . $XDeode->encode ( $rid ) . ".html"; } else die ( 'illegal request' ); } /** * 更新培训班结算 收款和取消收款 */ function receiptTrainReceivables() { $doType = isset ( $this->params ['doType'] ) ? $this->params ['doType'] : ''; $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; $iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : ""; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $ridKey ); $iid = $XDeode->decode ( $iidKey ); if (! is_numeric ( $rid ) || ! is_numeric ( $iid )) die ( 'illegal request-iid' ); Doo::loadModel ( 'RIExtend' ); $RIExtend = new RIExtend (); if ($doType == 'CONFIRM') { $RIExtend->rid = $rid; $RIExtend->iid = $iid; $RIExtend->RIstatus = 1; $RIExtend->insert (); echo json_encode ( array ( 'status' => 1, ) ); die ( ); } elseif ($doType == 'CANCEL') { $RIExtend->delete ( array ( 'where' => 'rid=' . $rid . ' and iid=' . $iid, 'limit' => 1 ) ); echo json_encode ( array ( 'status' => 1, ) ); die ( ); } else { echo json_encode ( array ( 'status' => 2, ) ); die ( ); } } /** * 移除挂钩的培训班发票 */ function receiptTrainReceivablesDelDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 费用 培训班结算 $itidKey = $this->get_args ( 'itidKey' ) ? $this->get_args ( 'itidKey' ) : ""; // 发票培训班 Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'RIExtend' ); $RIExtend = new RIExtend (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $ridKey ); $itid = $XDeode->decode ( $itidKey ); if (is_numeric ( $rid ) && is_numeric ( $itid )) { $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)){ die ( 'illegal request-status' ); } $receipt = new receipt (); $receipt->rid = $rid; $receipt->invoiceTrainId = 0; $receipt->update (); Doo::loadModel ( 'invoiceTraining' ); $invoiceTraining = new invoiceTraining (); $item = array ( 'bindReceipt' => 0, 'itid' => $itid ); $invoiceTraining->setInvoiceTrainByCondition ( $item ); $RIExtend->delete ( array ( 'where' => 'rid=' . $rid ) ); $XDeode = new XDeode ( 7 ); return '/receiptTrainInvoiceEdi/' . $XDeode->encode ( $rid ) . '.html'; } else die ( 'illegal request-iid' ); } /** * 编辑培训班结算 */ function receiptTrainItemEdi() { //include Doo::conf()->BASE_PATH.'diagnostic/debug.php'; $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; $name = $this->get_args ( 'name' ) ? $this->get_args ( 'name' ) : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); Doo::loadModel ( 'RItem' ); $RItem = new RItem (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)) die (); $receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] ); $RItemList = $RItem->getRItemByRid ( $rid,$name ); $aiList = $accountItem->getAccountBookByCategory ( '培训班费用' );//print_r($aiList); // foreach ($aiList as $key=>$value){//不需要添加税款,在添加收入时自动添加 // if($value['name']=='税款'){ // unset($aiList[$key]);break; // } // } //print_r($RItemList); $data ['name'] = $name; $data ['RItemList'] = $RItemList; $data ['aiList'] = $aiList; $data ['receiptTrainingDetail'] = $receiptTrainingDetail; $data ['receiptDetail'] = $receiptDetail; $data ['trainEdiType'] = "ITEM"; $data ['ridKey'] = $ridKey; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/receipt/receiptTrainItemEdi", $data ); } /** * 添加支出项 需要修改 费用金额合计 */ function receiptTrainItemAddDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; $rtidKey = $this->get_args ( 'rtidKey' ) ? $this->get_args ( 'rtidKey' ) : ""; // 支出项信息 $item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : ""; $price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : 0; $date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : ""; $inputer = $this->get_args ( 'inputer' ) ? $this->get_args ( 'inputer' ) : ""; $describe = $this->get_args ( 'describe' ) ? $this->get_args ( 'describe' ) : ""; //$identifyingTotal = $this->get_args ( 'identifyingTotal' )&&is_numeric($this->get_args ( 'identifyingTotal' )) ? $this->get_args ( 'identifyingTotal' ) : 0; $payType = isset ( $this->params ['payType'] ) ? $this->params ['payType'] : ''; if (! empty ( $ridKey ) && ! empty ( $item ) && is_numeric( $price ) && ! empty ( $date ) && ! empty ( $inputer )) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); Doo::loadModel ( 'RItem' ); $RItem = new RItem (); $rid = $XDeode->decode ( $ridKey ); $rtid= $XDeode->decode ( $rtidKey ); if (! is_numeric ( $rid )){ die ( 'illegal request' ); } Doo::loadModel ( 'receiptDetail' ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); $rtDetail=$receiptTraining->getReceiptTrainingByRtid($rtid); $identifyingTotal=$rtDetail['identifyingTotal']+1; $order = array ( "\r\n", "\n", "\r" ); $replace = '
'; $describe = str_replace ( $order, $replace, $describe ); $itemData = array ( 'rid' => $rid, 'item' => $item, 'price' => $price, 'date' => $date, 'inputer' => $inputer, 'describe' => $describe, 'creater' => $this->staff['0']['username'], 'createrId' => $this->staff['0']['sid'], 'creatDate' => date ( "Y-m-d H:i:s" ), 'identifying'=>$identifyingTotal ); if($payType=='company'){ $itemData += array ( 'payType' => 1 ); } $RItem->addRItem($itemData, $receipt, $receiptDetail, $rid, $item, $price, $payType); //更新支出项标识总数 $itemData = array ( 'rtid'=>$rtid, 'identifyingTotal'=>$identifyingTotal ); $receiptTraining->setReceiptTrainByCondition($itemData); $XDeode = new XDeode ( 7 ); if($payType=='company'){ return '/receiptTrainItem/approval/' . $XDeode->encode ( $rid ) . '.html'; }else{ return '/receiptTrainItemEdi/' . $XDeode->encode ( $rid ) . '.html'; } } else die ( 'illegal request-dataError' ); } /** * 培训班结算-讲师 */ function receiptTrainLecturerEdi() { $ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptTraining' ); $receiptTraining = new receiptTraining (); Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); Doo::loadModel ( 'lecturer' ); $lecturer = new lecturer (); $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)) die (); $receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] ); $RILecturerList = $RILecturer->getRILecturerByRid ( $rid ); $lecturerList = $lecturer->getLecturerAll (); $INSIDEhtml = $OUTSIDEhtml = ''; foreach ( $lecturerList as $key => $value ) { if ($value ['ltype'] == 'INSIDE') { $INSIDEhtml .= ''; } elseif ($value ['ltype'] == 'OUTSIDE') { $OUTSIDEhtml .= ''; } } $data ['INSIDEhtml'] = $INSIDEhtml; $data ['OUTSIDEhtml'] = $OUTSIDEhtml; // print_r($RItemList); $data ['RILecturerList'] = $RILecturerList; $data ['receiptTrainingDetail'] = $receiptTrainingDetail; $data ['receiptDetail'] = $receiptDetail; $data ['trainEdiType'] = "LECTURER"; $data ['ridKey'] = $ridKey; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'saeaBorad'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/receipt/receiptTrainLecturerEdi", $data ); } /** * 添加讲师 */ function receiptTrainLecturerAddDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 支出项信息 $ltype = $this->get_args ( 'ltype' ) ? $this->get_args ( 'ltype' ) : ""; $lecturerName = $this->get_args ( 'lecturerName' ) ? $this->get_args ( 'lecturerName' ) : ""; $schoolDay = $this->get_args ( 'schoolDay' ) ? $this->get_args ( 'schoolDay' ) : ""; $price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : ""; $taxation = $this->get_args ( 'taxation' ) ? $this->get_args ( 'taxation' ) : ""; $fees = $this->get_args ( 'fees' ) ? $this->get_args ( 'fees' ) : ""; if (! empty ( $ridKey ) && ! empty ( $ltype ) && ! empty ( $lecturerName ) && ! empty ( $schoolDay ) && ! empty ( $price )) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); $rid = $XDeode->decode ( $ridKey ); if (! is_numeric ( $rid )) die ( 'illegal request' ); if ($ltype == 'OUTSIDE' && empty ( $taxation )) die ( 'illegal request-taxationError' ); $RILecturer->rid = $rid; $RILecturer->ltype = $ltype; if ($ltype == 'OUTSIDE') { if ($taxation == 'TAXATION') { $RILecturer->taxation = 1; } elseif ($taxation == 'NOTAXATION') { $RILecturer->taxation = 0; } } $RILecturer->lecturerName = $lecturerName; $RILecturer->schoolDay = $schoolDay; $RILecturer->price = $price; $RILecturer->fees=$fees; $RILecturer->insert (); // 添加公司汇总 // 报销详情 Doo::loadModel ( 'receiptDetail' ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); // 金额总计 $price = $price * $schoolDay; $rInfo = $receipt->getReceiptByRid ( $rid ); $rdInfo = $receiptDetail->getReceiptDetailByRIC ( $rid, '讲课费', '培训班费用' ); if (empty ( $rdInfo )) { $receiptDetail = new receiptDetail (); $receiptDetail->staff = $rInfo ['staff']; $receiptDetail->item = '讲课费'; $receiptDetail->itemCategory = '培训班费用'; $receiptDetail->price = number_format ( $fees, 2, '.', '' ); $receiptDetail->date = date ( "Y-m-d" ); $receiptDetail->cid = $rInfo ['cid']; $receiptDetail->rid = $rid; $receiptDetail->status = 4; $receiptDetail->insert (); } else { $receiptDetail = new receiptDetail (); $rdInfo ['price'] += $fees; $receiptDetail->price = $rdInfo ['price']; $receiptDetail->update ( array ( 'where' => 'rid=' . $rid . ' and item like "' . '讲课费' . '" and itemCategory like "培训班费用"' ) ); } $receipt = new receipt (); $receipt->sum=$rInfo['sum']+$fees; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); $XDeode = new XDeode ( 7 ); return '/receiptTrainLecturerEdi/' . $XDeode->encode ( $rid ) . '.html'; } else die ( 'illegal request' ); } /** * 移除讲师 */ function receiptTrainLecturerDelDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 费用 培训班结算 $rlidKey = $this->get_args ( 'rlidKey' ) ? $this->get_args ( 'rlidKey' ) : ""; // 发票培训班 Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $ridKey ); $rlid = $XDeode->decode ( $rlidKey ); if (is_numeric ( $rid ) && is_numeric ( $rlid )) { $receiptDetail = $receipt->getReceiptByRid ( $rid ); if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)){ die ( 'illegal request-status' ); } $detail=$RILecturer->getRILecturerByRlid($rlid); if (empty($detail)){ die ( 'illegal request-data' ); } $RILecturer->delete ( array ( 'where' => 'rid=' . $rid . ' and rlid=' . $rlid ) ); //更新费用合计金额 $rInfo = $receipt->getReceiptByRid ( $rid ); $receipt = new receipt (); $receipt->sum= $receiptDetail['sum']-$detail['price']; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); Doo::loadModel ( 'receiptDetail' ); $receiptDetail = new receiptDetail (); $rdInfo = $receiptDetail->getReceiptDetailByRIC ( $rid, '讲课费', '培训班费用' ); $receiptDetail = new receiptDetail (); $rdInfo ['price'] -= number_format ( $detail['price'], 2, '.', '' ); $receiptDetail->price = $rdInfo ['price']; $receiptDetail->update ( array ( 'where' => 'rid=' . $rid . ' and item like "' . '讲课费' . '" and itemCategory like "培训班费用"' ) ); $XDeode = new XDeode ( 7 ); return '/receiptTrainLecturerEdi/' . $XDeode->encode ( $rid ) . '.html'; } else die ( 'illegal request-iid' ); } /** * 培训班提交审批 */ function receiptTrainDo() { $ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rid = $XDeode->decode ( $ridKey ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'receiptDetail' ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); 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 (); $vr = $verify->getOne ( array ( 'where' => 'vid=' . $receiptDetailList ['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 (); // 写入列表项 Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $aItem = $accountItem->getAccountBookByCategory ( '培训班费用' ); // 项目金额合计 Doo::loadModel ( 'RItem' ); $RItem = new RItem (); // 讲师获得 Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); $RItemList = $RItem->getRItemByRid ( $rid ); $RILecturerList = $RILecturer->getRILecturerByRid ( $rid ); // 支出项金额详情 $aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, 0 ); // print_r($aItem); // print_r($aiData); $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->TRAIN) { foreach ( $aiData ['dataList'] as $k => $v ) { if ($value ['name'] == $v ['name']) { array_push ( $accountJson [$this->TRAIN], array ( 'aid' => $value ['aid'], 'name' => $value ['name'], 'price' => number_format ( $v ['price'], 2, '.', '' ) ) ); $sum += $v ['price']; $trainSum += $v ['price']; unset ( $aiData ['dataList'] [$k] ); break; } } } } $accountJson ['cSum'] = array ( 'agencySum' => number_format ( $agencySum, 2, '.', '' ), 'travelSum' => number_format ( $travelSum, 2, '.', '' ), 'trainSum' => number_format ( $trainSum, 2, '.', '' ), 'otherSum' => number_format ( $otherSum, 2, '.', '' ) ); // 报销单 $receipt = new receipt (); $receipt->accountItem = json_encode ( $accountJson ); $receipt->sum = number_format ( $sum, 2, '.', '' ); $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); // print_r($accountJson); // statistics item 统计写入 $dateArray = explode ( "-", $receiptDetailList ['date'] ); $dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1]; $accountItem = $accountJson; $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 "/saeaBorad"; } 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::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); 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 "; elseif ($item == "train") $condition = " and Rtype=3 "; $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 ( $dateCondition, $this->staff [0] ['sid'] ); if (! isset ( $noPassSum ['sum'] )) $noPassSum ['sum'] = 0; $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($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]['balance']=''; if($value['Rtype']==1){ $receiptList[$key]['balance']=$value['sum']-=$value['loanSum']; $receiptList[$key]['balanceABS']=abs($receiptList[$key]['balance']); }elseif($value['Rtype']==3){ $payment=$this->_getReceiptTrainPayment($value['invoiceTrainId'],$value['trainLoanRid'],$value['rid']); $receiptList[$key]['payment']=$payment; $receiptList[$key]['paymentABS']=abs($payment); } $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; $receiptList [$key] ['ridKey'] =$XDeode->encode( $value ['rid'] ); } // print_r($receiptList);die; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($moth == $i) $mothHtml .= ''; else $mothHtml .= ''; } $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $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; */ $data ['explanation'] = ''; if (! empty ( $loanList )) $data ['explanation'] = $loanList [0] ['explanation']; $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 ); } } } // 费用执行人相关数据 $executeCopy = json_decode ( $value ['executeCopy'], true ); $executeStaff = json_decode ( $value ['executeStaff'], true ); foreach ( $executeCopy as $k => $v ) { $executeCopy [$k] ['date'] = ''; $executeCopy [$k] ['opinion'] = ''; $executeCopy [$k] ['status'] = ''; if (! empty ( $executeStaff )) foreach ( $executeStaff as $m => $u ) { if ($v [0] == $m) { $executeCopy [$k] ['date'] = $u ['date']; $executeCopy [$k] ['opinion'] = $u ['opinion']; $executeCopy [$k] ['status'] = $u ['status']; break; } } } $receiptList [$key] ['executeCopy'] = $executeCopy; $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 = bcsub ( $value ['sum'], $value ['loanSum'], 2 ); $receiptList [$key] ['relust'] = $relust; $receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) ); } Doo::loadModel ( 'enclosur' ); $enclosur = new enclosur (); $enclosurList = $enclosur->find ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); $enclosurHtml = ''; foreach ( $enclosurList as $value ) { $enclosurHtml .= '' . $value ['name'] . ''; } $receiptList[0]['itinerary']=str_replace('\n','
',$receiptList[0]['itinerary']); $data ['enclosurHtml'] = $enclosurHtml; //print_r($receiptList[0]['accountItem']['内部培训费用']); $data ['receiptList'] = $receiptList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'expenses'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; if($receiptList[0]['receiptClass']==2){ if(!empty($receiptList[0]['itinerary2'])){ $this->render ( "/receipt/feeTraveDetail2", $data ); }else{ $this->render ( "/receipt/feeTraveDetail", $data ); } }else{ $this->render ( "/admin/expensesCollect", $data ); } } function approvalExpenses() { $status = isset ( $this->params ['status'] ) ? $this->params ['status'] : 0; $year = $rdate = $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; $receiptOrder=$this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) :""; // echo $rdate; if (empty ( $status )) $status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0; $page_size = 8; $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 = " "; // if (! empty ( $month )) // $dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month; if ($status == 'done' || $status == 'termination') { if (! empty ( $year )) { $dateCondition = " and Year(pastDate) =" . $year; if (! empty ( $month )) $dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month; } } elseif ($status == 'finish') { if (! empty ( $year )) { $dateCondition = " and Year(pastDate) =" . $year; if (! empty ( $month )) $dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month; } } // date ( 'Y-m' ) // if (! empty ( $rdate ) && $status == 'done') // $dateCondition = " and date_format(pastDate,'%Y-%m')='" . $rdate . "' "; // elseif (! empty ( $rdate )) // $dateCondition = " and date_format(date,'%Y-%m')='" . $rdate . "' "; $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 cid=' . $cid . ' and staff=' . $sid; $cateCondition = ""; } $get = "?year=" . $year . "&month=" . $month . "&cid=" . $cid . "&sid=" . $sid; if ($status == 'pendApproval') { $approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )'; } if ($status == 'ongoing') { $approvalCondition = ' and (status=2 or status=1 or status=6 or status=4) '; } if ($status == 'done') { $approvalCondition = ' and (status=8 or status=9 ) '; } if ($status == 'termination') { $approvalCondition = " and status=3"; } if ($status == 'finish') { $approvalCondition = " and (status=1 or status=8 or status=9 or status=10)"; } $pageinfo ['page'] = array ( 'previous' => '' ); if(!empty($receiptOrder)){ $pageinfo = $this->get_page ( "CLD_receipt", ' and receiptOrder like "%' . $receiptOrder . '%"', $page, $page_size, "approvalExpenses/" . $status, $get, "" ); $receiptList = $receipt->find ( array ( // $dateCondition 'where' => 'receiptOrder like "%' . $receiptOrder . '%"', 'desc' => 'rid', 'asArray' => true ) ); }else{ if ($status == 'done' || $status == 'termination' || $status == 'finish') { // $dateCondition . $pageinfo = $this->get_page ( "CLD_receipt", $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses/" . $status, $get, "" ); $receiptList = $receipt->find ( array ( // $dateCondition. 'where' => 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ')', 'limit' => $pageinfo ['lower'] . ',' . $page_size, 'desc' => 'rid', 'asArray' => true ) ); } else { $receiptList = $receipt->find ( array ( // $dateCondition 'where' => 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ')', 'desc' => 'rid', 'asArray' => true ) ); // echo 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')'; } } $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 . ' and verify in (' . $vid . ')', 'desc' => 'rid', 'asArray' => true ) ); // echo 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')'; // print_r($receiptList); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $Locate = 0; // $reportList = $reportCateList = array (); foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] ); $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 ) ); array_push ( $reportList, $receiptList [$key] ['staffDetail'] ['sid'] . '-' . $receiptList [$key] ['staffDetail'] ['username'] . '-' . $receiptList [$key] ['staffDetail'] ['category'] ); array_push ( $reportCateList, $receiptList [$key] ['staffDetail'] ['cid'] . '-' . $receiptList [$key] ['staffDetail'] ['category'] ); $receiptList [$key] ['button'] = $button; $receiptList [$key] ['nowStaffArray'] = explode ( ',', $value ['nowStaff'] ); //获得培训班结算RID 借款费用--已经锁定 if($value['status']==10){ $trainRD=$receipt->getReceiptByTrainLoanRid($value['rid']); $receiptList [$key]['trainRidKey7']=$trainRD['ridKey7']; } } $reportList = array_unique ( $reportList ); $reportHtml = ''; foreach ( $reportList as $key => $value ) { $v = explode ( "-", $value ); $reportHtml .= ''; } // print_r($reportList) $data ['reportHtml'] = $reportHtml; $reportCateList = array_unique ( $reportCateList ); $reportCateHtml = ''; foreach ( $reportCateList as $key => $value ) { $v = explode ( "-", $value ); $reportCateHtml .= ''; } // $reportHtml.=''; $data ['reportCateHtml'] = $reportCateHtml; // print_r($receiptList);die; // $data['verifyDetail']=$verifyDetail; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['mothHtml'] = $mothHtml; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $data ['page'] = $pageinfo; $data ['receiptList'] = $receiptList; $data ['receiptApprovalCount'] = count ( $rLRes ); $data ['status'] = $status; $data ['year'] = $year; $data ['month'] = $month; $data ['categoryList'] = $categoryList; $data ['staffList'] = $staffList; $data ['cid'] = $cid; $data ['sid'] = $sid; // print_r($receiptList); $data['receiptOrder']=$receiptOrder; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approvalExpenses'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/approvalExpenses", $data ); } private function _expensesDoc(){ $rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); if (! empty ( $rid ) && ! is_numeric ( $rid )) $rid = $XDeode->decode ( $rid ); if (! is_numeric ( $rid )) die ( 'illegal request' ); 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; // } } } } $FC = @$rolename ['name']; $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 ); } } } // 费用执行人相关数据 $executeCopy = json_decode ( $value ['executeCopy'], true ); $executeStaff = json_decode ( $value ['executeStaff'], true ); foreach ( $executeCopy as $k => $v ) { $executeCopy [$k] ['date'] = ''; $executeCopy [$k] ['opinion'] = ''; $executeCopy [$k] ['status'] = ''; if (! empty ( $executeStaff )) foreach ( $executeStaff as $m => $u ) { if ($v [0] == $m) { $executeCopy [$k] ['date'] = $u ['date']; $executeCopy [$k] ['opinion'] = $u ['opinion']; $executeCopy [$k] ['status'] = $u ['status']; break; } } } $receiptList [$key] ['executeCopy'] = $executeCopy; // 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] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] ); $receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] ); $relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 ); $receiptList [$key] ['relust'] = $relust; $receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) ); } // print_r($receiptList); // 获取审批日志 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 ) ); } $RN=array(); if (!empty( $rolename ['staff'])){ $RN = @json_decode ( $rolename ['staff'] ); } // foreach ( $rlList as $key => $value ) { $rlList [$key] ['rolename'] = ''; foreach ( $RN as $k => $v ) { $id = explode ( "_", $v ); if ($id [0] == $value ['uid']) { $rlList [$key] ['rolename'] = $FC; break; } } } Doo::loadModel ( 'enclosur' ); $enclosur = new enclosur (); $enclosurList = $enclosur->find ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); $enclosurHtml = ''; foreach ( $enclosurList as $value ) { $enclosurHtml .= '' . $value ['name'] . ''; } $data ['enclosurHtml'] = $enclosurHtml; $receiptList [0] ['rlList'] = $rlList; $data ['receiptList'] = $receiptList; $data ['receiptList'][0]['itinerary']=str_replace('\n','
',$receiptList[0]['itinerary']); // print_r($receiptList); $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approvalExpenses'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; return $data; } function expensesDoc() { $data=$this->_expensesDoc(); if(!empty($data['receiptList'][0]['itinerary2'])){ $this->render ( "/receipt/feeTraveView", $data ); }else{ $this->render ( "/admin/expensesDoc", $data ); } } function expensesDocPrint(){ $data=$this->_expensesDoc(); $this->render ( "/receipt/expensesDocPrint", $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 . ' and status=2', 'desc' => 'rid', 'asArray' => true ) ); if (empty ( $receiptList )) { die ( 'illegal request' ); } $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; $amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : 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 ) ); $nslist = explode ( ',', $receiptDetail ['nowStaff'] ); $nsflag = true; foreach ( $nslist as $value ) { if ($value == $this->staff ['0'] ['sid']) { $nsflag = false; break; } } // print_r($nslist);die; if (empty ( $receiptDetail ) || $nsflag) return "/approvalExpenses/pendApproval"; $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; 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; $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 { // 进入下一个角色或者审批人 $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 ); } 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; } // print_r($verifyStaff);die; } $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 ) ); // 微信企业号通知 $this->setWXMsg ( $rid, 3 ); } 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" ); //生成流水后 不更新汇款金额 Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $wbDetail = $wasteBook->getWateBookByAD ( 1, $rid ); if (empty($wbDetail)){ $loanReceipt->amount = $receiptDetail ['amount']; } $loanReceipt->update ( array ( 'where' => ' rid = ' . $receiptDetail ['loanRid'] ) ); // 微信企业号通知 $this->setWXMsg ( $rid, 1 ); } $receipt->amount = $receiptDetail['sum']; $receipt->update ( array ( 'where' => ' rid = ' . $rid ) ); // 进入下一条审批费用新加需求 $vidList = array (); $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; $approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )'; $receipt = new receipt (); $rd = $receipt->getOne ( array ( 'where' => 'status!=5 ' . $approvalCondition . ' and verify in(' . $vid . ')', 'asc' => 'rid', 'asArray' => true ) ); if (empty ( $rd )) { return '/approvalExpenses/pendApproval'; } if ($rd ['Rtype'] == 1) { if ($rd ['isBK'] == 1) { return '/receiptburEdi/' . $rd ['rid']; } else { return '/expensesEdi/' . $rd ['rid']; } } elseif ($rd ['Rtype'] == 2) { return '/remitApproval/' . $rd ['rid']; } else { return '/receiptburEdi/' . $rd ['rid']; } // return "/approvalExpenses/pendApproval"; } } function ajaxExamineExe() { $rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); if (! empty ( $rid )) { $rLRes = $receipt->find ( array ( 'where' => 'executeCopy like \'%["' . $this->staff [0] ['sid'] . '%\' and executeStaff not like \'%{"' . $this->staff [0] ['sid'] . '%\' and (status=1 or status=6) and rid!=' . $rid, 'asArray' => true ) ); $rLRes [0] ['ridKey'] = $XDeode->encode ( $rLRes [0] ['rid'] ); echo json_encode ( array ( 'status' => 1, 'receipt' => $rLRes [0] ) ); die (); } echo json_encode ( array ( 'status' => 0, 'receipt' => array () ) ); die (); } function implement() { $rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0; $Rtype = isset ( $this->params ['Rtype'] ) ? $this->params ['Rtype'] : ''; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); 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 (); $rid = $XDeode->decode ( $rid ); $receiptList = $receipt->find ( array ( 'where' => 'executeCopy like \'%["' . $this->staff [0] ['sid'] . '%\' and (status=1 or status=6) and rid=' . $rid, '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; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); foreach ( $receiptList as $key => $value ) { $receiptList[$key]['ridKey']=$XDeode->encode ( $value['rid'] ); $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; } } } // 检测编辑状态 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] ['executeList'] = $executeList; $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 = bcsub ( $value ['sum'], $value ['loanSum'], 2 ); $receiptList [$key] ['relust'] = $relust; $receiptList [$key] ['relustCN'] = $this->num_to_rmb ( $relust ); $receiptList [$key] ['amountABS'] = abs ( $value ['amount'] ); } //执行人是否是最后一位 $executeCopy = json_decode ( $receiptList [0] ['executeCopy'], true ); $executeStaff = json_decode ( $receiptList [0] ['executeStaff'], true ); $executePrimary=count($executeCopy)-1; $lastOne=true; if($executePrimary!=count($executeStaff)){ $lastOne=false; } $data['lastOne']=$lastOne; // 是否写入过流水 $accountType = 0; if ($receiptList [0] ['Rtype'] == 0) { $accountType = 3; } elseif ($receiptList [0] ['Rtype'] == 1) { if (!empty($receiptList [0]['accountItem']) ) $accountType = 2; else $accountType = 1; } elseif ($receiptList [0] ['Rtype'] == 2) { $accountType = 4; } elseif ($receiptList [0] ['Rtype'] == 3) { $accountType = 12; } Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $wbDetail = $wasteBook->getWateBookByAD ( $accountType, $receiptList [0] ['rid'] ); $data ['wbDetail'] = $wbDetail; $wbDetailLoan=array(); if ($accountType==2){ $wbDetailLoan = $wasteBook->getWateBookByAD ( 1, $receiptList [0] ['rid'] ); } $data ['wbDetailLoan'] = $wbDetailLoan; $data['inputDate']=date ( "Y-m-d H:i:s" ); //print_r($wbDetail); $data ['receiptList'] = $receiptList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'implement'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; if ($Rtype=="loan"){ $this->render ( "/receipt/receiptImplementLoan", $data ); }elseif($Rtype=="receipt"){ if($receiptList[0]['receiptClass']==2){ //TODO 费用执行行程单2.0 if(!empty($receiptList[0]['itinerary2'])){ $this->render ( "/receipt/receiptImplementTrave2", $data ); }else{ $this->render ( "/receipt/receiptImplementTrave", $data ); } }else{ $this->render ( "/receipt/receiptImplement", $data ); } }elseif($Rtype=="public"){ $this->render ( "/receipt/receiptImplementPublic", $data ); }else{ //$this->render ( "/admin/implement", $data ); } } function implementDo() { $rid = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : ""; $implementOpinions = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : ""; // $amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : ''; // $accountBank = $this->get_args ( 'accountBank' ) ? $this->get_args ( 'accountBank' ) : ""; // $ab = ''; // if ($accountBank == 'CGBDeposit') // $ab = '纵横广发'; // elseif ($accountBank == 'ICBCDeposit') // $ab = '纵横工行'; // elseif ($accountBank == 'HUADeposit') // $ab = '华润银行'; // elseif ($accountBank == 'PersonalDeposit') // $ab = '个人广发'; // if (empty ( $ab )) // die ( 'illegal request--22' ); if (! empty ( $rid )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid=$XDeode->decode($rid); if (!is_numeric($rid)){ die; } // $rinfo = $receipt->getOne ( array ( // 'where' => 'rid=' . $rid, // 'asArray' => true // ) ); $rinfo = $receipt->getReceiptByRid ( $rid ); // $accountType = ''; // if ($rinfo ['Rtype'] == 1) { // if ($rinfo ['loanRid'] != 0)//判断有问题 // $accountType = 2; // else // $accountType = 1; // } elseif ($rinfo ['Rtype'] == 2) { // $accountType = 4; // } elseif ($rinfo ['Rtype'] == 0) // $accountType = 3; // if (empty ( $accountType )) // die ( 'illegal request' ); $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; if ($rinfo ['status'] == 6) { $receipt->loanDate = date ( "Y-m-d" ); } $receipt->executeDate = date ( "Y-m-d" ); } else { $receipt->executeStaff = json_encode ( $executeStaff ); } //$receipt->amount = $amount; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); // 公司流水记录 // Doo::loadModel ( 'wasteBook' ); // $wasteBook = new wasteBook (); // $abDetail = $wasteBook->getAccountBookByAid ( 2, $accountType, $rid ); // // 银行 // if (empty ( $abDetail ) && ! empty ( $amount )) { // $item = array ( // 'dataID' => $rid, // 'expensesType' => 2, // 'accountType' => $accountType, // 'accountPriceShow' => $amount, // 'accountPrice' => - $amount, // 'accountBank' => $accountBank, // 'category' => $rinfo ['category'] [0] ['title'], // 'cid' => $rinfo ['category'] [0] ['cid'], // 'name' => $rinfo ['staffDetail'] ['username'], // 'sid' => $rinfo ['staffDetail'] ['sid'], // 'inputDate' => date ( "Y-m-d H:i:s" ) // ); // $wasteBook->setAccountBookStatistics ( $item ); // } } //$ridKey = $XDeode->encode ( $rid ); return "/hisImplement"; // return "/implement/" . $ridKey . ".html"; } 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 . ' and status=2', 'desc' => 'rid', 'asArray' => true ) ); if (empty ( $receiptList )) { die ( 'illegal request' ); } $loanList = $loanReceipt->find ( array ( 'where' => 'rid=' . $receiptList [0] ['loanRid'], 'desc' => 'rid', 'asArray' => true ) ); $data ['explanation'] = ''; if (! empty ( $loanList )) $data ['explanation'] = $loanList [0] ['explanation']; $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 = ''; $data ['loanReceiptDate'] = ''; 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']; } else { $data ['loanReceiptDate'] = ''; // $loanList [0] ['date']; } $data ['htmlLoan'] = $htmlLoan; // $data ['LoanReceipt']=$loanList[0]; // print_r($loanList); $Locate = 0; $roleId = 0; $button = 0; if ($ap == 4) $status = 4; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] ); $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); // 调整金额 代码调整 if (! empty ( $value ['reviseDetail'] )) { $reviseDetail = json_decode ( $value ['reviseDetail'], true ); foreach ( $reviseDetail as $ry => $re ) { $reviseDetail [$ry] ['sidKey'] = $XDeode->encode ( $re ['sid'] ); $reviseDetail [$ry] ['reviseKey'] = $XDeode->encode ( $ry ); } $receiptList [$key] ['reviseDetail'] = $reviseDetail; // print_r($reviseDetail); } $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 = bcsub ( $value ['sum'], $value ['loanSum'], 2 ); $receiptList [$key] ['relust'] = $relust; $receiptList [$key] ['relustABS'] = abs ( $relust ); $receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $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; // print_r($receiptList); $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 ['mothHtml'] = $mothHtml; $receiptList[0]['itinerary']=str_replace('\n','
    ',$receiptList[0]['itinerary']); $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; if($receiptList[0]['receiptClass']==1){ $this->render ( "/receipt/feeAgencyApproval", $data ); }elseif($receiptList[0]['receiptClass']==2){ //TODO 行程单2.0 if(!empty($receiptList[0]['itinerary2'])){ $this->render ( "/receipt/feeTraveApproval2", $data ); }else{ $this->render ( "/receipt/feeTraveApproval", $data ); } }elseif($receiptList[0]['receiptClass']==3){ $this->render ( "/receipt/feeInternalTrainApproval", $data ); }else{ $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' ) : "expenses"; $rdate = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : ""; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : 'MONTH'; $day = $this->get_args ( 'day' ) ? $this->get_args ( 'day' ) : 'DAY'; $sop = $this->get_args ( 'sop' ) ? $this->get_args ( 'sop' ) : 'SOP'; $status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 'pendImplement'; $cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : 'ALL'; $receiptOrder=$this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) :""; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); 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::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $XDeode7 = new XDeode ( 7 ); $cid = $XDeode->decode ( $cidKey ); $condition = ""; if ($item == "expenses") $condition = " and Rtype=1 "; elseif ($item == "receipts") $condition = " and Rtype=0 "; elseif ($item == "remits") $condition = " and Rtype=2 "; elseif($item == "train") $condition = " and Rtype=3 "; $statusCon = '(status=8 or status=9 or status=1 or status=6 )'; $sopString = $cidString = ""; $lastYear = date ( "Y", strtotime ( "-1 year" ) ); if (empty ( $rdate )) $dateCondition = " and (Year(date) =" . $year . " or Year(date) = " . $lastYear . ") "; else $dateCondition = " and date_format(date,'%Y-%m-%d')='" . $rdate . "' "; if ($status == 'pendImplement') { $condition .= ' and (status=1 or status=6) and (executeCopy like "%[\"' . $this->staff [0] ['sid'] . '\"%" and (executeStaff not like "%{\"' . $this->staff [0] ['sid'] . '\"%" or executeStaff is null ) ) '; } elseif ($status == 'alerpts') { $statusCon = '(status=8 or status=9 )'; if (empty ( $rdate )){ $dateCondition = " and Year(date) =" . $year; }else{ $dateCondition = " and date_format(executeDate,'%Y-%m-%d')='" . $rdate . "' "; } } if ($sop != 'SOP') $sopString = " and staff=" . $sop; if ($cidKey != 'ALL') $cidString = " and cid=" . $cid; //汇款信息需要提取出来 if(!empty($receiptOrder)){ $receiptList = $receipt->find ( array ( 'where' => $statusCon.' and receiptOrder like "%' . $receiptOrder . '%"', 'desc' => 'rid', 'asArray' => true ) ); // 员工筛选 $receiptList2 = $receipt->find ( array ( 'where' => $statusCon.' and receiptOrder like "%' . $receiptOrder . '%"', 'desc' => 'rid', 'asArray' => true ) ); }else{ $receiptList = $receipt->find ( array ( 'where' => $statusCon . $condition . $dateCondition . $sopString . $cidString, 'desc' => 'rid', 'asArray' => true ) ); // 员工筛选 $receiptList2 = $receipt->find ( array ( 'where' => $statusCon . $condition . $dateCondition, 'desc' => 'rid', 'asArray' => true ) ); } $sopStaff = array (); foreach ( $receiptList2 as $key => $value ) { $staffDetail = $staff->getOne ( array ( 'select' => 'username', 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $sopStaff [$value ['staff']] = $staffDetail ['username']; } // 办事处筛选 $categoryScreen = array (); $categorList = $Lcategory->getCategory (); foreach ( $receiptList2 as $key => $value ) { foreach ( $categorList as $k => $v ) { if ($value ['cid'] == $v ['cid']) { $categoryScreen [$v ['cidKey']] = $v ['title']; break; } } } $categoryScreenHtml = ""; foreach ( $categoryScreen as $key => $value ) { if ($cidKey == $key) $categoryScreenHtml .= ''; else $categoryScreenHtml .= ''; } $data ['categoryScreenHtml'] = $categoryScreenHtml; $data ['cidKey'] = $cidKey; $Locate = 0; $roleId = 0; $button = 0; $staffBatchNumber = 100001; $remittanceList = array (); foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['ridKey7'] = $XDeode7->encode ( $value ['rid'] ); $receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] ); $receiptList [$key] ['Texe'] = 'false'; if (strstr ( $value ['executeCopy'], '["' . $this->staff [0] ['sid'] . '"' ) != false) { $receiptList [$key] ['Texe'] = 'true'; } $receiptList [$key] ['TRexe'] = 'true'; if (strstr ( $value ['executeStaff'], '{"' . $this->staff [0] ['sid'] . '"' ) != false) { $receiptList [$key] ['TRexe'] = 'false'; } $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; $staffDetail = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['staffDetail'] = $staffDetail; $receiptList [$key] ['button'] = $button; if ($value['Rtype']==1){ $receiptList [$key] ['relust'] = $value['sum']-$value['loanSum']; $receiptList [$key] ['relustABS'] = abs($receiptList [$key] ['relust']); }elseif($value['Rtype']==3){ // 收入合计 Doo::loadModel ( 'invoiceTraining' ); $invoiceTraining = new invoiceTraining (); $invoiceTrainingDetail = array ( 'invoiceArriveAmount' => '0.00', 'RIAmount' => '0.00', 'invoiceTotalAmount' => '0.00', 'invoiceCompanyAmount' => '0.00', 'invoiceArriveAmountM'=>'0.00', 'invoiceCompanyAmountM'=>'0.00' ); if ($value ['invoiceTrainId'] != 0) { $invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $value['invoiceTrainId'] ); } $invoiceArriveAmount = $RIAmount = 0; if (! empty ( $invoiceTrainingDetail )) { $invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount']; $RIAmount = $invoiceTrainingDetail ['RIAmount']; } // 备用金 $sum = 0; if (! empty ( $value ['trainLoanRid'] )) { $receiptLoanList = $receipt->getReceiptInRid ( $value ['trainLoanRid'] ); foreach ($receiptLoanList as $kll=>$vll){ $sum+=$vll['sum']; } // $receiptLoanDetailBak = $receipt->getReceiptByRid ( $value ['trainLoanRid'] ); // $sum = $receiptLoanDetailBak ['sum']; } // 支出项金额详情 // 项目金额合计 Doo::loadModel ( 'RItem' ); $RItem = new RItem (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); // 讲师获得 Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); $RItemList = $RItem->getRItemByRid ( $value['rid'] ); $RILecturerList = $RILecturer->getRILecturerByRid ( $value['rid'] ); // 支出项金额详情 $aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount ); $categoryActualExpenditure = $aiData ['total'] - $aiData ['categoryActualExpenditure']; $payment = $sum + $RIAmount - $categoryActualExpenditure; $receiptList [$key] ['payment'] =$payment; $receiptList [$key] ['paymentABS'] =sprintf("%.2f",abs($payment)); } // 设置导出汇款execl if (! empty ( $value ['remittanceName'] ) && ! empty ( $value ['bankName'] ) && ! empty ( $value ['bankNumber'] )) { $remittanceDetail = array ( $staffBatchNumber, $value ['remittanceName'], $value ['bankNumber'], $value ['bankName'], $value ['remittanceBankType'], $value ['coupletNumber'], $value ['sum'] ); array_push ( $remittanceList, $remittanceDetail ); $staffBatchNumber ++; } } $data ['remittanceList'] = json_encode ( $remittanceList ); // print_r($receiptList); $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 ['status'] = $status; $data ['rdate'] = $rdate; $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['receiptOrder']=$receiptOrder; $data ['day'] = $day; $data ['sop'] = $sop; $this->render ( "/admin/hisImplement", $data ); } /** * 导出汇款信息的exelc */ function exportRemittance() { $remittanceInfo = $_POST ['remittanceInfo']; // $this->get_args ( 'remittanceInfo' ) ? $this->get_args ( 'remittanceInfo' ) : ''; if (empty ( $remittanceInfo )) die ( 'illegal request' ); $title = array ( '员工编号', '姓名', '员工账号', '员工账户开户行', '转账类型', '联行号', '金额' ); $data = json_decode ( $remittanceInfo, true ); if (empty ( $data )) die ( 'illegal request' ); Doo::loadClass ( 'receipt.func' ); exportExcel ( $title, $data, '批量日常报销-公司账号', './', true ); header ( 'Content-Type:text/html;charset=utf-8' ); die ( '导出' . count ( $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 ) ); if(!empty($rLRes)){ Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 7 ); $rLRes [0]['ridKey'] = $XDeode->encode( $rLRes [0]['rid'] ); echo json_encode ( array ( 'status' => 1, 'receipt' => $rLRes [0] ) ); die (); }else{ echo json_encode ( array ( 'status' => 1, 'receipt' => array () ) ); 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 ) && ($year < date ( "Y" ))) { $receiptList = $receipt->find ( 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" )) && ($moth < date ( "m" ))) { $receiptList = $receipt->find ( 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 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 ); $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 remittanceHky() { $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' ) : 'DAY'; $page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $page_size = 15; $get = "?year=" . $year . "&moth=" . $moth . "&day=" . $day; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); $dateCondition = " and Year(executeDate) =" . $year; if ($moth != 'MONTH') $dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth; if ($day != 'DAY' && $moth != 'MONTH') $dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth . " and day(executeDate)=" . $day; $sql = ' (status =8 or status=9 ) and amount>0 ' . $dateCondition; $table = '(SELECT count(*) FROM CLD_receipt WHERE ' . $sql . ' group by executeDate ) a '; $pageinfo = $this->get_page ( $table, ' ', $page, $page_size, "remittanceHky", $get, "" ); $limit = $pageinfo ['lower'] . ',' . $page_size; $dayList = $receipt->find ( array ( 'select' => 'executeDate,sum(amount) as amount', 'where' => $sql, 'desc' => 'executeDate', 'groupby' => 'executeDate', 'limit' => $limit, 'asArray' => true ) ); // print_r($dayList); foreach ( $dayList as $key => $value ) { $remitString = ""; $receiptList = $receipt->find ( array ( 'select' => 'rid,executeDate,amount,staff,cid', 'where' => '(status =8 or status=9 ) and amount!=0 and executeDate="' . $value ['executeDate'] . '"', 'desc' => 'executeDate', 'asArray' => true ) ); foreach ( $receiptList as $k => $v ) { $sinfo = $staff->getOne ( array ( 'select' => 'username,category', 'where' => ' sid=' . $v ['staff'], 'asArray' => true ) ); $remitString .= $sinfo ['category'] . '-' . $sinfo ['username'] . '(' . $v ['amount'] . ')  '; } $dayList [$key] ['staff'] = $remitString; $dayList [$key] ['ridKey'] = strtotime ( $value ['executeDate'] ); } // print_r($dayList); $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 .= ''; } } $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $data ['page'] = $pageinfo; $data ['year'] = $year; $data ['moth'] = $moth; $data ['day'] = $day; $data ['get'] = $get; $data ['dayHtml'] = $dayHtml; $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $dayList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'remittanceHky'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/remittanceHky", $data ); } function remittancep() { $timeStamp = isset ( $this->params ['timeStamp'] ) && is_numeric ( $this->params ['timeStamp'] ) ? $this->params ['timeStamp'] : 0; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $dateCondition = ' and executeDate="' . date ( 'Y-m-d', $timeStamp ) . '"'; $rplist = $receipt->find ( array ( 'where' => ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition, 'asArray' => true ) ); $dayList = $receipt->find ( array ( 'where' => ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition, 'desc' => 'executeDate', 'groupby' => 'staff', 'asArray' => true ) ); $html = ''; foreach ( $dayList as $key => $value ) { $sinfo = $staff->getOne ( array ( 'select' => 'username,category', 'where' => ' sid=' . $value ['staff'], 'asArray' => true ) ); $html .= ''; $au = 0; foreach ( $rplist as $k => $v ) { if ($value ['staff'] == $v ['staff']) { $html .= ''; $au += $v ['amount']; } } $html .= '
    ' . $sinfo ['category'] . '-' . $sinfo ['username'] . '
    费用单号汇款金额
    ' . $v ['receiptOrder'] . '¥' . $v ['amount'] . '
    合计¥' . $au . '
    '; } $data ['html'] = $html; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'remittanceHky'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/remittancep", $data ); } function ajaxGetReceiptDetails() { $rid = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : ""; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $rid ); if (empty ( $rid )) { echo json_encode ( array ( 'status' => 2, 'msg' => 'illegal request' ) ); die (); } Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); $rinfo = $receipt->getOne ( array ( 'where' => 'rid= ' . $rid, 'asArray' => true ) ); $sinfo = $staff->getOne ( array ( 'select' => 'username,category', 'where' => ' sid=' . $rinfo ['staff'], 'asArray' => true ) ); $rinfo ['reviseDetail'] = array (); if (! empty ( $rinfo ['reviseDetail'] )) $rinfo ['reviseDetail'] = json_decode ( $rinfo ['reviseDetail'], true ); $rinfo ['accountItem'] = json_decode ( $rinfo ['accountItem'], true ); $rinfo ['loanItem'] = json_decode ( $rinfo ['loanItem'], true ); $rinfo ['category'] = $sinfo ['category']; $verifyStaff = array (); if (! empty ( $rinfo ['verifyStaff'] )) $verifyStaff = json_decode ( $rinfo ['verifyStaff'], true ); $relust = bcsub ( $rinfo ['sum'], $rinfo ['loanSum'], 2 ); $rinfo ['relust'] = $relust; $rinfo ['relustCN'] = $this->num_to_rmb ( $relust ); $rinfo ['sumCN'] = $this->num_to_rmb ( $rinfo ['sum'] ); $rinfo ['loanSumCN'] = $this->num_to_rmb ( $rinfo ['loanSum'] ); $rinfo ['amountCN'] = $this->num_to_rmb ( $rinfo ['amount'] ); // 费用执行人相关数据 $executeCopy = json_decode ( $rinfo ['executeCopy'], true ); $executeStaff = json_decode ( $rinfo ['executeStaff'], true ); foreach ( $executeCopy as $k => $v ) { $executeCopy [$k] ['date'] = ''; $executeCopy [$k] ['opinion'] = ''; $executeCopy [$k] ['status'] = ''; if (! empty ( $executeStaff )) foreach ( $executeStaff as $m => $u ) { if ($v [0] == $m) { $executeCopy [$k] ['date'] = $u ['date']; $executeCopy [$k] ['opinion'] = $u ['opinion']; $executeCopy [$k] ['status'] = $u ['status']; break; } } } $rinfo ['executeCopy'] = $executeCopy; $html = ''; echo json_encode ( array ( 'status' => 1, 'html' => $html ) ); die (); } /** * 删除附件 */ function ajaxRemEnclousur() { $key = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : ''; if (empty ( $key )) echo json_encode ( array ( 'status' => 2 ) ); Doo::loadModel ( 'enclosur' ); $enclosur = new enclosur (); $enclosur->delEnclosurByEid ( $key ); echo json_encode ( array ( 'status' => 1 ) ); } 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 ); } /** * 金额调整,提高稳定性 * @return string */ function revocationAdjustment() { $sidKey = isset ( $this->params ['sidKey'] ) ? $this->params ['sidKey'] : ''; $price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999; $ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : ''; $reviseKey = isset ( $this->params ['reviseKey'] ) ? $this->params ['reviseKey'] : ''; if ((! empty ( $sidKey )) && ($price != - 99999) && (! empty ( $ridKey ) && (! empty ( $reviseKey )))) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $sid = $XDeode->decode ( $sidKey ); $rid = $XDeode->decode ( $ridKey ); $reviseKey = $XDeode->decode ( $reviseKey ); if (! is_numeric ( $sid ) && ! is_numeric ( $rid ) && ! is_numeric ( $reviseKey )) die ( 'illegal request' ); $receiptDetail = $receipt->getOne ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); if (empty ( $receiptDetail ) || empty ( $receiptDetail ['reviseDetail'] )) die ( 'illegal request' ); $reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true ); if (! isset ( $reviseDetail [$reviseKey] )) die ( 'illegal request' ); if ($reviseDetail [$reviseKey] ['sid'] == $sid && $reviseDetail [$reviseKey] ['price'] == $price) unset ( $reviseDetail [$reviseKey] ); $revisePrice = 0; foreach ( $reviseDetail as $key => $value ) { $revisePrice += $value ['price']; } $reviseDetailString = json_encode ( $reviseDetail ); $receipt->reviseDetail = $reviseDetailString; $receipt->sum = $receiptDetail ['sum'] - $price; $receipt->revisePrice = $revisePrice; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); return '/receiptburEdi/' . $rid; } else die ( 'illegal request2' ); } 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; $amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : 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 ) ); $nslist = explode ( ',', $receiptDetail ['nowStaff'] ); $nsflag = true; foreach ( $nslist as $value ) { if ($value == $this->staff ['0'] ['sid']) { $nsflag = false; break; } } if (empty ( $receiptDetail ) || $nsflag) return "/approvalExpenses/pendApproval"; $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 (); //删除行程单 Doo::loadModel ( 'itinerary' ); $itinerary = new itinerary (); $itinerary->delete ( array ( 'where' => 'rid="' . $rid . '"' ) ); // 微信企业号通知 $this->setWXMsg ( $rid, 3 ); } 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" ); // 微信企业号通知 $this->setWXMsg ( $rid, 1 ); } //是否有流水 Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $accountType=3; if ($receiptDetail['Rtype']==1){ $accountType=2; }elseif($receiptDetail['Rtype']==2){ $accountType=4; } $wbDetail = $wasteBook->getWateBookByAD ( $accountType, $rid ); if (empty($wbDetail)){ $rsum=$receiptDetail['sum']-$receiptDetail['loanSum']; $receipt->amount = $rsum;//$amount; } $receipt->update ( array ( 'where' => ' rid = ' . $rid ) ); // 进入下一条审批费用新加需求 $vidList = array (); $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; $approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )'; $receipt = new receipt (); $rd = $receipt->getOne ( array ( 'where' => 'status!=5 ' . $approvalCondition . ' and verify in(' . $vid . ') and Rtype!=3', 'asc' => 'rid', 'asArray' => true ) ); if (empty ( $rd )) { return '/approvalExpenses/pendApproval'; } if ($rd ['Rtype'] == 1) { if ($rd ['isBK'] == 1) { return '/receiptburEdi/' . $rd ['rid']; } else { return '/expensesEdi/' . $rd ['rid']; } } elseif ($rd ['Rtype'] == 2) { return '/remitApproval/' . $rd ['rid']; } else { return '/receiptburEdi/' . $rd ['rid']; } // return "/approvalExpenses/pendApproval"; } } 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 ) ); // 微信企业号通知 $this->setWXMsg ( $rid, 2 ); } // echo "ddd"; return '/approvalExpenses/pendApproval'; } function updateCheReceipt() { $rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0; $opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : ""; // $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 . ' and status=2', 'asArray' => true ) ); if (empty ( $receiptInfo )) { echo json_encode ( array ( 'status' => 2 ) ); die (); } $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 = $opinion; $receiptLog->img = $this->staff [0] ['avatar']; $receiptLog->status = 4; $receiptLog->rid = $rid; $receiptLog->insert (); $receipt->status = 4; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); // 微信企业号通知 $this->setWXMsg ( $rid, 2 ); echo json_encode ( array ( 'status' => 1 ) ); // Header("HTTP/1.1 303 See Other"); // Header("Location: /approvalExpenses/pendApproval"); die (); } echo json_encode ( array ( 'status' => 2 ) ); die (); // 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 )) die ( 'illegal request' ); $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 ) ); if ($receiptDetail ['Rtype'] == 1) { if ($receiptDetail ['isBK'] == 1) { return '/receiptburEdi/' . $receiptDetail ['rid']; } } elseif ($receiptDetail ['Rtype'] == 2) { } else { return '/receiptburEdi/' . $receiptDetail ['rid']; } } die ( 'illegal request' ); } 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; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $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 ($year < date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( 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; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'personalCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; // year staff status 2,4 if ($year < date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( 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 (); Doo::loadModel ( "receiptAuthorityManage" ); $receiptAuthorityManage = new receiptAuthorityManage (); $imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] ); $cidList = array (); foreach ( $imcStaff as $key => $value ) { array_push ( $cidList, $value ['cid'] ); } $cidString = implode ( ',', $cidList ); $LcategoryList = $Lcategory->find ( array ( 'where' => ' cid in (' . $cidString . ')', '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 // echo $cidString; $stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'], $cidString ); 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; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; // year staff status 2,4 if ($year < date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( 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 (); Doo::loadModel ( "receiptAuthorityManage" ); $receiptAuthorityManage = new receiptAuthorityManage (); $imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] ); $cidList = array (); foreach ( $imcStaff as $key => $value ) { array_push ( $cidList, $value ['cid'] ); } $cidString = implode ( ',', $cidList ); $LcategoryList = $Lcategory->find ( array ( 'where' => 'cid in (' . $cidString . ')', '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(), '其他' => 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, '其他', '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 ($year < date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( 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 (); } } */ $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $this->render ( "/admin/saeaCategoryCollectDetail", $data ); } function staffCollect() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : 'ONJOB';// $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 (); Doo::loadModel ( "receiptAuthorityManage" ); $receiptAuthorityManage = new receiptAuthorityManage (); $imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] ); $cidList = array (); foreach ( $imcStaff as $key => $value ) { array_push ( $cidList, $value ['cid'] ); } $cidString = implode ( ',', $cidList ); $naturecon=''; if ($nature=='ONJOB'){ $naturecon=' and (nature!=4 )'; }elseif($nature=='LEAVEJOB'){ $naturecon=' and (nature=4 )'; }else{ die ( 'illegal request--nature' ); } // statistics html $stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'], $cidString ); 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" '.$naturecon, '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 . ' and cid in (' . $cidString . ')', 'groupby' => 'staff,Month(date)', 'asArray' => true ) ); $categoryList = $staff->find ( array ( 'select' => 'COUNT(*) as count,cid,category', 'where' => 'username !="admin" and cid in (' . $cidString . ') '.$naturecon, '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'] . '_' . $value ['sid']] = 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 ['nature'] =$nature; $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" )) && ($month < date ( "m" ))) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( 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 payments() { // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php'; Doo::loadModel ( "execute" ); $execute = new execute (); if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) { die ( 'illegal request' ); } Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); $statisticsList = $accountBookStatistics->getStatisticsByMonth (); $list = $accountBook->getAccountBookByLimit ( 10 ); $data ['date'] = date ( "Y-m-d" ); $data ['statisticsList'] = $statisticsList; $data ['list'] = $list; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'payments'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/payments", $data ); } function paymentsIncomeDo() { $accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : ""; $accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : ""; $receivedPrice = is_numeric ( $this->get_args ( 'receivedPrice' ) ) ? $this->get_args ( 'receivedPrice' ) : 0; $receivedMsg = $this->get_args ( 'receivedMsg' ) ? $this->get_args ( 'receivedMsg' ) : ''; $receivedBank = $this->get_args ( 'receivedBank' ) ? $this->get_args ( 'receivedBank' ) : ''; $receivedDate = $this->get_args ( 'receivedDate' ) ? $this->get_args ( 'receivedDate' ) : ''; $remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : ''; if (! empty ( $accountType ) && ! empty ( $receivedPrice ) && ! empty ( $receivedMsg ) && ! empty ( $receivedBank ) && ! empty ( $receivedDate )) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); Doo::loadModel ( "accountBook" ); Doo::loadModel ( "accountBookStatistics" ); Doo::loadModel ( 'wasteBook' ); // 记录流水时银行的转换 $accountBank = ''; if ($receivedBank == '纵横广发') { $accountBank = 'CGBDeposit'; } elseif ($receivedBank == '纵横工行') { $accountBank = 'ICBCDeposit'; } elseif ($receivedBank == '华润银行') { $accountBank = 'HUADeposit'; } elseif ($receivedBank == '个人广发') { $accountBank = 'PersonalDeposit'; } if (empty ( $accountBank )) die ( 'illegal request-bank' ); //TODO -存款功能 提取 if($accountType == 11 || $accountType == 12){ if($accountType == 11){ $receivedBank = '纵横广发'; }elseif($accountType == 12){ $receivedBank = '纵横工行'; } // 添加一条收入 $accountBook = new accountBook (); $accountBook->accountType = $accountType; $accountBook->accountMsg = $accountMsg; $accountBook->receivedPrice = $receivedPrice; $accountBook->receivedMsg = $receivedMsg; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $receivedDate; $accountBook->remarks = $remarks; $accountBook->expensesType = 1; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $inComeId = $accountBook->insert (); // 收支汇总-添加一条收入日常汇总 $abDetail = $accountBook->getAccountBookByAid ( $inComeId ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'accountType' => $abDetail ['accountType'], 'accountMsg' => $abDetail ['accountMsg'], 'aid' => $abDetail ['aid'], 'inComePrice' => $abDetail ['receivedPrice'], 'expensesType' => $abDetail ['expensesType'] ); $accountBookStatistics->setAccountBookStatistics ( $item ); // 添加收入流水 if($accountType == 11){ $accountBank = 'CGBDeposit'; }elseif($accountType == 12){ $accountBank = 'ICBCDeposit'; } $wasteBook = new wasteBook (); $itemWaste = array ( 'accountPriceShow' => $receivedPrice, 'accountPrice' => $receivedPrice, 'expensesType' => 1, 'accountType' => 6, // 流水类型 'dataID' => $inComeId, 'dailyIncomeType' => $accountType, // $dailyIncomeType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => $receivedDate, 'createAt'=>date ( "Y-m-d H:i:s" ), 'synPaymentDate'=>1, ); $wasteBook->setAccountBookStatistics ( $itemWaste ); //TODO --移除理财相关 }elseif($accountType == 7 || $accountType == 9) { // 收入为理财时特殊处理 // if ($receivedBank == '个人广发') { // die ( '个人广发 illegal request' ); // } // 添加一条收入 $accountBook = new accountBook (); $accountBook->accountType = 10; $accountBook->accountMsg = $accountMsg; $accountBook->receivedPrice = $receivedPrice; $accountBook->receivedMsg = $receivedMsg; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $receivedDate; $accountBook->remarks = $remarks; $accountBook->expensesType = 1; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $inComeId = $accountBook->insert (); // 收支汇总-添加一条收入日常汇总 $abDetail = $accountBook->getAccountBookByAid ( $inComeId ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'accountType' => $abDetail ['accountType'], 'accountMsg' => $abDetail ['accountMsg'], 'aid' => $abDetail ['aid'], 'inComePrice' => $abDetail ['receivedPrice'], 'expensesType' => $abDetail ['expensesType'] ); $accountBookStatistics->setAccountBookStatistics ( $item ); // 添加收入流水 $wasteBook = new wasteBook (); $itemWaste = array ( 'accountPriceShow' => $receivedPrice, 'accountPrice' => $receivedPrice, 'expensesType' => 1, 'accountType' => 6, // 流水类型 'dataID' => $inComeId, 'dailyIncomeType' => $accountType, // $dailyIncomeType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); // 添加一条理财支出 $accountBank = 'CGBDeposit'; $expenditureBank = '纵横广发'; $dailyExpenditureType = 4; if ($accountType == 9) { $accountBank = 'ICBCDeposit'; $expenditureBank = '纵横工行'; $dailyExpenditureType = 6; } $accountBook = new accountBook (); $accountBook->expensesType = 2; $accountBook->expenditureType = $dailyExpenditureType; $accountBook->expenditureMsg = $accountMsg; $accountBook->expenditurePrice = $receivedPrice; $accountBook->expenditureBank = $expenditureBank; $accountBook->expenditureDate = $receivedDate; $accountBook->remarks = $remarks; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); // 收支汇总-添加一条理财支出汇总 $abDetail = $accountBook->getAccountBookByAid ( $id ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'accountType' => $abDetail ['accountType'], 'accountMsg' => $abDetail ['accountMsg'], 'aid' => $abDetail ['aid'], 'financingPrice' => - $receivedPrice, 'expensesType' => 3 ); $accountBookStatistics->setAccountBookStatistics ( $item ); // 添加一条支出理财流水 $accountTypeWaste = 5; if ($accountMsg == '公司固定') { $accountTypeWaste = 9; } elseif ($accountMsg == '公司活期') { $accountTypeWaste = 10; } elseif ($accountMsg == '个人(GR)') { $accountBank = 'PersonalDeposit'; } $itemWaste = array ( 'expensesType' => 2, 'accountType' => $accountTypeWaste, 'accountPriceShow' => $receivedPrice, 'accountPrice' => - $receivedPrice, 'dataID' => $id, 'dailyExpenditureType' => $dailyExpenditureType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } elseif ($accountType == 1) { // if ($receivedBank == '个人广发') // die ( 'illegal request--no man' ); // 添加一条收入 $accountBook = new accountBook (); $accountBook->accountType = $accountType; $accountBook->accountMsg = $accountMsg; $accountBook->receivedPrice = $receivedPrice; $accountBook->receivedMsg = $receivedMsg; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $receivedDate; $accountBook->remarks = $remarks; $accountBook->expensesType = 1; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); $abDetail = $accountBook->getAccountBookByAid ( $id ); // 收支汇总-添加一条收入日常汇总 $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'accountType' => $abDetail ['accountType'], 'accountMsg' => $abDetail ['accountMsg'], 'aid' => $abDetail ['aid'], 'expensesType' => $abDetail ['expensesType'] ); if ($abDetail ['accountType'] == 8) { $item += array ( 'inComePrice' => $abDetail ['receivedPrice'] ); } else { $item += array ( 'inComePrice' => $abDetail ['receivedPrice'] ); } $accountBookStatistics->setAccountBookStatistics ( $item ); // 流水存储方向 $itemWaste = array ( 'accountType' => 6 ); // 流水类型 // if($accountMsg=='银行存款'||$accountMsg=='固定理财收益'){ // }else if ($accountMsg == '活期理财收益') { $itemWaste = array ( 'accountType' => 10 ); // 流水类型 } // 添加收入流水 $wasteBook = new wasteBook (); $itemWaste += array ( 'accountPrice' => $receivedPrice, 'accountPriceShow' => $receivedPrice, 'expensesType' => 1, 'dailyIncomeType' => $accountType, // $dailyIncomeType, 'dataID' => $id, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => $receivedDate, 'createAt'=>date ( "Y-m-d H:i:s" ), 'synPaymentDate'=>1, ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } else { // 普通日常收入处理 // 添加一条收入 $accountBook = new accountBook (); $accountBook->accountType = $accountType; $accountBook->accountMsg = $accountMsg; $accountBook->receivedPrice = $receivedPrice; $accountBook->receivedMsg = $receivedMsg; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $receivedDate; $accountBook->remarks = $remarks; $accountBook->expensesType = 1; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); $abDetail = $accountBook->getAccountBookByAid ( $id ); // 收支汇总-添加一条收入日常汇总 $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'accountType' => $abDetail ['accountType'], 'accountMsg' => $abDetail ['accountMsg'], 'aid' => $abDetail ['aid'], 'expensesType' => $abDetail ['expensesType'] ); if ($abDetail ['accountType'] == 8) { $item += array ( 'inComePrice' => $abDetail ['receivedPrice'] ); } else { $item += array ( 'inComePrice' => $abDetail ['receivedPrice'] ); } $accountBookStatistics->setAccountBookStatistics ( $item ); // 添加收入流水 $itemWaste = array ( 'accountPrice' => $receivedPrice ); if ($receivedBank == '个人广发') { $itemWaste = array ( 'accountPrice' => - $receivedPrice ); } $wasteBook = new wasteBook (); $itemWaste += array ( 'accountPriceShow' => $receivedPrice, 'expensesType' => 1, 'accountType' => 6, // 流水类型 'dailyIncomeType' => $accountType, // $dailyIncomeType, 'dataID' => $id, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => $receivedDate, 'createAt'=>date ( "Y-m-d H:i:s" ), 'synPaymentDate'=>1, ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } } return '/payments'; } function paymentsExpenditureDo() { $expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : ""; $expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : ""; $expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0; $expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : ''; $remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : ''; $expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : ''; if (! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) { // 理财支出特殊处理 Doo::loadModel ( "accountBook" ); Doo::loadModel ( "accountBookStatistics" ); Doo::loadModel ( 'wasteBook' ); $accountBank = ''; if ($expenditureBank == '纵横广发') { $accountBank = 'CGBDeposit'; } elseif ($expenditureBank == '纵横工行') { $accountBank = 'ICBCDeposit'; } elseif ($expenditureBank == '华润银行') { $accountBank = 'HUADeposit'; } elseif ($expenditureBank == '个人广发') { $accountBank = 'PersonalDeposit'; } if (empty ( $accountBank )) die ( 'illegal request' ); if($expenditureType == 8 || $expenditureType == 9){ if($expenditureType == 8 ){ $expenditureBank='纵横广发'; }elseif($expenditureType == 9){ $expenditureBank='纵横工行'; } // 添加一笔日常支出 $accountBook = new accountBook (); $accountBook->expensesType = 2; $accountBook->expenditureType = $expenditureType; $accountBook->expenditureMsg = $expenditureMsg; $accountBook->expenditurePrice = $expenditurePrice; $accountBook->expenditureBank = $expenditureBank; $accountBook->expenditureDate = $expenditureDate; $accountBook->remarks = $remarks; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $expenditureId = $accountBook->insert (); // 添加日常支出汇总 $abDetail = $accountBook->getAccountBookByAid ( $expenditureId ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'expenditureType' => $abDetail ['expenditureType'], 'expenditureMsg' => $abDetail ['expenditureMsg'], 'aid' => $abDetail ['aid'], 'payPrice' => $abDetail ['expenditurePrice'], 'expensesType' => $abDetail ['expensesType'] ); $accountBookStatistics->setAccountBookStatistics ( $item ); // 公司日常支出流水 if($expenditureType == 8 ){ $accountBank = 'CGBDeposit'; }elseif($expenditureType == 9){ $accountBank = 'ICBCDeposit'; } if($accountBank=='CGBDeposit'){ $dailyExpenditureType='8'; }elseif($accountBank=='ICBCDeposit'){ $dailyExpenditureType='9'; }elseif($accountBank=='PersonalDeposit'){ $dailyExpenditureType='10'; }elseif($accountBank=='HUADeposit'){ $dailyExpenditureType='11'; } $wasteBook = new wasteBook (); $itemWaste = array ( 'expensesType' => 2, 'accountType' => 5, 'dailyExpenditureType' => $dailyExpenditureType, 'accountPriceShow' => $expenditurePrice, 'accountPrice' => - $expenditurePrice, 'dataID' => $expenditureId, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); // 添加一笔收入流水 // if($expenditureType==8){ // $dailyIncomeType='11'; // }elseif($expenditureType==9){ // $dailyIncomeType='12'; // } // $wasteBook = new wasteBook (); // $itemWaste = array ( // 'expensesType' => 1, // 'accountType' => 6, // 'accountPriceShow' => $expenditurePrice, // 'accountPrice' => $expenditurePrice, // 'dataID' => $expenditureId, // // 'dailyIncomeType' => $dailyIncomeType, // 'accountBank' => $accountBank, // 'category' => $this->staff [0] ['category'], // 'cid' => $this->staff [0] ['cid'], // 'name' => $this->staff [0] ['username'], // 'sid' => $this->staff [0] ['sid'], // 'inputDate' => date ( "Y-m-d H:i:s" ) // ); // $wasteBook->setAccountBookStatistics ( $itemWaste ); }elseif ($expenditureType == 4 || $expenditureType == 6) { if ($expenditureBank == '个人广发') { die ( '个人广发 illegal request' ); } // 添加一笔日常支出 $accountBook = new accountBook (); $accountBook->expensesType = 2; $accountBook->expenditureType = 7; $accountBook->expenditureMsg = $expenditureMsg; $accountBook->expenditurePrice = $expenditurePrice; $accountBook->expenditureBank = $expenditureBank; $accountBook->expenditureDate = $expenditureDate; $accountBook->remarks = $remarks; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $expenditureId = $accountBook->insert (); // 添加日常支出汇总 $abDetail = $accountBook->getAccountBookByAid ( $expenditureId ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'expenditureType' => $abDetail ['expenditureType'], 'expenditureMsg' => $abDetail ['expenditureMsg'], 'aid' => $abDetail ['aid'], 'payPrice' => $abDetail ['expenditurePrice'], 'expensesType' => $abDetail ['expensesType'] ); $accountBookStatistics->setAccountBookStatistics ( $item ); // 公司日常支出流水 $wasteBook = new wasteBook (); $itemWaste = array ( 'accountPrice' => - $expenditurePrice ); if ($expenditureBank == '个人广发') { $itemWaste = array ( 'accountPrice' => $expenditurePrice ); } $itemWaste += array ( 'expensesType' => 2, 'accountType' => 5, 'dailyExpenditureType' => $expenditureType, 'accountPriceShow' => $expenditurePrice, 'accountPrice' => - $expenditurePrice, 'dataID' => $expenditureId, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); // 添加一笔理财收入 $accountBank = 'CGBDeposit'; $dailyIncomeType = 7; $receivedBank = '纵横广发'; if ($expenditureType == 6) { $accountBank = 'ICBCDeposit'; $receivedBank = '纵横工行'; $dailyIncomeType = 9; } $accountBook = new accountBook (); $accountBook->expensesType = 1; $accountBook->accountType = $dailyIncomeType; $accountBook->accountMsg = $expenditureMsg; $accountBook->receivedPrice = $expenditurePrice; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $expenditureDate; $accountBook->remarks = $remarks; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); // 添加日常理财收入汇总 $abDetail = $accountBook->getAccountBookByAid ( $expenditureId ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'expenditureType' => $abDetail ['expenditureType'], 'expenditureMsg' => $abDetail ['expenditureMsg'], 'aid' => $abDetail ['aid'], 'financingPrice' => $expenditurePrice, 'expensesType' => 3 ); $accountBookStatistics->setAccountBookStatistics ( $item ); // 添加一笔收入流水 if ($expenditureMsg == '公司固定') { $accountTypeWaste = 9; } elseif ($expenditureMsg == '公司活期') { $accountTypeWaste = 10; } elseif ($expenditureMsg == '个人(GR)') { $accountBank = 'PersonalDeposit'; } $itemWaste = array ( 'expensesType' => 1, 'accountType' => $accountTypeWaste, 'accountPriceShow' => $expenditurePrice, 'accountPrice' => $expenditurePrice, 'dataID' => $id, 'dailyIncomeType' => $dailyIncomeType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } else { // 添加一笔日常支出 $accountBook = new accountBook (); $accountBook->expensesType = 2; $accountBook->expenditureType = $expenditureType; $accountBook->expenditureMsg = $expenditureMsg; $accountBook->expenditurePrice = $expenditurePrice; $accountBook->expenditureBank = $expenditureBank; $accountBook->expenditureDate = $expenditureDate; $accountBook->remarks = $remarks; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); // 添加日常支出汇总 $abDetail = $accountBook->getAccountBookByAid ( $id ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'expenditureType' => $abDetail ['expenditureType'], 'expenditureMsg' => $abDetail ['expenditureMsg'], 'aid' => $abDetail ['aid'], 'expensesType' => $abDetail ['expensesType'] ); if ($expenditureType == 5) { $item += array ( 'payPrice' => - $abDetail ['expenditurePrice'] ); } else { $item += array ( 'payPrice' => $abDetail ['expenditurePrice'] ); } $accountBookStatistics->setAccountBookStatistics ( $item ); // 公司日常支出流水 $wasteBook = new wasteBook (); $itemWaste = array ( 'accountPrice' => - $expenditurePrice ); if ($expenditureBank == '个人广发') { $itemWaste = array ( 'accountPrice' => $expenditurePrice ); } $itemWaste += array ( 'expensesType' => 2, 'accountType' => 5, 'accountPriceShow' => $expenditurePrice, 'dataID' => $id, 'dailyExpenditureType' => $expenditureType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } } return '/payments'; } /** * 添加支出 */ function paymentsExpenditureDo_() { $expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : ""; $expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : ""; $expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0; $expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : ''; $remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : ''; $expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : ''; if (! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) { $dailyExpenditureType = ''; $accountTypeWaste = 5; $accountBank = ''; if ($expenditureBank == '纵横广发') { $accountBank = 'CGBDeposit'; } elseif ($expenditureBank == '纵横工行') { $accountBank = 'ICBCDeposit'; } elseif ($expenditureBank == '华润银行') { $accountBank = 'HUADeposit'; } elseif ($expenditureBank == '个人广发') { $accountBank = 'PersonalDeposit'; } if (empty ( $accountBank )) die ( 'illegal request' ); $itemWaste = array ( 'accountPrice' => - $expenditurePrice ); if ($expenditureBank == '个人广发') { $itemWaste = array ( 'accountPrice' => $expenditurePrice ); } if ($expenditureType == 4 || $expenditureType == 6) { $dailyExpenditureType = 4; if ($expenditureMsg == '公司固定') { $accountTypeWaste = 9; } elseif ($expenditureMsg == '公司活期') { $accountTypeWaste = 10; } elseif ($expenditureMsg == '个人(GR)') { $accountBank = 'PersonalDeposit'; } $itemWaste = array ( 'accountPrice' => $expenditurePrice ); } elseif ($expenditureType == 1) { $dailyExpenditureType = 1; } elseif ($expenditureType == 2) { $dailyExpenditureType = 2; } elseif ($expenditureType == 3) { $dailyExpenditureType = 3; } elseif ($expenditureType == 5) { $dailyExpenditureType = 5; } if (empty ( $dailyExpenditureType )) die ( 'illegal request' ); Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); $accountBook->expenditureType = $expenditureType; $accountBook->expenditureMsg = $expenditureMsg; $accountBook->expenditurePrice = $expenditurePrice; $accountBook->expenditureBank = $expenditureBank; $accountBook->expenditureDate = $expenditureDate; $accountBook->remarks = $remarks; $accountBook->expensesType = 2; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); // $abDetail = $accountBook->getAccountBookByAid ( $id ); Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'expenditureType' => $abDetail ['expenditureType'], 'expenditureMsg' => $abDetail ['expenditureMsg'], 'aid' => $abDetail ['aid'] ); if ($abDetail ['expensesType'] == 2) { if ($abDetail ['expenditureType'] == 4 || $abDetail ['expenditureType'] == 6) { $item += array ( 'financingPrice' => $expenditurePrice, 'expensesType' => 3 ); } elseif ($abDetail ['expenditureType'] == 5) { $item += array ( 'payPrice' => $abDetail ['expenditurePrice'], 'expensesType' => $abDetail ['expensesType'] ); } else { $item += array ( 'payPrice' => $abDetail ['expenditurePrice'], 'expensesType' => $abDetail ['expensesType'] ); } } $accountBookStatistics->setAccountBookStatistics ( $item ); // 公司流水记录 Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $abDetail = $wasteBook->getAccountBookByAid ( 2, $accountTypeWaste, $id ); // 银行 if (empty ( $abDetail )) { $itemWaste += array ( 'accountPriceShow' => $expenditurePrice, 'dataID' => $id, 'expensesType' => 2, 'accountType' => $accountTypeWaste, 'dailyExpenditureType' => $expenditureType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } // 支出类型为4或者6 需要添加一笔收入和收入流水 if ($expenditureType == 4 || $expenditureType == 6) { $accountBank = 'CGBDeposit'; $dailyIncomeType = 7; $receivedBank = '纵横广发'; if ($expenditureType == 6) { $accountBank = 'ICBCDeposit'; $receivedBank = '纵横工行'; $dailyIncomeType = 9; } // 添加一笔收入 $accountBook = new accountBook (); $accountBook->accountType = $dailyIncomeType; $accountBook->accountMsg = $expenditureMsg; $accountBook->receivedPrice = $expenditurePrice; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $expenditureDate; $accountBook->remarks = $remarks; $accountBook->expensesType = 1; $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ); $accountBook->inputDate = date ( "Y-m-d H:i:s" ); $accountBook->inputStaff = $this->staff [0] ['sid']; $id = $accountBook->insert (); // 添加一笔收入流水 $itemWaste = array ( 'accountPriceShow' => $expenditurePrice, 'accountPrice' => - $expenditurePrice, 'dataID' => $id, 'expensesType' => 1, 'accountType' => $accountTypeWaste, 'dailyIncomeType' => $dailyIncomeType, 'accountBank' => $accountBank, 'category' => $this->staff [0] ['category'], 'cid' => $this->staff [0] ['cid'], 'name' => $this->staff [0] ['username'], 'sid' => $this->staff [0] ['sid'], 'inputDate' => date ( "Y-m-d H:i:s" ) ); $wasteBook->setAccountBookStatistics ( $itemWaste ); } } return '/payments'; } /** * 所有收支 */ function paymentsAchieve() { $page_size = 12; $page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $expensesType = isset ( $this->params ['expensesType'] ) ? $this->params ['expensesType'] : 'ALL'; $date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : ""; $price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : ""; $accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : ""; $accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : ""; $expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : ""; $submitType = $this->get_args ( 'submitType' ) ? $this->get_args ( 'submitType' ) : ""; Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); $statisticsList = $accountBookStatistics->getStatisticsByMonth (); $data ['statisticsList'] = $statisticsList; Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); $con = ''; if ($expensesType == 'INCOME') $con = ' and expensesType=1 '; elseif ($expensesType == 'PAY') $con = ' and expensesType=2 '; $dateArr = explode ( ':', $date ); $D1 = $dateString = ''; $D2 = ''; if (! empty ( $date )) { $D1 = $dateArr [0]; if (isset ( $dateArr [1] )) $D2 = $dateArr [1]; else $D2 = ''; $dateString = $D1 . " : " . $D2; } if (! empty ( $D1 ) && ! empty ( $D2 )) $con .= ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" '; elseif (! empty ( $D1 ) && empty ( $D2 )) $con .= ' and inputDate like "%' . $D1 . '%" '; if (! empty ( $price )) $con .= ' and (receivedPrice=' . $price . ' or expenditurePrice=' . $price . ')'; if ($submitType == 1) { if ($accountType != '') { $expenditureType = ''; $con .= ' and accountType=' . $accountType; if (! empty ( $accountMsg )) $con .= ' and (accountType=' . $accountType . ' and accountMsg like "%' . $accountMsg . '%")'; } } elseif ($submitType == 2) { if ($expenditureType != '') { $accountType = $accountMsg = ''; $con .= ' and expenditureType=' . $expenditureType; } } else { $accountType = $accountMsg = $expenditureType = ''; } $sql = "" . $con; $action = "paymentsAchieve"; $get = '/' . $expensesType; // "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea ); $pageinfo = $this->get_page ( "CLD_accountBook", $sql, $page, $page_size, $action, $get, "" ); $limit = $pageinfo ['lower'] . ',' . $page_size; $list = $accountBook->getAccountBookBySql ( $limit, $sql, 'desc' ); $data ['expenditureType'] = $expenditureType; $data ['accountMsg'] = $accountMsg; $data ['accountType'] = $accountType; $data ['inputDate'] = $date; $data ['price'] = $price; $data ['expensesType'] = $expensesType; $data ['page'] = $pageinfo; $data ['list'] = $list; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'payments'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/paymentsAchieve", $data ); } function paymentsIncomeUpdateDo() { $aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : ""; $accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : ""; $accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : ""; $receivedPrice = is_numeric ( $this->get_args ( 'receivedPrice' ) ) ? $this->get_args ( 'receivedPrice' ) : 0; $receivedMsg = $this->get_args ( 'receivedMsg' ) ? $this->get_args ( 'receivedMsg' ) : ''; $receivedBank = $this->get_args ( 'receivedBank' ) ? $this->get_args ( 'receivedBank' ) : ''; $receivedDate = $this->get_args ( 'receivedDate' ) ? $this->get_args ( 'receivedDate' ) : ''; $remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : ''; if (! empty ( $aidKey ) && ! empty ( $accountType ) && ! empty ( $receivedPrice ) && ! empty ( $receivedMsg ) && ! empty ( $receivedBank ) && ! empty ( $receivedDate )) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $aid = $XDeode->decode ( $aidKey ); Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); // $abDetail = $accountBook->getAccountBookByAid ( $aid ); $price = $receivedPrice - $abDetail [inComePrice]; Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); if ($abDetail ['accountType'] == 7) { $item += array ( 'date' => date ( "Y-m-d" ), 'financingPrice' => - $price, 'expensesType' => 3, 'aid' => $abDetail ['aid'] ); } elseif ($abDetail ['accountType'] == 8) { $item += array ( 'date' => date ( "Y-m-d" ), 'expensesType' => $abDetail ['expensesType'], 'inComePrice' => - $price, 'aid' => $abDetail ['aid'] ); } else { $item = array ( 'date' => date ( "Y-m-d" ), 'expensesType' => $abDetail ['expensesType'], 'inComePrice' => $price, 'aid' => $abDetail ['aid'] ); } $accountBookStatistics->setAccountBookStatistics ( $item ); $accountBook->accountType = $accountType; $accountBook->accountMsg = $accountMsg; $accountBook->receivedPrice = $receivedPrice; $accountBook->receivedMsg = $receivedMsg; $accountBook->receivedBank = $receivedBank; $accountBook->receivedDate = $receivedDate; $accountBook->remarks = $remarks; $accountBook->aid = $aid; $accountBook->update (); } return '/paymentsAchieve'; } function paymentsExpenditureEdiDo() { $aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : ""; $expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : ""; $expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : ""; $expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0; $expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : ''; $remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : ''; $expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : ''; if (! empty ( $aidKey ) && ! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $aid = $XDeode->decode ( $aidKey ); Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); // 汇总信息 $abDetail = $accountBook->getAccountBookByAid ( $aid ); $price = $expenditurePrice - $abDetail [expenditurePrice]; Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); if ($abDetail ['expenditureType'] == 4) { $item += array ( 'date' => date ( "Y-m-d" ), 'financingPrice' => $price, 'expensesType' => 3, 'aid' => $abDetail ['aid'] ); } elseif ($abDetail ['expenditureType'] == 5) { $item += array ( 'date' => date ( "Y-m-d" ), 'expensesType' => $abDetail ['expensesType'], 'payPrice' => $price, 'aid' => $abDetail ['aid'] ); } else { $item = array ( 'date' => date ( "Y-m-d" ), 'expensesType' => $abDetail ['expensesType'], 'payPrice' => $price, 'aid' => $abDetail ['aid'] ); } $accountBookStatistics->setAccountBookStatistics ( $item ); // $accountBook->expenditureType = $expenditureType; $accountBook->expenditureMsg = $expenditureMsg; $accountBook->expenditurePrice = $expenditurePrice; $accountBook->expenditureBank = $expenditureBank; $accountBook->remarks = $remarks; $accountBook->expenditureDate = $expenditureDate; $accountBook->aid = $aid; $id = $accountBook->update (); } return '/paymentsAchieve'; } function paymentsDelDo() { $aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : ""; if (! empty ( $aidKey )) { Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $aid = $XDeode->decode ( $aidKey ); Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); $abDetail = $accountBook->getAccountBookByAid ( $aid ); if (empty ( $abDetail )) die ( 'illegal request' ); // 删除收支 Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); $item = array ( 'date' => date ( "Y-m-d" ), 'aid' => $abDetail ['aid'] ); $accountType = ''; if ($abDetail ['expensesType'] == 1) { $accountType = 6; if ($abDetail ['accountType'] != 7) { $item += array ( 'expensesType' => $abDetail ['expensesType'], 'inComePrice' => - $abDetail ['receivedPrice'] ); } else { $item += array ( 'financingPrice' => $abDetail ['receivedPrice'], 'expensesType' => 3 ); } } elseif ($abDetail ['expensesType'] == 2) { $accountType = 5; if ($abDetail ['accountType'] != 7) { $item += array ( 'expensesType' => $abDetail ['expensesType'], 'payPrice' => - $abDetail ['expenditurePrice'] ); } else { $item += array ( 'financingPrice' => - $abDetail ['expenditurePrice'], 'expensesType' => 3 ); } } if (($abDetail ['expenditureType'] == 4 || $abDetail ['expenditureType'] == 6) && $abDetail ['expensesType'] == 2) { if ($abDetail ['expenditureMsg'] == '公司固定') $accountType = 9; elseif ($abDetail ['expenditureMsg'] == '公司活期') $accountType = 10; } if (($abDetail ['accountType'] == 7 || $abDetail ['accountType'] == 9) && $abDetail ['expensesType'] == 1) { if ($abDetail ['accountMsg'] == '公司固定') $accountType = 9; elseif ($abDetail ['accountMsg'] == '公司活期') $accountType = 10; } if ($abDetail ['accountMsg'] == '活期理财收益') { $accountType = 10; } $accountBookStatistics->setAccountBookStatistics ( $item ); $accountBook->delete ( array ( 'where' => 'aid=' . $aid, 'limit' => 1 ) ); // 删除收入流水 if (! empty ( $accountType )) { Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $wasteBook->delete ( array ( 'where' => 'dataID=' . $aid . ' and accountType=' . $accountType, 'limit' => 1 ) ); } } return '/paymentsAchieve'; } function paymentsCollect() { Doo::loadModel ( "execute" ); $execute = new execute (); if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) { die ( 'illegal request' ); } $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : ""; Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); Doo::loadClass ( 'receipt.func' ); $statisticsIncome = $accountBookStatistics->getStatisticsByCollect ( $year ); $html = _getPaymentsCollectByYearHtml ( $statisticsIncome ); $data ['html'] = $html ['html']; $data ['inSum'] = $html ['sum']; $statisticsPay = $accountBookStatistics->getStatisticsByCollect ( $year, 2 ); $html = _getPaymentsCollectPayByYearHtml ( $statisticsPay ); $data ['payHtml'] = $html ['html']; $data ['paySum'] = $html ['sum']; // 余额统计 // $inComePay = $accountBookStatistics->getStatisticsByBalance ( $year, 1 ); // $pay = $accountBookStatistics->getStatisticsByBalance ( $year, 2 ); include './protected/config/wasteBook.conf.php'; Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $inComePay = $wasteBook->getWasteBookByStatistics ( 1, $year ); $pay = $wasteBook->getWasteBookByStatistics ( 2, $year ); // 获得年份之前所有金额 $detail = $wasteBook->getWasteBookByStatisticsYear ( $year ); // print_r($detail); // $waste['total']; $lastBalanceHtml = '截至上月余额'; $inComeHtml = '收入'; $payHtml = '支出'; $BalanceHtml = '余额'; $inSum = $paySum = $showInSum = $showPaySum = $balanceSum = 0; $balanceC = $bakBC = $waste ['total'] + $detail [0] ['accountPrice']; $limitMonth = date ( 'm' ); // 限制显示月份参数 if (date ( 'Y' ) > $year) { $limitMonth = 12; } for($i = 1; $i <= 12; $i ++) { $inComeA = $payB = 0; $falg = true; foreach ( $inComePay as $key => $value ) { if ($value ['month'] == $i) { $falg = false; $inComeHtml .= '' . $value ['accountPriceShow'] . ''; $inSum += $value ['accountPrice']; $showInSum += $value ['accountPriceShow']; $inComeA = $value ['accountPrice']; break; } } if ($falg) $inComeHtml .= '-'; $payFalg = true; foreach ( $pay as $key => $value ) { if ($value ['month'] == $i) { $payFalg = false; $payHtml .= '' . $value ['accountPriceShow'] . ''; $paySum += $value ['accountPrice']; $showPaySum += $value ['accountPriceShow']; $payB = $value ['accountPrice']; break; } } if ($payFalg) $payHtml .= '-'; if (empty ( $balanceC ) || $limitMonth < $i) $lastBalanceHtml .= '-'; else $lastBalanceHtml .= '' . $balanceC . ''; $balanceC = $balanceC + $inComeA + $payB; $balanceSum += $balanceC; if (empty ( $balanceC ) || $limitMonth < $i) $BalanceHtml .= '-'; else $BalanceHtml .= '' . $balanceC . ''; // 余额统计 } $inComeHtml .= '¥' . $showInSum . ''; $data ['inComeHtml'] = $inComeHtml; $payHtml .= '¥' . $showPaySum . ''; $data ['payBalanceHtml'] = $payHtml; $BalanceHtml .= '¥' . $balanceC . ''; $data ['BalanceHtml'] = $BalanceHtml; $lastBalanceHtml .= '' . $balanceC . ''; $data ['lastBalanceHtml'] = $lastBalanceHtml; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($moth == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['mothHtml'] = $mothHtml; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $data ['year'] = $year; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'paymentsCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/paymentsCollect", $data ); } function paymentsCollectDay() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $moth = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ''; if (empty ( $moth )) return 'paymentsCollect'; Doo::loadModel ( "accountBookStatistics" ); $accountBookStatistics = new accountBookStatistics (); $i = 2; $y = 2013; $day = date ( "t", strtotime ( "$year-$moth" ) ); Doo::loadClass ( 'receipt.func' ); $statisticsIncome = $accountBookStatistics->getStatisticsByCollectDay ( $year, 1, $moth ); $html = _getPaymentsCollectByDayHtml ( $statisticsIncome, $day ); $data ['html'] = $html ['html']; $data ['inSum'] = $html ['sum']; $statisticsPay = $accountBookStatistics->getStatisticsByCollectDay ( $year, 2, $moth ); $html = _getPaymentsCollectPayByDayHtml ( $statisticsPay, $day ); $data ['payHtml'] = $html ['html']; $data ['paySum'] = $html ['sum']; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($moth == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['mothHtml'] = $mothHtml; $data ['year'] = $year; // 余额 // $inComePay = $accountBookStatistics->getStatisticsByBalance ( $year, 1, $moth ); // $pay = $accountBookStatistics->getStatisticsByBalance ( $year, 2, $moth ); include './protected/config/wasteBook.conf.php'; Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $inComePay = $wasteBook->getStatisticsByDay ( 1, $year, $moth ); $pay = $wasteBook->getStatisticsByDay ( 2, $year, $moth ); // 获得年份之前所有金额 $detail = $wasteBook->getWasteBookByStatisticsDay ( $year, $moth ); $lastBalanceHtml = '截至上日余额'; $inComeHtml = '收入'; $payHtml = '支出'; $BalanceHtml = '余额'; $dayHtml = '余额'; $inSum = $paySum = $showPaySum = $showInSum = $balanceSum = 0; // $balanceC = 0; $balanceC = $bakBC = $waste ['total'] + $detail [0] ['accountPrice']; $limitDay = date ( 'd' ); $monthLK = ( int ) date ( 'm' ); if (date ( 'Y' ) > $year) { $limitDay = cal_days_in_month ( CAL_GREGORIAN, date ( 'm' ), date ( 'Y' ) ); } elseif (date ( 'Y' ) <= $year && $monthLK < $moth) { $limitDay = 0; } for($i = 1; $i <= $day; $i ++) { $dayHtml .= '' . $i . '日'; $inComeA = $payB = 0; $falg = true; foreach ( $inComePay as $key => $value ) { if ($value ['day'] == $i) { $falg = false; $inComeHtml .= '' . $value ['accountPriceShow'] . ''; $inSum += $value ['accountPrice']; $showInSum += $value ['accountPriceShow']; $inComeA = $value ['accountPrice']; break; } } if ($falg) $inComeHtml .= '-'; $payFalg = true; foreach ( $pay as $key => $value ) { if ($value ['day'] == $i) { $payFalg = false; $payHtml .= '' . $value ['accountPriceShow'] . ''; $paySum += $value ['accountPrice']; $showPaySum += $value ['accountPriceShow']; $payB = $value ['accountPrice']; break; } } if ($payFalg) $payHtml .= '-'; if (empty ( $balanceC ) || $limitDay < $i) $lastBalanceHtml .= '-'; else $lastBalanceHtml .= '' . $balanceC . ''; $balanceC = $balanceC + $inComeA + $payB; $balanceSum += $balanceC; if (empty ( $balanceC ) || $limitDay < $i) $BalanceHtml .= '-'; else $BalanceHtml .= '' . $balanceC . ''; } $inComeHtml .= '¥' . $showInSum . ''; $data ['inComeHtml'] = $inComeHtml; $payHtml .= '¥' . $showPaySum . ''; $data ['payBalanceHtml'] = $payHtml; $BalanceHtml .= '¥' . $balanceC . ''; $data ['BalanceHtml'] = $BalanceHtml; $dayHtml .= '总计'; $data ['dayHtml'] = $dayHtml; $lastBalanceHtml .= '' . $balanceC . ''; $data ['lastBalanceHtml'] = $lastBalanceHtml; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'paymentsCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/paymentsCollectDay", $data ); } // 公司流水 function wasteBook() { Doo::loadModel ( "execute" ); $execute = new execute (); if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) { die ( 'illegal request' ); } include './protected/config/wasteBook.conf.php'; Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); $inComeStatistics = $wasteBook->getWasteBookStatisticsByIncome (); $waste = $this->getWasteBookStatistics ( $waste, $inComeStatistics ); // $total = $waste ['bank'] ['CGBDeposit'] + $waste ['bank'] ['ICBCDeposit']+ $waste ['bank'] ['HUADeposit'] + $waste ['bank'] ['PersonalDeposit'] + $waste ['financial'] ['current'] ['CGBDeposit'] + $waste ['financial'] ['current'] ['ICBCDeposit'] + $waste ['financial'] ['fixed'] ['CGBDeposit'] + $waste ['financial'] ['fixed'] ['ICBCDeposit']; $CGBDeposit_total =$waste ['bank'] ['CGBDeposit']+$waste ['bank'] ['HUADeposit']; //$waste ['bank'] ['ICBCDeposit']=sprintf("%.2f", round($waste ['bank'] ['ICBCDeposit'], 2)); // print_r($waste); $data ['waste'] = $waste; $data ['total'] = $total; $data ['CGBDeposit_total'] = $CGBDeposit_total; $data['cashBalance']= $CGBDeposit_total+$waste ['bank'] ['ICBCDeposit']+$waste ['bank'] ['PersonalDeposit']+$waste ['financial'] ['current'] ['CGBDeposit']+$waste ['financial'] ['current'] ['ICBCDeposit']; // 月流水数据结构 $monthStatistics = array (); $incomeMothStatistics = array (); $expenditureMothStatistics = array (); for($i = 1; $i <= 12; $i ++) { $month = date ( 'Y' ) . '-' . $i; if ($i < 10) $month = date ( 'Y' ) . '-0' . $i; array_push ( $monthStatistics, $month ); } foreach ( $monthStatistics as $value ) { $falg = true; foreach ( $inComeStatistics ['incomeReport'] as $k => $v ) { if ($value == $v ['inputDate']) { array_push ( $incomeMothStatistics, $v ['accountPrice'] ); $falg = false; } } if ($falg) { array_push ( $incomeMothStatistics, '' ); } $falgEx = true; foreach ( $inComeStatistics ['expenditureReport'] as $k => $v ) { if ($value == $v ['inputDate']) { array_push ( $expenditureMothStatistics, $v ['accountPrice'] ); $falg = false; } } if ($falgEx) { array_push ( $expenditureMothStatistics, '' ); } } $data ['monthStatistics'] = json_encode ( $monthStatistics ); $data ['incomeMothStatistics'] = json_encode ( $incomeMothStatistics ); $data ['expenditureMothStatistics'] = json_encode ( $expenditureMothStatistics ); $expenditureList = $wasteBook->getAccountBookByExpensesType ( 4, 2 ); $incomeList = $wasteBook->getAccountBookByExpensesType ( 4, 1 ); // print_r($incomeList); $data ['expenditureList'] = $expenditureList; $data ['incomeList'] = $incomeList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'wasteBook'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/wasteBook", $data ); } function wasteBookIncome() { $date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : ""; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "ALL"; $accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "ALL"; $dailyIncomeType = $this->get_args ( 'dailyIncomeType' ) ? $this->get_args ( 'dailyIncomeType' ) : "ALL"; $data ['dailyIncomeType'] = $dailyIncomeType; Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); Doo::loadModel ( 'L_category' ); $L_category = new L_category (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $year=date("Y"); $theDay=date("Y-m-d"); $dateArr = explode ( ':', $date ); $D1 = ''; $D2 = ''; $con = ''; if (! empty ( $date )) { $D1 = $dateArr [0]; $D2 = $dateArr [1]; } if (! empty ( $D1 ) && ! empty ( $D2 )) $con = ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" '; elseif (! empty ( $D1 ) && empty ( $D2 )) $con = ' and inputDate = "' . $D1 . '"'; else{ $con = ' and DATE_FORMAT(inputDate,"%Y")= "'.$year.'" '; } if ($cid != 'ALL') { $cid = $XDeode->decode ( $cid ); $con .= ' and cid = "' . $cid . '"'; } if ($accountType != 'ALL') { if ($accountType == 'INVOICE') { $con .= ' and (accountType = 7 or accountType = 8)'; } elseif ($accountType == 'PAYMENTS') { $con .= ' and (accountType = 6 or accountType = 9 or accountType = 10)'; if ($dailyIncomeType != 'ALL') { $dailyIncomeType = $XDeode->decode ( $dailyIncomeType ); $con .= ' and dailyIncomeType = ' . $dailyIncomeType; } } } $incomeList = $wasteBook->getAccountBookByExpensesType ( 0, 1, $con ); foreach ($incomeList as $key=>$value){ if(($value['accountType']==6||$value['accountType']==9||$value['accountType']==10)&&$value['synPaymentDate']==0){ $wasteBook = new wasteBook (); $wasteBook->wid = $value['wid']; $wasteBook->synPaymentDate = 1; $wasteBook->inputDate = $value['data']['receivedDate']; $wasteBook->update(); } } $sum = 0;$thsDaySum=0; foreach ( $incomeList as $key => $value ) { $sum += $value ['accountPrice']; if($theDay==date("Y-m-d",strtotime($value['inputDate']))){ $thsDaySum+=$value ['accountPrice']; } } // print_r($incomeList); // 获得办事和部门 $categoryList = $L_category->getCategory (); $data ['accountType'] = $accountType; $data ['cid'] = $cid; $data ['categoryList'] = $categoryList; $data ['sum'] = $sum; $data ['incomeList'] = $incomeList; $data ['inputDate'] = $date; $data['year']=$year; $data ['thsDay'] =$theDay; $data ['thsDaySum'] =$thsDaySum; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'wasteBook'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/wasteBookIncome", $data ); } /** * 所有支出 */ function wasteBookExpenditure() { $date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : ""; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "ALL"; $accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "ALL"; $dailyExpenditureType = $this->get_args ( 'dailyExpenditureType' ) ? $this->get_args ( 'dailyExpenditureType' ) : "ALL"; $data ['dailyExpenditureType'] = $dailyExpenditureType; $receiptType = $this->get_args ( 'receiptType' ) ? $this->get_args ( 'receiptType' ) : "ALL"; $data ['receiptType'] = $receiptType; Doo::loadModel ( 'wasteBook' ); $wasteBook = new wasteBook (); Doo::loadModel ( 'L_category' ); $L_category = new L_category (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $year=date("Y"); $theDay=date("Y-m-d"); $dateArr = explode ( ':', $date ); $D1 = ''; $D2 = ''; $con = ''; if (! empty ( $date )) { $D1 = $dateArr [0]; $D2 = $dateArr [1]; } if (! empty ( $D1 ) && ! empty ( $D2 )) $con = ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" '; elseif (! empty ( $D1 ) && empty ( $D2 )) $con = ' and inputDate = "' . $D1 . '"'; else{ $con = ' and DATE_FORMAT(inputDate,"%Y")= "'.$year.'" '; } if ($cid != 'ALL') { $cid = $XDeode->decode ( $cid ); $con .= ' and cid = "' . $cid . '"'; } if ($accountType != 'ALL') { if ($accountType == 'INVOICE') { $con .= ' and accountType = 11'; } elseif ($accountType == 'PAYMENTS') { $con .= ' and (accountType = 5 or accountType = 9 or accountType = 10)'; if ($dailyExpenditureType != 'ALL') { $dailyExpenditureType = $XDeode->decode ( $dailyExpenditureType ); $con .= ' and dailyExpenditureType = ' . $dailyExpenditureType; } } elseif ($accountType == 'RECEIPT') { if ($receiptType == 'ALL') { $con .= ' and (accountType = 1 or accountType = 2 or accountType = 3 or accountType = 4)'; } else { $receiptType = $XDeode->decode ( $receiptType ); echo $receiptType; if ($receiptType == 1) { $con .= ' and (accountType = 1 or accountType=2)'; } else { $con .= ' and accountType = ' . $receiptType; } } } } $incomeList = $wasteBook->getAccountBookByExpensesType ( 0, 2, $con ); foreach ($incomeList as $key=>$value){ if(($value['accountType']==5||$value['accountType']==9||$value['accountType']==10)&&$value['synPaymentDate']==0){ $wasteBook = new wasteBook (); $wasteBook->wid = $value['wid']; $wasteBook->synPaymentDate = 1; $wasteBook->inputDate = $value['data']['expenditureDate']; $wasteBook->update(); } } $sum = 0;$thsDaySum=0; foreach ( $incomeList as $key => $value ) { $sum += $value ['accountPriceShow']; if($theDay==date("Y-m-d",strtotime($value['inputDate']))){ $thsDaySum+=$value ['accountPriceShow']; } } // print_r($incomeList); // 获得办事和部门 $categoryList = $L_category->getCategory (); $data ['accountType'] = $accountType; $data ['cid'] = $cid; $data ['categoryList'] = $categoryList; $data ['sum'] = $sum; $data ['incomeList'] = $incomeList; $data ['inputDate'] = $date; $data['year']=$year; $data ['thsDay'] =$theDay; $data ['thsDaySum'] =$thsDaySum; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'wasteBook'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/expenses/wasteBookExpenditure", $data ); } function ajaxGetWasteinvoiceReceivables() { $serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : ""; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $irid = $XDeode->decode ( $serial ); Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); $detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid ); echo json_encode ( array ( 'status' => 1, 'detail' => $detail ) ); } function ajaxGetPaymentsByAid() { $serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : ""; Doo::loadModel ( "accountBook" ); $accountBook = new accountBook (); $detail = $accountBook->getAccountBookByAid ( $serial ); echo json_encode ( array ( 'status' => 1, 'detail' => $detail ) ); } function ajaxGetWasteInvoice() { $serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : ""; Doo::loadModel ( 'invoice' ); $invoice = new invoice (); Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); $detail = $invoice->getInvoiceByIid ( $serial ); $detailReceivables = $invoiceReceivables->getInvoiceReceivablesByIrid ( $detail ['irid'] ); $detail ['receivablesBank'] = $detailReceivables ['receivablesBank']; echo json_encode ( array ( 'status' => 1, 'detail' => $detail ) ); } /** */ function ajaxGetWasteReceipt() { $serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : ""; $accountTypeKey = $this->get_args ( 'accountTypeKey' ) ? $this->get_args ( 'accountTypeKey' ) : ""; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $serial ); $accountType= $XDeode->decode ( $accountTypeKey ); // 获得个数据 $detail = $receipt->getReceiptByRid ( $rid ); // 初始化 $detail ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $detail ['reviseDetail'] = json_decode ( $detail ['reviseDetail'], true ); $detail ['accountItem'] = json_decode ( $detail ['accountItem'], true ); $detail ['loanItem'] = json_decode ( $detail ['loanItem'], true ); $detail ['loanSumCN'] = $this->num_to_rmb ( $detail ['loanSum'] ); $detail ['sumCN'] = $this->num_to_rmb ( $detail ['sum'] ); // 获得费用html $html = $this->getWasteReceiptHtml ( $detail ,$accountType); // 获得费用审批人数据 $detail = $this->getReceiptApproverHtml ( $detail ); // 审批执行 $html .= ''; foreach ( $detail ['verifyList'] as $key => $value ) { $html .= ' '; } $html .= '
    审批人 审批意见
    ' . $value [1] . ' ' . $value ['opinion'] . '
    '; $html .= ''; foreach ( $detail ['executeCopy'] as $key => $value ) { $html .= ' '; } $html .= '
    执行人 执行意见
    ' . $value [1] . ' ' . $value ['opinion'] . '
    '; if($accountType==1){ Doo::loadModel ( 'loanReceipt' ); $loanReceipt = new loanReceipt (); $loanList = $loanReceipt->getOne ( array ( 'where' => 'rid=' . $detail ['loanRid'], 'desc' => 'rid', 'asArray' => true ) ); $html .= '
    汇款金额 ¥'.$loanList['amount'].'
    '; }else{ $html .= '
    汇款金额 ¥' . $detail ['amount'] . '
    '; } // print_r($detail['verifyList']); // header ( 'Content-Type:text/html;charset=utf-8' ); // echo $html; echo json_encode ( array ( 'status' => 1, 'html' => $html, 'detail' => $detail ) ); } function getReceiptApproverHtml($detail = array()) { Doo::loadModel ( 'loanReceipt' ); $loanReceipt = new loanReceipt (); Doo::loadModel ( 'verify' ); $verify = new verify (); Doo::loadModel ( 'staff' ); $staff = new staff (); if (empty ( $detail )) return array (); $loanList = $loanReceipt->getOne ( array ( 'where' => 'rid=' . $detail ['loanRid'], 'desc' => 'rid', 'asArray' => true ) ); if ($detail ['status'] == 3 || $detail ['status'] == 1 || $detail ['status'] == 8 || $detail ['status'] == 9) { if ($detail ['status'] == 8 && $detail ['Rtype'] == 1) $verifyList ['staff'] = $loanList ['verifyBreakup']; else $verifyList ['staff'] = $detail ['verifyBreakup']; } else $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $detail ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); Doo::loadModel ( 'role' ); $role = new role (); $roleId = 0; $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 ); } } $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 ); } } } // 费用执行人相关数据 $executeCopy = json_decode ( $detail ['executeCopy'], true ); $executeStaff = json_decode ( $detail ['executeStaff'], true ); foreach ( $executeCopy as $k => $v ) { $executeCopy [$k] ['date'] = ''; $executeCopy [$k] ['opinion'] = ''; $executeCopy [$k] ['status'] = ''; if (! empty ( $executeStaff )) foreach ( $executeStaff as $m => $u ) { if ($v [0] == $m) { $executeCopy [$k] ['date'] = $u ['date']; $executeCopy [$k] ['opinion'] = $u ['opinion']; $executeCopy [$k] ['status'] = $u ['status']; break; } } } $detail ['executeCopy'] = $executeCopy; $detail ['verifyList'] = $verifyList; return $detail; } function getWasteReceiptHtml($detail = array(),$accountType=1) { if (empty ( $detail )) return ''; $html = ''; if ($detail ['Rtype'] == 0) { // 报销单 $html .= ''; foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= ''; foreach ( $detail ['accountItem'] ['差旅相关费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; if(isset($detail ['accountItem'] ['内部培训费用'])){ $html .= ''; foreach ( $detail ['accountItem'] ['内部培训费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; } $html .= ''; foreach ( $detail ['accountItem'] ['其他'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= ''; foreach ( $detail ['reviseDetail'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= '
    日常相关费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . '
    差旅相关费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['travelSum'] . '
    内部培训费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['inttrainSum'] . '
    其他
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['otherSum'] . '
    报销金额调整
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['revisePrice'] . '
    产生费用所在办事处
    ' . $detail ['category'] [0] ['title'] . '
    报销说明
    ' . $detail ['explanation'] . '
    (' . $detail ['receiptOrder'] . ')本次报销费用合计 ¥' . $detail ['sum'] . '
    ' . $detail ['sumCN'] . '
    '; } elseif ($detail ['Rtype'] == 2) {//对公汇款 $html .= ' '; foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= '
    办事处相关费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . '
    产生费用所在办事处
    ' . $detail ['category'] [0] ['title'] . '
    报销说明
    ' . $detail ['explanation'] . '
    (' . $detail ['receiptOrder'] . ')本次报销费用合计 ¥' . $detail ['sum'] . '
    ' . $detail ['sumCN'] . '
    '; } elseif ($detail ['Rtype'] == 1) {//借款 或者借款报销 Doo::loadModel ( 'loanReceipt' ); $loanReceipt = new loanReceipt (); $loanList = $loanReceipt->getOne ( array ( 'where' => 'rid=' . $detail ['loanRid'], 'desc' => 'rid', 'asArray' => true ) ); // print_r($loanList); $loanList ['sumCN']=$this->num_to_rmb($loanList ['sum']); $html .= ''; foreach ( $detail ['loanItem'] ['借款费用'] as $key => $value ) { $html .= ''; } $html .= '
    借款费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    产生费用所在办事处
    ' . $detail ['category'] [0] ['title'] . '
    费用说明
    ' . $loanList ['explanation'] . '
    (' . $loanList ['receiptOrder'] . ')本次费用合计 ¥' . $loanList ['sum'] . '
    ' . $loanList ['sumCN'] . '
    '; if ( $accountType==2) { $balance=$detail ['sum']-$loanList ['sum']; $balanceCN=$this->num_to_rmb($balance); $html .= ''; foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= ''; foreach ( $detail ['accountItem'] ['差旅相关费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; if(isset($detail ['accountItem'] ['内部培训费用'])){ $html .= ''; foreach ( $detail ['accountItem'] ['内部培训费用'] as $key => $value ) { $html .= ' '; } $html .= ' '; } $html .= ''; foreach ( $detail ['accountItem'] ['其他'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= ''; foreach ( $detail ['reviseDetail'] as $key => $value ) { $html .= ' '; } $html .= ' '; $html .= '
    日常相关费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . '
    差旅相关费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['travelSum'] . '
    内部培训费用
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['inttrainSum'] . '
    其他
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['accountItem'] ['cSum'] ['otherSum'] . '
    报销金额调整
    ' . $value ['name'] . ' ¥' . $value ['price'] . '
    合计 ¥' . $detail ['revisePrice'] . '
    产生费用所在办事处
    ' . $detail ['category'] [0] ['title'] . '
    报销说明
    ' . $detail ['explanation'] . '
    (' . $detail ['receiptOrder'] . ')本次报销费用合计 ¥' . $detail ['sum'] . '
    ' . $detail ['sumCN'] . '
    借款结余 ¥'.$balance.'
    '.$balanceCN.'
    '; } } return $html; } /** * 计算流水 */ function getWasteBookStatistics($waste = array(), $inComeStatistics) { $bakWaste ['bank'] = array ( 'CGBDeposit' => 0, 'ICBCDeposit' => 0, 'HUADeposit' => 0, 'PersonalDeposit' => 0 ); $bakWaste ['financial'] = array ( 'current' => array ( 'CGBDeposit' => 0, 'ICBCDeposit' => 0 ), 'fixed' => array ( 'CGBDeposit' => 0, 'ICBCDeposit' => 0 ) ); // 存款 foreach ( $waste ['bank'] as $key => $value ) { // 收入 foreach ( $inComeStatistics ['incomeStatistics'] as $k => $v ) { // 广发 if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') { $waste ['bank'] ['CGBDeposit'] = $value + $v ['accountPrice']; } // 工商 if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') { $waste ['bank'] ['ICBCDeposit'] = $value + $v ['accountPrice']; } // 华润 if ($v ['accountBank'] == 'HUADeposit' && $key == 'HUADeposit') { $waste ['bank'] ['HUADeposit'] = $value + $v ['accountPrice']; } // 个人 if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') { $waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice']; } } } foreach ( $waste ['bank'] as $key => $value ) { // 支出 foreach ( $inComeStatistics ['expenditureStatistics'] as $k => $v ) { // 广发 if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') { $waste ['bank'] ['CGBDeposit'] = $value + $v ['accountPrice']; } // 工商 if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') { $waste ['bank'] ['ICBCDeposit'] = $value + $v ['accountPrice']; } // 华润 if ($v ['accountBank'] == 'HUADeposit' && $key == 'HUADeposit') { $waste ['bank'] ['HUADeposit'] = $value + $v ['accountPrice']; } // 个人 if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') { $waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice']; } } } // 活期 foreach ( $waste ['financial'] ['current'] as $key => $value ) { foreach ( $inComeStatistics ['currentStatistics'] as $k => $v ) { // 广发 if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') { $waste ['financial'] ['current'] ['CGBDeposit'] = $value + $v ['accountPrice']; } // 工商 if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') { $waste ['financial'] ['current'] ['ICBCDeposit'] = $value + $v ['accountPrice']; } // 个人 if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') { $waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice']; } } } // print_r($inComeStatistics ['fixedStatistics']); // 固期 foreach ( $waste ['financial'] ['fixed'] as $key => $value ) { foreach ( $inComeStatistics ['fixedStatistics'] as $k => $v ) { // 广发 if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') { $waste ['financial'] ['fixed'] ['CGBDeposit'] = $value + $v ['accountPrice']; } // 工商 if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') { $waste ['financial'] ['fixed'] ['ICBCDeposit'] = $value + $v ['accountPrice']; } // 个人 if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') { $waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice']; } } } return $waste; } 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() { //include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php'; $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; $nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : ""; if (! $nature){ $nature = isset ( $this->params ['nature'] ) ? $this->params ['nature'] : 'ONJOB'; } 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 ( "receiptAuthorityManage" ); $receiptAuthorityManage = new receiptAuthorityManage (); $aiList=$accountItem->getAccountItem(); $imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] ); $cidList = array (); foreach ( $imcStaff as $key => $value ) { array_push ( $cidList, $value ['cid'] ); } $cidString = implode ( ',', $cidList ); $naturecon=''; if ($nature=='ONJOB'){ $naturecon=' and (nature!=4 )'; }elseif($nature=='LEAVEJOB'){ $naturecon=' and (nature=4 )'; }else{ die ( 'illegal request--nature' ); } $staffList = $staff->find ( array ( 'where' => 'username!="admin" and cid in (' . $cidString . ')'.$naturecon, 'asArray' => true ) ); $categoryList = $staff->find ( array ( 'select' => 'COUNT(*) as count,cid,category', 'where' => 'username !="admin" and cid in (' . $cidString . ')'.$naturecon, 'groupby' => 'cid', 'asArray' => true ) ); $list = array (); foreach($aiList as $key=>$value){ foreach ($value as $v){ $subtotal[$key][$v['name']]=0; } } foreach ( $categoryList as $vlu ) { $s1 = 0; $m1 = 0; $subtotal[$this->AGENCY]['AGENCY']=$subtotal[$this->TRAVEL]['TRAVEL']=$subtotal[$this->INTTRAIN]['INTTRAIN']=$subtotal[$this->TRAIN]['TRAIN']=$subtotal[$this->OTHER]['OTHER']=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 (! empty ( $receiptCollectList )) { $receiptL = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '内部培训费用' => array (), '培训班费用' => array (), '其他' => array () ); $html = ""; $psum = 0; foreach ( $aiList[$this->AGENCY] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '日常相关费用') { if ($v ['item'] == $va['name']) { $subtotal[$this->AGENCY][$va['name']]+=$v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $subtotal[$this->AGENCY]['AGENCY'] += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['日常相关费用'] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->TRAVEL] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '差旅相关费用') { if ($v ['item'] == $va['name']) { $subtotal[$this->TRAVEL][$va['name']]+=$v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $subtotal[$this->TRAVEL]['TRAVEL'] += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['差旅相关费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->INTTRAIN] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '内部培训费用') { if ($v ['item'] == $va['name']) { $subtotal[$this->INTTRAIN][$va['name']]+=$v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $subtotal[$this->INTTRAIN]['INTTRAIN'] += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['内部培训费用'] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->TRAIN] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '培训班费用') { if ($v ['item'] == $va['name']) { $subtotal[$this->TRAIN][$va['name']]+=$v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $subtotal[$this->TRAIN]['TRAIN'] += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['培训班费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->OTHER] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '其他') { if (trim ( $v ['item'] ) == $va['name']) { $subtotal[$this->OTHER][$va['name']]+=$v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $subtotal[$this->OTHER]['OTHER'] += $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 [$this->AGENCY] ='-'; foreach ( $aiList[$this->AGENCY] as $va ) { $receiptL [$this->AGENCY] .='-'; } $receiptL [$this->TRAVEL] ='-'; foreach ( $aiList[$this->TRAVEL] as $va ) { $receiptL [$this->TRAVEL] .='-'; } $receiptL [$this->INTTRAIN] ='-'; foreach ( $aiList[$this->INTTRAIN] as $va ) { $receiptL [$this->INTTRAIN] .='-'; } $receiptL [$this->TRAIN] ='-'; foreach ( $aiList[$this->TRAIN] as $va ) { $receiptL [$this->TRAIN] .='-'; } $receiptL [$this->OTHER] ='-'; foreach ( $aiList[$this->OTHER] as $va ) { $receiptL [$this->OTHER] .='-'; } $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'] = '-'; $receiptL ['usernameEn'] = urlencode ( $value ['username'] ); $list [$value ['username']] = $receiptL; } } $receiptL [$this->AGENCY] =''.$subtotal[$this->AGENCY]['AGENCY'].''; foreach ( $aiList[$this->AGENCY] as $va ) { $receiptL [$this->AGENCY] .='' . $subtotal[$this->AGENCY][$va['name']] . ''; $subtotal[$this->AGENCY][$va['name']]=0; } $receiptL [$this->TRAVEL] =''.$subtotal[$this->TRAVEL]['TRAVEL'].''; foreach ( $aiList[$this->TRAVEL] as $va ) { $receiptL [$this->TRAVEL] .='' . $subtotal[$this->TRAVEL][$va['name']] . ''; $subtotal[$this->TRAVEL][$va['name']]=0; } $receiptL [$this->INTTRAIN] =''.$subtotal[$this->INTTRAIN]['INTTRAIN'].''; foreach ( $aiList[$this->INTTRAIN] as $va ) { $receiptL [$this->INTTRAIN] .='' . $subtotal[$this->INTTRAIN][$va['name']] . ''; $subtotal[$this->INTTRAIN][$va['name']]=0; } $receiptL [$this->TRAIN] =''.$subtotal[$this->TRAIN]['TRAIN'].''; foreach ( $aiList[$this->TRAIN] as $va ) { $receiptL [$this->TRAIN] .='' . $subtotal[$this->TRAIN][$va['name']] . ''; $subtotal[$this->TRAIN][$va['name']]=0; } $receiptL [$this->OTHER] =''.$subtotal[$this->OTHER]['OTHER'].''; foreach ( $aiList[$this->OTHER] as $va ) { $receiptL [$this->OTHER] .='' . $subtotal[$this->OTHER][$va['name']] . ''; $subtotal[$this->OTHER][$va['name']]=0; } $receiptL ['报销金额调整'] = '' . $s1 . ''; $receiptL ['monthStaffPrice'] = '¥' . $m1 . ''; $receiptL ['usernameEn'] =false; $list ['' . $vlu ['category'] . '小计'] = $receiptL; } $data ['list'] = $list; // print_r($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,$aiList ); // 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 ['nature'] = $nature; $data ['aiList'] = $aiList; $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 receiptStatisticsStaffDetail() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : ""; $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; $username = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : ""; Doo::loadModel ( "receipt" ); $receipt = new receipt (); Doo::loadModel ( "receiptDetail" ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); if (! empty ( $username )) { $username = addslashes ( urldecode ( $username ) ); $staffDetail = $staff->getStaffByName ( $username ); if (empty ( $staffDetail )) die ( 'illegal request' ); $list = $receipt->getReceiptBySid ( $staffDetail ['sid'], $year, $month ); $itemList = $accountItem->getAccountItem (); $itemHtml = ''; $categoryHtml = ''; $itemKeyList = array_keys ( $itemList ); $revisePrice = 0; // 报销单内容详情 foreach ( $list as $key => $value ) { $accountItemList = json_decode ( $value ['accountItem'], true ); $list [$key] ['accountItemList'] = $accountItemList; $receiptItemHtml = ''; foreach ( $itemKeyList as $v ) { if ($v == '日常相关费用') $receiptItemHtml .= '' . $accountItemList ['cSum'] ['agencySum'] . ''; elseif ($v == '差旅相关费用') $receiptItemHtml .= '' . $accountItemList ['cSum'] ['travelSum'] . ''; elseif ($v == '培训班费用') $receiptItemHtml .= '' . $accountItemList ['cSum'] ['trainSum'] . ''; elseif ($v == '内部培训费用'){ if (isset($accountItemList ['cSum'] ['inttrainSum'])){ $receiptItemHtml .= '' . $accountItemList ['cSum'] ['inttrainSum'] . ''; }else{ $receiptItemHtml .= '0'; } }elseif ($v == '其他') $receiptItemHtml .= '' . $accountItemList ['cSum'] ['otherSum'] . ''; foreach ( $itemList [$v] as $ke => $va ) { $falg = true; if (! empty ( $accountItemList [$v] )) { foreach ( $accountItemList [$v] as $ve ) { if ($va ['name'] == $ve ['name']) { $receiptItemHtml .= '' . $ve ['price'] . ''; $falg = false; break; } } } if ($falg) $receiptItemHtml .= ''; } } // 金额调整和费用查看 $revisePrice += $value ['revisePrice']; $receiptItemHtml .= '' . $value ['revisePrice'] . ''; $receiptItemHtml .= '查看'; $list [$key] ['receiptItemHtml'] = $receiptItemHtml; } // 报销单合计 $receiptTotalList = $receiptDetail->getReceiptTotalItem ( $staffDetail ['sid'], $year, $month ); $rtl = $receiptDetail->getReceiptTotalItemCategory ( $staffDetail ['sid'], $year, $month ); $receiptTotalHtml = ''; // 报销单项目抬头 foreach ( $itemKeyList as $value ) { $count = count ( $itemList [$value] ) + 1; $itemHtml .= '' . $value . ''; $categoryHtml .= '合计'; $sumfalg=true; foreach ( $rtl as $rtlValue ) { if ($rtlValue ['itemCategory'] == $value) { $receiptTotalHtml .= '' . $rtlValue ['price'] . ''; $sumfalg=false; break; } } if ($sumfalg) $receiptTotalHtml .= ''; foreach ( $itemList [$value] as $k => $v ) { $categoryHtml .= '' . $v ['name'] . ''; // 合计 $falg = true; foreach ( $receiptTotalList as $ve ) { if ($ve ['itemCategory'] == $value && $ve ['item'] == $v ['name']) { $receiptTotalHtml .= '' . $ve ['price'] . ''; $falg = false; break; } } if ($falg) $receiptTotalHtml .= ''; } } $receiptTotalHtml .= '' . $revisePrice . ''; $stList = $statistics->getStatisticsBySid ( $staffDetail ['sid'], $year, $month ); 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 ['username'] = urlencode ( $username ); $data ['usernameEN'] = $username; $data ['monthHtml'] = $monthHtml; $data ['receiptTotalHtml'] = $receiptTotalHtml; $data ['list'] = $list; $data ['categoryHtml'] = $categoryHtml; $data ['itemHtml'] = $itemHtml; $data ['itemList'] = $itemList; $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/receiptStatisticsStaffDetail", $data ); } die ( 'illegal request' ); } 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 ) ); $aiList=$accountItem->getAccountItem(); $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 (), '其他' => array () ); $html = ""; $psum = 0; foreach ( $aiList[$this->AGENCY] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == $this->AGENCY) { if ($v ['item'] == $va['name']) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '' . $psum . ''; else $psum = '-'; $receiptL [$this->AGENCY] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->TRAVEL] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == $this->TRAVEL) { if ($v ['item'] == $va['name']) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '' . $psum . ''; else $psum = '-'; $receiptL [$this->TRAVEL] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->INTTRAIN] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == $this->INTTRAIN) { if ($v ['item'] == $va['name']) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '' . $psum . ''; else $psum = '-'; $receiptL [$this->INTTRAIN] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->TRAIN] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == $this->TRAIN) { if ($v ['item'] == $va['name']) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '' . $psum . ''; else $psum = '-'; $receiptL [$this->TRAIN] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $aiList[$this->OTHER] as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == $this->OTHER) { if ($v ['item'] == $va['name']) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '' . $psum . ''; else $psum = '-'; $receiptL [$this->OTHER] = $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 [$this->AGENCY] ='-'; foreach ( $aiList[$this->AGENCY] as $va ) { $receiptL [$this->AGENCY] .='-'; } $receiptL [$this->TRAVEL] ='-'; foreach ( $aiList[$this->TRAVEL] as $va ) { $receiptL [$this->TRAVEL] .='-'; } $receiptL [$this->INTTRAIN] ='-'; foreach ( $aiList[$this->INTTRAIN] as $va ) { $receiptL [$this->INTTRAIN] .='-'; } $receiptL [$this->TRAIN] ='-'; foreach ( $aiList[$this->TRAIN] as $va ) { $receiptL [$this->TRAIN] .='-'; } $receiptL [$this->OTHER] ='-'; foreach ( $aiList[$this->OTHER] as $va ) { $receiptL [$this->OTHER] .='-'; } $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,$aiList ); //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 ['aiList'] = $aiList; $dateHtml = ""; $now = date ( "Y" ); for($YEARD = 2050; $YEARD >= 2004; $YEARD --) { if ($YEARD <= $now) { $dateHtml .= ''; } } $data ['dateHtml'] = $dateHtml; $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 (); Doo::loadModel ( "receiptAuthorityManage" ); $receiptAuthorityManage = new receiptAuthorityManage (); $imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] ); $cidList = array (); foreach ( $imcStaff as $key => $value ) { array_push ( $cidList, $value ['cid'] ); } $cidString = implode ( ',', $cidList ); $staffList = $staff->find ( array ( 'where' => ' cid in (' . $cidString . ')', '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 ) ); // echo 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year; // print_r($receiptCollectList); $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']) { if ($v ['item'] == '可自加费用') { // echo $v ['item'].'/'.$v ['price'].'/'.$v ['month'].$v ['itemCategory'].'
    '; } $asum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } if ($falg) $html .= '-'; } $html .= '' . $asum . ''; $collectHtml [$value ['category']] [$value ['name']] = $html; } $data ['collectHtml'] = $collectHtml; // print_r($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(), '其他' => 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, '其他', '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 ['staffname'] = urlencode ( $staffname ); $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' => '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,$aiList) { if (! empty ( $receiptCollectList )) { $receiptL = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '内部培训费用'=>array(), '培训班费用' => array (), '其他' => array () ); $html = ""; $psum = 0; foreach ( $aiList[$this->AGENCY] as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '日常相关费用') { if ($v ['item'] == $value['name']) { $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 ( $aiList[$this->TRAVEL] as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '差旅相关费用') { if ($v ['item'] == $value['name']) { $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 ( $aiList[$this->INTTRAIN] as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '内部培训费用') { if ($v ['item'] == $value['name']) { $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 ( $aiList[$this->TRAIN] as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '培训班费用') { if ($v ['item'] == $value['name']) { $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 ( $aiList[$this->OTHER] as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '其他') { if ($v ['item'] == $value['name']) { $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 [$this->AGENCY] ='-'; foreach ( $aiList[$this->AGENCY] as $va ) { $receiptL [$this->AGENCY] .='-'; } $receiptL [$this->TRAVEL] ='-'; foreach ( $aiList[$this->TRAVEL] as $va ) { $receiptL [$this->TRAVEL] .='-'; } $receiptL [$this->INTTRAIN] ='-'; foreach ( $aiList[$this->INTTRAIN] as $va ) { $receiptL [$this->INTTRAIN] .='-'; } $receiptL [$this->TRAIN] ='-'; foreach ( $aiList[$this->TRAIN] as $va ) { $receiptL [$this->TRAIN] .='-'; } $receiptL [$this->OTHER] ='-'; foreach ( $aiList[$this->OTHER] as $va ) { $receiptL [$this->OTHER] .='-'; } $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')); } } } } function setWXMsg($rid, $type) { Doo::loadModel ( "receipt" ); $receipt = new receipt (); $receiptDetail = $receipt->getOne ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); if (! empty ( $receiptDetail )) { Doo::loadModel ( 'staff' ); $staff = new staff (); $staffmsg = $staff->getOne ( array ( 'where' => "sid='" . $receiptDetail ['staff'] . "'", 'asArray' => TRUE ) ); if (! empty ( $staffmsg ['wxid'] )) { require_once (SITE_PATH . '/protected/class/client.php'); $client = new client ( 'http://m.cld.smartcost.com.cn/' ); $user = $staffmsg ['wxid']; $receiptName = ''; $msg = ''; switch ($receiptDetail ['Rtype']) { case 0 : $receiptName = '报销'; break; case 1 : $receiptName = '借款'; break; case 2 : $receiptName = '对公汇款'; break; } switch ($type) { case 1 : $msg = '太好了,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已同意支付。'; break; case 2 : $msg = '注意,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被撤回,请及时处理。'; break; case 3 : $msg = '很遗憾,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被终止。'; break; } // $result = $client->SendMsg ( $user, $msg, 'text' ); } } } // 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 h5Upload() { $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 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; // echo $num.'
    '; $num = ( int ) $num; // $num =floor($num); // $num = round ( $num, 0, PHP_ROUND_HALF_DOWN ); // echo $num.'
    '; // 结束循环 if ($num == 0) { break; } } // echo $c.'
    '; $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; } function _getReceiptTrainPayment($invoiceTrainId,$trainLoanRid,$rid){ // 收入合计 Doo::loadModel ( 'invoiceTraining' ); $invoiceTraining = new invoiceTraining (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $invoiceTrainingDetail = array ( 'invoiceArriveAmount' => '0.00', 'RIAmount' => '0.00', 'invoiceTotalAmount' => '0.00', 'invoiceCompanyAmount' => '0.00', 'invoiceArriveAmountM'=>'0.00', 'invoiceCompanyAmountM'=>'0.00' ); if ($invoiceTrainId != 0) { $invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $invoiceTrainId ); } $invoiceArriveAmount = $RIAmount = 0; if (! empty ( $invoiceTrainingDetail )) { $invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount']; $RIAmount = $invoiceTrainingDetail ['RIAmount']; } // 备用金 $sum = 0; if (! empty ( $trainLoanRid )) { $receiptLoanList = $receipt->getReceiptInRid ( $trainLoanRid ); foreach ($receiptLoanList as $key=>$value){ $sum+=$value['sum']; } // $receiptLoanDetailBak = $receipt->getReceiptByRid ( $trainLoanRid ); // $sum = $receiptLoanDetailBak ['sum']; } // 支出项金额详情 // 项目金额合计 Doo::loadModel ( 'RItem' ); $RItem = new RItem (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); // 讲师获得 Doo::loadModel ( 'RILecturer' ); $RILecturer = new RILecturer (); $RItemList = $RItem->getRItemByRid ($rid ); $RILecturerList = $RILecturer->getRILecturerByRid ( $rid ); // 支出项金额详情 $aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount ); $categoryActualExpenditure = $aiData ['total'] - $aiData ['categoryActualExpenditure']; $payment = $sum + $RIAmount - $categoryActualExpenditure; return $payment; } } ?>