<?php

/**
 * @author darkredz
 */
class ReceiptController extends DooController {
	public $staff;
	public $verifyId;
	public $executeId;
	
	// public static $NEW2 = 0;
	public $AGENCY = "日常相关费用";
	public $TRAVEL = "差旅相关费用";
	public $TRAIN = "培训班费用";
	public $OTHER = "其他";
	private $MYREVEIPTCACHEPATH = "protected/cache/myReceipt/";
	private $PERSONALCOLLECTCACHEPATH = "protected/cache/personalCollect/";
	private $CATEGORYCOLLECTPATH = "protected/cache/categoryCollect/";
	private $STAFFCOLLECTPATH = "protected/cache/staffCollect/";
	private function showCache($path) {
		if (file_exists ( $path )) {
			echo "<!DOCTYPE html>";
			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 .= '<td class="colGreen taR">￥' . $value ['price'] . '</td>';
						$falg = false;
						break;
					} else {
						$collectHtml .= '<td class="taR">￥' . $value ['price'] . '</td>';
						$falg = false;
						break;
					}
				}
			}
			if ($falg)
				$collectHtml .= '<td class="taR">-</td>';
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $sumPrice . '</td>';
		return $collectHtml;
	}
	function __construct() {
		if (isset ( $_COOKIE ["staff"] )) {
			
			if (! empty ( $_COOKIE ["staff"] )) {
				
				Doo::loadModel ( 'staff' );
				Doo::loadModel ( 'verify' );
				$verify = new verify ();
				$staff = new staff ();
				Doo::loadModel ( "execute" );
				$execute = new execute ();
				
				$verifyList = $verify->find ( array (
						'select' => 'staff',
						'asArray' => true 
				) );
				$list = array ();
				
				// 判断角色的审批权限
				foreach ( $verifyList as $key => $value ) {
					$ver = json_decode ( $value ['staff'] );
					
					foreach ( $ver as $k => $v ) {
						if ($v [1] == 'ROLE') {
							$roleList = json_decode ( $v [3] );
							foreach ( $roleList as $t => $g ) {
								$gList = explode ( "_", $g );
								array_push ( $list, $gList [0] );
								// print_r($list);
							}
						} else
							array_push ( $list, $v [0] );
					}
				}
				
				// 判断执行人的审批权限
				$executeList = $execute->find ( array (
						'select' => 'staff',
						'asArray' => true 
				) );
				$list2 = array ();
				foreach ( $executeList as $key => $value ) {
					$ver = json_decode ( $value ['staff'] );
					
					foreach ( $ver as $k => $v ) {
						array_push ( $list2, $v [0] );
					}
				}
				
				$eidList = file_get_contents ( "protected/config/execute/execute.ini" );
				$eidList = array_filter ( explode ( ",", $eidList ) );
				
				$this->executeId = array_merge ( $list2, $eidList );
				
				$this->verifyId = $list;
				$this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] );
				
				return "/";
			}
		}
		
		Doo::loadCore ( 'uri/DooUriRouter' );
		$router = new DooUriRouter ();
		$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
		
		if ($routeRs ['1'] != "login") {
			header ( 'Content-Type:text/html;charset=utf-8' );
			@header ( "Location: /login" );
		}
	}
	function saeaBorad() {
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'verify' );
		$verify = new verify ();
		$receipt = new receipt ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		Doo::loadModel ( "receiptLog" );
		$receiptLog = new receiptLog ();
		
		$receiptLogList = $receiptLog->getReceiptLogByUid ( $this->staff [0] ['sid'] );
		
		$receiptDetail = $receipt->find ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=7 or status=5 or status=4 or status=8 and Rtype=1)',
				'desc' => 'rid',
				'asArray' => true 
		) );
		
		foreach ( $receiptDetail as $key => $value ) {
			$receiptDetail [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			
			$veList = $verify->getOne ( array (
					'where' => 'vid=' . $value ['verify'],
					'asArray' => true 
			) );
			$v = json_decode ( $veList ['staff'] );
			array_push ( $v [0], $veList ['description'] );
			
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
				}
			}
			
			$receiptDetail [$key] ['staff'] = $v;
			$category = $lCategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptDetail [$key] ['category'] = $category ['title'];
		}
		// print_r($receiptLogList);
		
		$data ['receiptLogList'] = $receiptLogList;
		$data ['receiptDetail'] = $receiptDetail;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verifyId'] = $this->verifyId;
		
		$data ['executeId'] = $this->executeId;
		
		$this->render ( "/admin/saeaBorad", $data );
	}
	function remitAdd() {
		Doo::loadModel ( 'accountItem' );
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		$receipt = new receipt ();
		$verify = new verify ();
		$accountItem = new accountItem ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		$acItem = $accountItem->find ( array (
				'asArray' => true 
		) );
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['veList'] = $veList;
		$data ['acItem'] = $acItem;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		
		$this->render ( "/admin/remitAdd", $data );
	}
	function remitAddDo() {
		$agency = $this->get_args ( 'agency' );
		$travel = $this->get_args ( 'travel' );
		$train = $this->get_args ( 'train' );
		$other = $this->get_args ( 'other' );
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		
		$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
		
		// print_r($agency);die;
		
		if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'enclosur' );
			
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			$executeDetail = $execute->getOne ( array (
					'where' => 'mold="对公汇款执行人"',
					'asArray' => true 
			) );
			
			// $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true));
			
			$aItem = $accountItem->find ( array (
					'where' => 'name like "办公费用" or name like "其他费用" or name like "公积金" or name like "社保"',
					'asArray' => true 
			) );
			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
			$ag = $tr = $ta = $ot = 0;
			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
			
			foreach ( $aItem as $key => $value ) {
				if ($value ['category'] == $this->AGENCY) {
					if (isset ( $agency [$ag] )) {
						if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
							array_push ( $accountJson [$this->AGENCY], array (
									'aid' => $value ['aid'],
									'name' => $value ['name'],
									'price' => number_format ( $agency [$ag], 2, '.', '' ) 
							) );
							$sum += $agency [$ag];
							$agencySum += $agency [$ag];
						}
					}
					$ag ++;
				}
			}
			$accountJson ['cSum'] = array (
					'agencySum' => number_format ( $agencySum, 2, '.', '' ),
					'travelSum' => number_format ( $travelSum, 2, '.', '' ),
					'trainSum' => number_format ( $trainSum, 2, '.', '' ),
					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 
			);
			
			// 报销单
			$receipt->accountItem = json_encode ( $accountJson );
			$receipt->staff = $this->staff [0] ['sid'];
			$receipt->sum = number_format ( $sum, 2, '.', '' );
			$receipt->date = date ( "Y-m-d" );
			$receipt->cid = $cid;
			$receipt->status = 5;
			
			$receipt->Rtype = 2;
			
			// 修改审批流程加入角色
			$receipt->verify = $verify;
			$receipt->executeCopy = $executeDetail ['staff'];
			$receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
			$receipt->explanation = $explanation;
			$rid = $receipt->insert ();
			
			// 附件
			if (! empty ( $enclosurName )) {
				$enclosurArray = explode ( '-', $enclosurName );
				foreach ( $enclosurArray as $value ) {
					$enclosur = new enclosur ();
					
					$enclosur->name = $value;
					$enclosur->rid = $rid;
					$enclosur->insert ();
				}
				// print_r($enclosurArray);die;
			}
			
			// 报销详情
			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->AGENCY;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
		}
		return "/saeaBorad";
	}
	function remitEdit() {
		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		// echo $rid;
		Doo::loadModel ( 'accountItem' );
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		$verify = new verify ();
		$accountItem = new accountItem ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		$receiptDetail = $receipt->getOne ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)',
				'asArray' => true 
		) );
		if (empty ( $receiptDetail ))
			return "/saeaCreate";
		
		$acItem = $accountItem->find ( array (
				'asArray' => true 
		) );
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		// 配置编辑信息
		$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );
		foreach ( $acItem as $key => $value ) {
			foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->OTHER] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
		}
		
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['cSum'] = $accountItemList ['cSum'];
		$data ['sum'] = $receiptDetail ['sum'];
		$data ['receiptDetail'] = $receiptDetail;
		$data ['veList'] = $veList;
		$data ['acItem'] = $acItem;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verify'] = $receiptDetail ['verify'];
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$data ['rid'] = $rid;
		
		$this->render ( "/admin/remitEdit", $data );
	}
	function remitEdiDo() {
		$agency = $this->get_args ( 'agency' );
		$travel = $this->get_args ( 'travel' );
		$train = $this->get_args ( 'train' );
		$other = $this->get_args ( 'other' );
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		
		if (! empty ( $explanation )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			$executeDetail = $execute->getOne ( array (
					'where' => 'mold="对公汇款执行人"',
					'asArray' => true 
			) );
			
			$receiptDetail = $receipt->getOne ( array (
					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=7 or status=4)',
					'asArray' => true 
			) );
			if (empty ( $receiptDetail ))
				return "/saeaBorad";
			
			$aItem = $accountItem->find ( array (
					'where' => 'name like "办公费用" or name like "其他费用" or name like "公积金" or name like "社保"',
					'asArray' => true 
			) );
			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
			$ag = $tr = $ta = $ot = 0;
			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
			
			foreach ( $aItem as $key => $value ) {
				if ($value ['category'] == $this->AGENCY) {
					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
						array_push ( $accountJson [$this->AGENCY], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $agency [$ag], 2, '.', '' ) 
						) );
						$sum += $agency [$ag];
						$agencySum += $agency [$ag];
					}
					$ag ++;
				}
			}
			$accountJson ['cSum'] = array (
					'agencySum' => number_format ( $agencySum, 2, '.', '' ),
					'travelSum' => number_format ( $travelSum, 2, '.', '' ),
					'trainSum' => number_format ( $trainSum, 2, '.', '' ),
					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 
			);
			
			// 报销单
			$rid = $receipt->rid = $receiptDetail ['rid'];
			$receipt->accountItem = json_encode ( $accountJson );
			$receipt->staff = $this->staff [0] ['sid'];
			$receipt->sum = number_format ( $sum, 2, '.', '' );
			$receipt->date = date ( "Y-m-d" );
			$receipt->cid = $cid;
			if ($receiptDetail ['Rtype'] == 1)
				$receipt->status = 7;
			else
				$receipt->status = 5;
			
			if ($receiptDetail ['status'] != 4 && ! empty ( $verify ))
				$receipt->verify = $verify;
			$receipt->executeCopy = $executeDetail ['staff'];
			$receipt->explanation = $explanation;
			$receipt->update ();
			
			$receiptDetail = new receiptDetail ();
			$receiptDetail->delete ( array (
					'where' => 'rid=' . $rid 
			) );
			
			// 报销详情
			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->AGENCY;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			// return "/referReceipt/".$rid;
		}
		return "/saeaBorad";
	}
	function remitApproval() {
		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
		
		if (empty ( $status ))
			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
		
		$vidList = array ();
		$button = 0;
		
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		$receipt = new receipt ();
		$verify = new verify ();
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'enclosur' );
		$enclosur = new enclosur ();
		
		// user verify ID
		$verifyDetail = $verify->find ( array (
				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
				'asArray' => true 
		) );
		foreach ( $verifyDetail as $key => $value ) {
			array_push ( $vidList, $value ['vid'] );
		}
		$vid = implode ( ",", $vidList );
		if (empty ( $verifyDetail ))
			$vid = 0;
		
		$categoryList = $Lcategory->find ( array (
				'asArray' => true 
		) );
		$staffList = $staff->find ( array (
				'where' => 'cid=' . $cid,
				'asArray' => true 
		) );
		
		$ap = "";
		if ($status == 4) {
			$ap = 4;
			$status = 2;
		}
		
		// get Receipt By verifyID status 2
		$receiptList = $receipt->find ( array (
				'where' => 'rid =' . $rid.' 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 '<br/>';
							
							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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		// 获取审批日志
		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 .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		// print_r($receiptList);
		$data ['enclosurHtml'] = $enclosurHtml;
		$data ['rolename'] = $rolename ['name'];
		$data ['datetij'] = $tijdate ['date'];
		$data ['mothHtml'] = $mothHtml;
		$data ['rid'] = $rid;
		$data ['receiptList'] = $receiptList;
		$data ['receiptApprovalCount'] = count ( $receiptList );
		$data ['status'] = $status;
		$data ['year'] = $year;
		$data ['categoryList'] = $categoryList;
		$data ['staffList'] = $staffList;
		$data ['cid'] = $cid;
		$data ['sid'] = $sid;
		$data ['ap'] = $ap;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'approvalExpenses';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/remitApproval", $data );
	}
	function saeaLoanAdd() {
		Doo::loadModel ( 'verify' );
		$verify = new verify ();
		Doo::loadModel ( "role" );
		$role = new role ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['veList'] = $veList;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/saeaLoanAdd", $data );
	}
	function saeaLoanAddDo() {
		$agency = $this->get_args ( 'agency' );
		
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		
		// die;
		
		if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'loanReceipt' );
			$loanReceipt = new loanReceipt ();
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			
			Doo::loadModel ( 'enclosur' );
			
			$executeDetail = $execute->getOne ( array (
					'where' => 'mold="借款执行人"',
					'asArray' => true 
			) );
			
			// $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true));
			// if(!empty($receiptDetail))
			// return "/referReceipt/".$receiptDetail['rid'];
			
			$aItem = $accountItem->find ( array (
					'asArray' => true 
			) );
			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = $accountJson ['借款费用'] = array ();
			$ag = $tr = $ta = $ot = 0;
			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
			
			array_push ( $accountJson ['借款费用'], array (
					'aid' => 0,
					'name' => '申请金额',
					'price' => number_format ( $agency, 2, '.', '' ) 
			) );
			$sum += $agency;
			$agencySum += $agency;
			
			$accountJson ['cSum'] = array (
					'loanSum' => number_format ( $agencySum, 2, '.', '' ),
					'agencySum' => number_format ( 0, 2, '.', '' ),
					'travelSum' => number_format ( $travelSum, 2, '.', '' ),
					'trainSum' => number_format ( $trainSum, 2, '.', '' ),
					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 
			);
			
			// 借款数据备份
			$loanReceipt->loanItem = json_encode ( $accountJson );
			$loanReceipt->staff = $this->staff [0] ['sid'];
			$loanReceipt->sum = number_format ( $sum, 2, '.', '' );
			$loanReceipt->date = date ( "Y-m-d" );
			$loanReceipt->cid = $cid;
			$loanReceipt->receiptOrder = "#J" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
			$loanReceipt->status = 5;
			$loanReceipt->Rtype = 1;
			
			$loanReceipt->verify = $verify;
			
			$receipt->receiptOrder = $receipt->receiptOrder;
			$loanReceipt->explanation = $explanation;
			$loanRid = $loanReceipt->insert ();
			
			// 报销单
			$receipt->loanItem = json_encode ( $accountJson );
			$receipt->staff = $this->staff [0] ['sid'];
			$receipt->sum = number_format ( $sum, 2, '.', '' );
			$receipt->date = date ( "Y-m-d" );
			$receipt->cid = $cid;
			// 特殊状态
			$receipt->status = 5;
			$receipt->Rtype = 1;
			$receipt->loanRid = $loanRid;
			// 修改审批流程加入角色
			$receipt->verify = $verify;
			
			$receipt->executeCopy = $executeDetail ['staff'];
			
			$receipt->receiptOrder = $loanReceipt->receiptOrder;
			$receipt->explanation = $explanation;
			$rid = $receipt->insert ();
			
			// 执行数据备份
			// $executeCopy->rid=$rid;
			// $executeCopy->staff=$executeDetail['staff'];
			// $executeCopy->eid=$executeDetail['eid'];
			// $ecid=$executeCopy->insert();
		}
		return "/saeaBorad";
	}
	function saeaLoanEdi() {
		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		Doo::loadModel ( 'verify' );
		$verify = new verify ();
		Doo::loadModel ( "role" );
		$role = new role ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		
		$receiptInfo = $receipt->getOne ( array (
				'where' => 'rid=' . $rid,
				'asArray' => true 
		) );
		
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		$receiptInfo ['loanItem'] = json_decode ( $receiptInfo ['loanItem'], true );
		
		$data ['receiptInfo'] = $receiptInfo;
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['veList'] = $veList;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/saeaLoanEdi", $data );
	}
	function saeaLoanEdiDo() {
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		$agency = $this->get_args ( 'agency' );
		
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		
		// die;
		
		if (! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'loanReceipt' );
			$loanReceipt = new loanReceipt ();
			
			Doo::loadModel ( 'enclosur' );
			
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			$executeDetail = $execute->getOne ( array (
					'where' => 'mold="借款执行人"',
					'asArray' => true 
			) );
			
			$receiptDetail = $receipt->getOne ( array (
					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=5 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;
			
			$receipt->explanation = $explanation;
			$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;
		
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		Doo::loadModel ( 'loanReceipt' );
		$loanReceipt = new loanReceipt ();
		
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		$verify = new verify ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		
		$receiptDe = $receipt->getOne ( array (
				'where' => 'rid=' . $rid,
				'desc' => 'rid',
				'asArray' => true 
		) );
		
		$receiptList = $loanReceipt->find ( array (
				'where' => 'rid=' . $receiptDe ['loanRid'],
				'desc' => 'rid',
				'asArray' => true 
		) );
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			$verifyList = $verify->getOne ( array (
					'where' => 'vid=' . $value ['verify'],
					'asArray' => true 
			) );
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						// if ($v[0]==$endStaffArray['nextStaff']){
						// $roleId=$v[0];
						// }
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						// $endKey=key($verifyStaff);
						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
						// $button=4;
						// $verifyList[$k]['status']=4;
						// }
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
								
								break;
							}
						}
					} else {
						
						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
					}
					// $roleArray[$MKI]['rolename']=$rolename['name'];
					$KOP = true;
				}
			}
			
			foreach ( $roleArrayCopy as $k => $v ) {
				foreach ( $verifyList as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyList, $m, 1, $v );
					}
				}
			}
			
			$receiptList [$key] ['verifyList'] = $verifyList;
			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
					'where' => 'sid=' . $value ['staff'],
					'asArray' => true 
			) );
			$receiptList [$key] ['button'] = $button;
			
			//
			// $receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']);
			$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );
		}
		
		$data ['receiptList'] = $receiptList;
		
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		
		$acItem = $accountItem->find ( array (
				'asArray' => true 
		) );
		
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		$data ['rid'] = $rid;
		
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['veList'] = $veList;
		$data ['acItem'] = $acItem;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/saeaLoanAddReceipt", $data );
	}
	function saeaLoanReceiptAddDo() {
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		
		$agency = $this->get_args ( 'agency' );
		$travel = $this->get_args ( 'travel' );
		$train = $this->get_args ( 'train' );
		$other = $this->get_args ( 'other' );
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		
		$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
		
		if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'enclosur' );
			
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			$executeDetail = $execute->getOne ( array (
					'where' => 'mold="借款费用执行人"',
					'asArray' => true 
			) );
			
			$receiptDet = $receipt->getOne ( array (
					'where' => 'rid=' . $rid,
					'asArray' => true 
			) );
			// if(!empty($receiptDetail))
			// return "/referReceipt/".$receiptDetail['rid'];
			
			$aItem = $accountItem->find ( array (
					'asArray' => true 
			) );
			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
			$ag = $tr = $ta = $ot = 0;
			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
			
			foreach ( $aItem as $key => $value ) {
				if ($value ['category'] == $this->AGENCY) {
					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
						array_push ( $accountJson [$this->AGENCY], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $agency [$ag], 2, '.', '' ) 
						) );
						$sum += $agency [$ag];
						$agencySum += $agency [$ag];
					}
					$ag ++;
				}
				
				if ($value ['category'] == $this->TRAVEL) {
					if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {
						array_push ( $accountJson [$this->TRAVEL], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $travel [$tr], 2, '.', '' ) 
						) );
						$sum += $travel [$tr];
						$travelSum += $travel [$tr];
					}
					$tr ++;
				}
				
				if ($value ['category'] == $this->TRAIN) {
					if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {
						array_push ( $accountJson [$this->TRAIN], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $train [$ta], 2, '.', '' ) 
						) );
						$sum += $train [$ta];
						$trainSum += $train [$ta];
					}
					$ta ++;
				}
				
				if ($value ['category'] == $this->OTHER) {
					if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {
						array_push ( $accountJson [$this->OTHER], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $other [$ot], 2, '.', '' ) 
						) );
						$sum += $other [$ot];
						$otherSum += $other [$ot];
					}
					$ot ++;
				}
			}
			$accountJson ['cSum'] = array (
					'agencySum' => number_format ( $agencySum, 2, '.', '' ),
					'travelSum' => number_format ( $travelSum, 2, '.', '' ),
					'trainSum' => number_format ( $trainSum, 2, '.', '' ),
					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 
			);
			
			// 报销单
			$receipt->accountItem = json_encode ( $accountJson );
			$receipt->staff = $this->staff [0] ['sid'];
			$receipt->loanSum = $receiptDet ['sum'];
			$receipt->sum = number_format ( $sum, 2, '.', '' );
			
			$receipt->date = date ( "Y-m-d" );
			$receipt->pastDate = '';
			$receipt->cid = $cid;
			$receipt->status = 7;
			
			// 修改审批流程加入角色
			$receipt->verify = $verify;
			$receipt->verifyStaff = '';
			$receipt->executeStaff = '';
			$receipt->executeCopy = $executeDetail ['staff'];
			
			// $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999);
			$receipt->explanation = $explanation;
			$receipt->update ( array (
					'where' => 'rid=' . $rid 
			) );
			
			// 附件
			if (! empty ( $enclosurName )) {
				$enclosurArray = explode ( '-', $enclosurName );
				foreach ( $enclosurArray as $value ) {
					$enclosur = new enclosur ();
					
					$enclosur->name = $value;
					$enclosur->rid = $rid;
					$enclosur->insert ();
				}
				
				// print_r($enclosurArray);die;
			}
			
			// 报销详情
			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->AGENCY;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->TRAVEL;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->TRAIN] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->TRAIN;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->OTHER] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->OTHER;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			
			return "/saeaBorad";
		}
		return "/saeaLoanReceiptAdd/" . $rid;
	}
	function saeaLoanReceiptEdi() {
		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		// echo $rid;
		Doo::loadModel ( 'accountItem' );
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		$verify = new verify ();
		$accountItem = new accountItem ();
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		Doo::loadModel ( 'loanReceipt' );
		$loanReceipt = new loanReceipt ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		
		$receiptDetail = $receipt->getOne ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=4 or status=7) and rid=' . $rid,
				'asArray' => true 
		) );
		if (empty ( $receiptDetail ))
			return "/saeaBorad";
		
		$receiptList = $loanReceipt->find ( array (
				'where' => 'rid=' . $receiptDetail ['loanRid'],
				'desc' => 'rid',
				'asArray' => true 
		) );
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			$verifyList = $verify->getOne ( array (
					'where' => 'vid=' . $value ['verify'],
					'asArray' => true 
			) );
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						// if ($v[0]==$endStaffArray['nextStaff']){
						// $roleId=$v[0];
						// }
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						// $endKey=key($verifyStaff);
						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
						// $button=4;
						// $verifyList[$k]['status']=4;
						// }
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
								
								break;
							}
						}
					} else {
						
						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
					}
					// $roleArray[$MKI]['rolename']=$rolename['name'];
					$KOP = true;
				}
			}
			
			foreach ( $roleArrayCopy as $k => $v ) {
				foreach ( $verifyList as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyList, $m, 1, $v );
					}
				}
			}
			
			$receiptList [$key] ['verifyList'] = $verifyList;
			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
					'where' => 'sid=' . $value ['staff'],
					'asArray' => true 
			) );
			$receiptList [$key] ['button'] = $button;
			
			//
			// $receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']);
			$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );
		}
		
		$data ['receiptList'] = $receiptList;
		
		$acItem = $accountItem->find ( array (
				'asArray' => true 
		) );
		
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		// 配置编辑信息
		$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );
		foreach ( $acItem as $key => $value ) {
			foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->OTHER] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
		}
		
		$data ['category'] = $Lcategory->find ( array (
				'asArray' => true 
		) );
		$data ['cSum'] = $accountItemList ['cSum'];
		$data ['sum'] = $receiptDetail ['sum'];
		$data ['receiptDetail'] = $receiptDetail;
		$data ['veList'] = $veList;
		$data ['acItem'] = $acItem;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verify'] = $receiptDetail ['verify'];
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$data ['rid'] = $rid;
		
		$this->render ( "/admin/saeaLoanEdiReceipt", $data );
	}
	function confirmation() {
		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'receiptDetail' );
		$receipt = new receipt ();
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'statistics' );
		Doo::loadModel ( 'itemStatistics' );
		$statistics = new statistics ();
		$itemStatistics = new itemStatistics ();
		Doo::loadModel ( "verify" );
		$verify = new verify ();
		
		$receiptDetailList = $receipt->getOne ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=4 or status=5) and Rtype=1 and rid=' . $rid,
				'asArray' => true 
		) );
		if (empty ( $receiptDetailList ))
			return "/saeaBorad";
		
		$verifyDetail = $verify->getOne ( array (
				'where' => ' vid =' . $receiptDetailList ['verify'],
				'asArray' => true 
		) );
		$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
		
		if (empty ( $receiptDetailList ['nowStaff'] )) {
			
			$nowStaff = "";
			$nowStaffList = array ();
			if ($verifyDetail [0] [1] == 'ROLE') {
				$vStaffString = json_decode ( $verifyDetail [0] [3] );
				foreach ( $vStaffString as $key => $value ) {
					$staffK = explode ( "_", $value );
					array_push ( $nowStaffList, $staffK [0] );
				}
				$nowStaff = implode ( ',', $nowStaffList );
			} else {
				$nowStaff = $verifyDetail [0] [0];
			}
			$receipt->nowStaff = $nowStaff;
		}
		// echo $nowStaff;
		// print_r($verifyDetail);die;
		
		$receipt->rid = $receiptDetailList ['rid'];
		
		$receipt->status = 2;
		$receipt->update ();
		
		// 操作日志
		Doo::loadModel ( "receiptLog" );
		$receiptLog = new receiptLog ();
		
		$verify = new verify ();
		
		$receiptInfo = $receipt->getOne ( array (
				'where' => 'rid=' . $rid,
				'asArray' => true 
		) );
		$vr = $verify->getOne ( array (
				'where' => 'vid=' . $receiptInfo ['verify'],
				'asArray' => true 
		) );
		
		$jd = json_decode ( $vr ['staff'] );
		$roleId = 0;
		
		foreach ( $jd as $key => $value ) {
			if ($value [1] == 'ROLE') {
				$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
				if ($pos !== false) {
					$roleId = $value [0];
				}
			}
		}
		
		// 审批日志
		// echo $roleId;die;
		
		if (! empty ( $roleId )) {
			Doo::loadModel ( "role" );
			$role = new role ();
			$roleInfo = $role->getOne ( array (
					'where' => 'rid=' . $roleId,
					'asArray' => true 
			) );
			
			$receiptLog->rolename = $roleInfo ['name'];
		}
		
		$receiptLog->username = $this->staff [0] ['username'];
		$receiptLog->uid = $this->staff [0] ['sid'];
		$receiptLog->date = date ( "Y-m-d" );
		$receiptLog->opinion = '提交审批';
		$receiptLog->img = $this->staff [0] ['avatar'];
		$receiptLog->status = 2;
		$receiptLog->rid = $rid;
		$receiptLog->insert ();
		
		return "/expenses";
	}
	function expenses() {
		$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";
		if (empty ( $item ))
			$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";
		
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";
		
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		$verify = new verify ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		
		$condition = "";
		if ($item == "expenses")
			$condition = " and Rtype=1 ";
		elseif ($item == "receipts")
			$condition = " and Rtype=0 ";
		elseif ($item == "remits")
			$condition = " and Rtype=2 ";
		
		$dateCondition = " and Year(date) =" . $year;
		if (! empty ( $moth )) {
			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth;
			$stList = $statistics->getOne ( array (
					'select' => 'rePrice ,agPrice',
					'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition,
					'asArray' => true 
			) );
		} else
			$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
		
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		
		$noPassSum = $receipt->receiptByYear ( $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] ['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 '<br/>';
							
							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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		$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 '<br/>'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; $loanList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $loanList[$key]['button']=$button; //$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']); } $data['loanList']=$loanList;
		 */
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9) {
				if ($value ['status'] == 8 && $value ['Rtype'] == 1)
					$verifyList ['staff'] = $loanList [0] ['verifyBreakup'];
				else
					$verifyList ['staff'] = $value ['verifyBreakup'];
			} else
				$verifyList = $verify->getOne ( array (
						'where' => 'vid=' . $value ['verify'],
						'asArray' => true 
				) );
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						// if ($v[0]==$endStaffArray['nextStaff']){
						// $roleId=$v[0];
						// }
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						// $endKey=key($verifyStaff);
						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
						// $button=4;
						// $verifyList[$k]['status']=4;
						// }
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							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 = $value ['sum'] - $value ['loanSum'];
			$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 .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		
		$data ['enclosurHtml'] = $enclosurHtml;
		
		// print_r($receiptList);
		
		$data ['receiptList'] = $receiptList;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		
		$data ['receiptMemu'] = 'expenses';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/expensesCollect", $data );
	}
	function approvalExpenses() {
		$status = isset ( $this->params ['status'] ) ? $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;
		
		$rdate = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
		
		//echo $rdate;
		
		if (empty ( $status ))
			$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
		
		$page_size = 12;
		$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
		
		$vidList = array ();
		$button = 0;
		
		Doo::loadModel ( 'verify' );
		$verify = new verify ();
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		
		// user verify ID
		$verifyDetail = $verify->find ( array (
				'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',
				'asArray' => true 
		) );
		foreach ( $verifyDetail as $key => $value ) {
			array_push ( $vidList, $value ['vid'] );
		}
		$vid = implode ( ",", $vidList );
		if (empty ( $verifyDetail ))
			$vid = 0;
			
			// if ($status==0)
			// $dateCondition="";
			// else
		$dateCondition = " and Year(date) =" . $year;
/*		
		if (! empty ( $month ))
			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;
		
 		if($status == 'done'){
 			$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";
		}
		
		// $approvalCondition = " and status=" . $status;
		// if ($status == 2) {
		// // 查找角色审批人
		
		// }
		// if ($status == 5) { // and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%"
		// $approvalCondition = ' and status=2 ';
		// }
		
		// if ($status == 1) {
		// $approvalCondition = ' and (status=' . $status . ' or status=6) ';
		// }
		
		// if ($status == 8) {
		// $approvalCondition = ' and (status=' . $status . ' or status=9 ) ';
		// }
		
		// nowStaff like "%'.$this->staff[0]['sid'].'%"
		$pageinfo ['page'] = array (
				'previous' => '' 
		);
		// if ($status == 0) {
		// $pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses", "", "" );
		
		// $receiptList = $receipt->find ( array (
		// 'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . ' and verify in (' . $vid . ')',
		// 'limit' => $pageinfo ['lower'] . ',' . $page_size,
		// 'desc' => 'rid',
		// 'asArray' => true
		// ) );
		// //echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';
		// } else
		if ($status == 'done' || $status == 'termination') {
			$pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses/".$status, $get, "" );
			
			$receiptList = $receipt->find ( array (
					'where' => 'status!=5  ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')',
					'limit' => $pageinfo ['lower'] . ',' . $page_size,
					'desc' => 'rid',
					'asArray' => true 
			) );
		} else
			$receiptList = $receipt->find ( array (
					'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')',
					'desc' => 'rid',
					'asArray' => true 
			) );
		
		$rLRes = $receipt->find ( array (
				'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )' . $cateCondition . $staffCondition,
				'desc' => 'rid',
				'asArray' => true 
		) );
		
		// echo '1 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';
		// print_r($pageinfo);
		
		
		
		$Locate = 0;
		
		
		$reportList=$reportCateList=array();
		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 
			) );
			
			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'] );
		}
		
		
		$reportList=array_unique($reportList);
		$reportHtml='';
		foreach ($reportList as $key=>$value){
			$v=explode("-", $value);
			$reportHtml.='<option node-all=\'true\' node-cate=\''.$v[2].'\' value="'.$v[1].'">'.$v[1].'</option>';
		}
		//print_r($reportList)
		$data['reportHtml']=$reportHtml;

		$reportCateList=array_unique($reportCateList);
		$reportCateHtml='';
		foreach ($reportCateList as $key=>$value){
			$v=explode("-", $value);
			$reportCateHtml.='<option value="'.$v[1].'">'.$v[1].'</option>';
		}
		//$reportHtml.='<option value="ALL">'.$value[''].'</option>';
		$data['reportCateHtml']=$reportCateHtml;
		
		// print_r($receiptList);die;
		// $data['verifyDetail']=$verifyDetail;
		
		$mothHtml = "";
		for($i = 1; $i <= 12; $i ++) {
			if ($month == $i)
				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		$data ['mothHtml'] = $mothHtml;
		
		$data ['page'] = $pageinfo;
		$data ['receiptList'] = $receiptList;
		$data ['receiptApprovalCount'] = count ( $rLRes );
		$data ['status'] = $status;
		$data ['year'] = $year;
		$data ['categoryList'] = $categoryList;
		$data ['staffList'] = $staffList;
		$data ['cid'] = $cid;
		$data ['sid'] = $sid;
		
		// print_r($receiptList);
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'approvalExpenses';
		$data ['verifyId'] = $this->verifyId;
		
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/approvalExpenses", $data );
	}
	function expensesDoc() {
		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		$verify = new verify ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		
		Doo::loadModel ( 'loanReceipt' );
		$loanReceipt = new loanReceipt ();
		
		$receiptList = $receipt->find ( array (
				'where' => ' rid=' . $rid,
				'desc' => 'rid',
				'asArray' => true 
		) );
		
		$loanList = array ();
		if (! empty ( $receiptList ))
			$loanList = $loanReceipt->find ( array (
					'where' => 'rid=' . $receiptList [0] ['loanRid'],
					'desc' => 'rid',
					'asArray' => true 
			) );
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $loanList as $key => $value ) {
			$loanList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$loanList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$loanList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9)
				$verifyList ['staff'] = $value ['verifyBreakup'];
			else
				$verifyList = $verify->getOne ( array (
						'where' => 'vid=' . $value ['verify'],
						'asArray' => true 
				) );
			
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						// if ($v[0]==$endStaffArray['nextStaff']){
						// $roleId=$v[0];
						// }
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						// $endKey=key($verifyStaff);
						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
						// $button=4;
						// $verifyList[$k]['status']=4;
						// }
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
								
								break;
							}
						}
					} else {
						
						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
					}
					// $roleArray[$MKI]['rolename']=$rolename['name'];
					$KOP = true;
				}
			}
			
			foreach ( $roleArrayCopy as $k => $v ) {
				foreach ( $verifyList as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyList, $m, 1, $v );
					}
				}
			}
			
			$loanList [$key] ['verifyList'] = $verifyList;
			$loanList [$key] ['staffDetail'] = $staff->getOne ( array (
					'where' => 'sid=' . $value ['staff'],
					'asArray' => true 
			) );
			$loanList [$key] ['button'] = $button;
			
			// $loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']);
		}
		$data ['loanList'] = $loanList;
		
		// print_r($loanList);
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 9) {
				$verifyList ['staff'] = $value ['verifyBreakup'];
			} else
				$verifyList = $verify->getOne ( array (
						'where' => 'vid=' . $value ['verify'],
						'asArray' => true 
				) );
			
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			if ($verifyList == NULL)
				$verifyList = array ();
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						// if ($v[0]==$endStaffArray['nextStaff']){
						// $roleId=$v[0];
						// }
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						// $endKey=key($verifyStaff);
						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
						// $button=4;
						// $verifyList[$k]['status']=4;
						// }
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							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 = $value ['sum'] - $value ['loanSum'];
			$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 
			) );
		}
		
		Doo::loadModel ( 'enclosur' );
		$enclosur = new enclosur ();
		$enclosurList = $enclosur->find ( array (
				'where' => 'rid=' . $rid,
				'asArray' => true 
		) );
		$enclosurHtml = '';
		foreach ( $enclosurList as $value ) {
			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		
		$data ['enclosurHtml'] = $enclosurHtml;
		
		$receiptList [0] ['rlList'] = $rlList;
		
		$data ['receiptList'] = $receiptList;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		
		$data ['receiptMemu'] = 'approvalExpenses';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/expensesDoc", $data );
	}
	function expensesEdi() {
		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
		
		if (empty ( $status ))
			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
		
		$vidList = array ();
		$button = 0;
		
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		$receipt = new receipt ();
		$verify = new verify ();
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'enclosur' );
		$enclosur = new enclosur ();
		
		// user verify ID
		$verifyDetail = $verify->find ( array (
				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
				'asArray' => true 
		) );
		foreach ( $verifyDetail as $key => $value ) {
			array_push ( $vidList, $value ['vid'] );
		}
		$vid = implode ( ",", $vidList );
		if (empty ( $verifyDetail ))
			$vid = 0;
		
		$categoryList = $Lcategory->find ( array (
				'asArray' => true 
		) );
		$staffList = $staff->find ( array (
				'where' => 'cid=' . $cid,
				'asArray' => true 
		) );
		
		$ap = "";
		if ($status == 4) {
			$ap = 4;
			$status = 2;
		}
		
		// get Receipt By verifyID status 2
		$receiptList = $receipt->find ( array (
				'where' => 'rid =' . $rid.' 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 '<br/>';
							
							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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		// 获取审批日志
		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 .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		
		// 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 
			) );
			
			
			
			if (empty ( $receiptDetail )||$receiptDetail['nowStaff']!=$this->staff['0']['sid'])
				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 { // 进入下一个角色或者审批人
					         
						// echo str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']);
					         //
						$nowStaff = str_replace ( $this->staff [0] ['sid'], '', $receiptDetail ['nowStaff'] );
						
						$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status,
								'nextStaff' => $VS ['nextStaff'],
								'ROLE' => 1 
						);
						
						// print_r($verifyStaff);
						// die;
					}
					
					if ($status == 3) {
						$verifyStaff ['final'] = $status;
						$verifyStaff [$this->staff [0] ['sid']] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status 
						);
					}
					$vStaffString = json_encode ( $verifyStaff );
					$receipt->verifyStaff = $vStaffString;
					$receipt->nowStaff = $nowStaff;
					
					$loanReceipt->nowStaff = $nowStaff;
					$loanReceipt->verifyStaff = $vStaffString;
					
					// die;
					// }
					// print_r($verifyStaff);
					// die;
				}
				// print_r($verifyStaff);die;
			}
			
			// print_r($verifyDetail);
			
			$roleKey = 0;
			$roleId = 0;
			$verifyDetailCopy = array ();
			foreach ( $verifyDetail as $k => $v ) {
				if ($v [1] == 'ROLE') {
					$roleId = $v [0];
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$exp = array (
								0 => $staffID [0],
								1 => $staffID [1] 
						);
						array_push ( $roleArray, $exp );
					}
					$verifyDetailCopy [$v [0]] = $roleArray;
				}
			}
			// print_r($verifyDetail);
			foreach ( $verifyDetailCopy as $k => $v ) {
				foreach ( $verifyDetail as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyDetail, $m, 1, $v );
					}
				}
			}
			
			// 审批日志
			if (! isset ( $verifyStaff ['final'] )) {
				Doo::loadModel ( "receiptLog" );
				$receiptLog = new receiptLog ();
				
				if (! empty ( $roleId )) {
					Doo::loadModel ( "role" );
					$role = new role ();
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $roleId,
							'asArray' => true 
					) );
					
					$receiptLog->rolename = $roleInfo ['name'];
				}
				
				$receiptLog->username = $this->staff [0] ['username'];
				$receiptLog->uid = $this->staff [0] ['sid'];
				$receiptLog->date = date ( "Y-m-d" );
				$receiptLog->opinion = $opinion;
				$receiptLog->img = $this->staff [0] ['avatar'];
				$receiptLog->status = 1;
				$receiptLog->rid = $rid;
				$receiptLog->insert ();
			}
			
			if (isset ( $verifyStaff ['final'] )) { // rDetail
				$receipt->status = 3;
				$receipt->verifyBreakup = $verifyString;
				$receiptDetailObj->status = 3;
				$receiptDetailObj->update ( array (
						'where' => 'rid=' . $rid 
				) );
				
				// 微信企业号通知
				$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" );
				
				$loanReceipt->amount = $receiptDetail ['amount'];
				
				$loanReceipt->update ( array (
						'where' => ' rid = ' . $receiptDetail ['loanRid'] 
				) );
				
				// 微信企业号通知
				$this->setWXMsg ( $rid, 1 );
			}
			
			$receipt->amount = $amount;
			
			$receipt->update ( array (
					'where' => ' rid = ' . $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;
		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 '<br/>';
							
							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
								
								break;
							}
						}
					} else {
						
						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
					}
					// $roleArray[$MKI]['rolename']=$rolename['name'];
					$KOP = true;
				}
			}
			
			foreach ( $roleArrayCopy as $k => $v ) {
				foreach ( $verifyList as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyList, $m, 1, $v );
					}
				}
			}
			
			$loanList [$key] ['verifyList'] = $verifyList;
			$loanList [$key] ['staffDetail'] = $staff->getOne ( array (
					'where' => 'sid=' . $value ['staff'],
					'asArray' => true 
			) );
		}
		$data ['loanList'] = $loanList;
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$button2 = 0;
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			$executeList = json_decode ( $value ['executeCopy'], true );
			$executeStaff = array ();
			if (! empty ( $value ['executeStaff'] ))
				$executeStaff = json_decode ( $value ['executeStaff'], true );
			
			if (isset ( $executeList )) {
				foreach ( $executeList as $op => $lo ) {
					
					$executeList [$op] ['date'] = "";
					$executeList [$op] ['opinion'] = "";
					$executeList [$op] ['status'] = "";
					
					foreach ( $executeStaff as $m => $u ) {
						if ($lo [0] == $m) {
							$executeList [$op] ['date'] = $u ['date'];
							$executeList [$op] ['opinion'] = $u ['opinion'];
							$executeList [$op] ['status'] = $u ['status'];
							break;
						}
					}
					
					if ($this->staff [0] ['sid'] == $lo [0] && empty ( $executeList [$op] ['status'] )) {
						$button2 = 1;
						$executeList [$op] ['status'] = 4;
					}
				}
			}
			
			// 检测编辑状态
			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 '<br/>';
							
							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 = $value ['sum'] - $value ['loanSum'];
			$receiptList [$key] ['relust'] = $relust;
			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( $relust );
		}
		
		// print_r($receiptList[$key]['executeList']);
		
		$data ['receiptList'] = $receiptList;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'implement';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/implement", $data );
	}
	function implementDo() {
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		$implementOpinions = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
		$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : '';
		
		if (! empty ( $rid ) && $amount != '') {
			Doo::loadModel ( 'receipt' );
			$receipt = new receipt ();
			Doo::loadClass ( 'XDeode' );
			$XDeode = new XDeode ( 5 );
			
			$rinfo = $receipt->getOne ( array (
					'where' => 'rid=' . $rid,
					'asArray' => true 
			) );
			
			$executeCopy = json_decode ( $rinfo ['executeCopy'], true );
			
			$executeStaff = json_decode ( $rinfo ['executeStaff'], true );
			
			if (empty ( $executeStaff )) {
				
				$executeStaff = array (
						$this->staff [0] ['sid'] => array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $implementOpinions,
								'status' => 1 
						) 
				);
			} else {
				
				$executeStaff [$this->staff [0] ['sid']] = array (
						'date' => date ( 'Y-m-d' ),
						'opinion' => $implementOpinions,
						'status' => 1 
				);
			}
			
			if (count ( $executeStaff ) == count ( $executeCopy )) {
				$receipt->executeStaff = json_encode ( $executeStaff );
				
				$receipt->status = 8;
				if ($rinfo ['Rtype'] == 1 && $rinfo ['isBK'] == 1 && $rinfo ['status'] == 1)
					$receipt->status = 9;
				
				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 
			) );
		}
		$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 
		) );
		
		$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 '<br/>';
							
							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
								
								break;
							}
						}
					} else {
						
						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
					}
					// $roleArray[$MKI]['rolename']=$rolename['name'];
					$KOP = true;
				}
			}
			
			foreach ( $roleArrayCopy as $k => $v ) {
				foreach ( $verifyList as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyList, $m, 1, $v );
					}
				}
			}
			
			$loanList [$key] ['verifyList'] = $verifyList;
		}
		
		$htmlLoan = '';
		if (isset ( $loanList [0] )) {
			foreach ( $loanList [0] ['verifyList'] as $key => $value ) {
				if ($value ['status'] == 1)
					$htmlLoan .= '<li class="done" >';
				elseif ($value ['status'] == 3)
					$htmlLoan .= '<li class="undone" >';
				
				$htmlLoan .= '<div class="avtra"><img width="32" src="' . $value [2] . '_2.jpg"></div>';
				$htmlLoan .= '<div class="comment"><p class="colGray">' . $value ['1'] . '<span class="fR">' . $value ['date'] . '</span>';
				if (isset ( $value ['rolename'] ))
					$htmlLoan .= $value ['rolename'];
				$htmlLoan .= '</p><p>' . $value ['opinion'] . '</p></div></li>';
			}
			$data ['loanDate'] = $loanList [0] ['date'];
		}
		$data ['htmlLoan'] = $htmlLoan;
		$data['loanReceiptDate']=$loanList [0] ['date'];
		//$data ['LoanReceipt']=$loanList[0];
		// print_r($loanList);
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		if ($ap == 4)
			$status = 4;
		foreach ( $receiptList as $key => $value ) {
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			$verifyList = $verify->getOne ( array (
					'where' => 'vid=' . $value ['verify'],
					'asArray' => true 
			) );
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			// print_r($verifyList);
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						if ($v [0] == $endStaffArray ['nextStaff']) {
							$roleId = $v [0];
						}
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				// print_r($roleArray);
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$button = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						$endKey = key ( $verifyStaff );
						if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {
							$button = 4;
							$verifyList [$k] ['status'] = 4;
						}
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
								
								break;
							}
						}
					} else {
						
						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
					}
					// $roleArray[$MKI]['rolename']=$rolename['name'];
					$KOP = true;
				}
			}
			
			foreach ( $roleArrayCopy as $k => $v ) {
				foreach ( $verifyList as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyList, $m, 1, $v );
					}
				}
			}
			
			// print_r($verifyList);
			
			$receiptList [$key] ['verifyList'] = $verifyList;
			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
					'where' => 'sid=' . $value ['staff'],
					'asArray' => true 
			) );
			$receiptList [$key] ['button'] = $button;
			$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );
			$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );
			$relust = $value ['sum'] - $value ['loanSum'];
			$receiptList [$key] ['relust'] = $relust;
			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );
		}
		// print_r($receiptList);die;
		// $data['verifyDetail']=$verifyDetail;
		
		$mothHtml = "";
		for($i = 1; $i <= 12; $i ++) {
			if ($month == $i)
				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		// 获取审批日志
		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 .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		
		$data ['enclosurHtml'] = $enclosurHtml;
		$data ['rolename'] = $rolename ['name'];
		
		$data ['mothHtml'] = $mothHtml;
		
		 //print_r($receiptList);
		$data ['rid'] = $rid;
		$data ['tijdate'] = $tijdate ['date'];
		$data ['receiptList'] = $receiptList;
		$data ['receiptApprovalCount'] = count ( $receiptList );
		$data ['status'] = $status;
		$data ['year'] = $year;
		$data ['categoryList'] = $categoryList;
		$data ['staffList'] = $staffList;
		$data ['cid'] = $cid;
		$data ['sid'] = $sid;
		$data ['ap'] = $ap;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'approvalExpenses';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/receiptburEdi", $data );
	}
	function hisImplement() {
		$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";
		if (empty ( $item ))
			$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "pendImplement";
		
		
		$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';
		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 );
		
		$condition = "";
		if ($item == "expenses")
			$condition = " and Rtype=1 ";
		elseif ($item == "receipts")
			$condition = " and Rtype=0 ";
		elseif ($item == "remits")
			$condition = " and Rtype=2 ";
		elseif($item =="pendImplement"){
			$condition = ' and (status=1 or status=6) and (executeCopy like "%[\"' . $this->staff [0] ['sid'] . '\"%" and executeStaff not like "%{\"' . $this->staff [0] ['sid'] . '\"%" ) ';
		}
		
		
		//'and (executeCopy like "%["' . $this->staff [0] ['sid'] . '"%" and executeStaff not like "%{"' . $this->staff [0] ['sid'] . '"%" )';
			
		
		$statusCon = '(status=8 or status=9 or status=1 or status=6 )';
		$sopString = "";
		
		if (empty($rdate))
			$dateCondition = " and Year(date) =" . $year;
		else 
			$dateCondition=" and date_format(date,'%Y-%m-%d')='".$rdate."' ";
		
		if ($item == 'teipts') {
			$statusCon = '(status=1 or status=6 )';
			$dateCondition=" and date_format(pastDate,'%Y-%m-%d')='".$rdate."' ";
			
		} elseif ($item == '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 ($item == 'teipts') {
			$statusCon = '(status=1 or status=6 )';
			$dateCondition = " and Year(pastDate) =" . $year;
			if ($moth != 'MONTH')
				$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $moth;
			if ($day != 'DAY')
				$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $moth . " and day(pastDate)=" . $day;
		} elseif ($item == 'alerpts') {
			$statusCon = '(status=8 or status=9 )';
			$dateCondition = " and Year(executeDate) =" . $year;
			if ($moth != 'MONTH')
				$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth;
			if ($day != 'DAY')
				$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth . " and day(executeDate)=" . $day;
		}
		*/
		
		if ($sop != 'SOP')
			$sopString = " and staff=" . $sop;
		
		
		
		// $noPassSum=$receipt->receiptByYear($year,$this->staff[0]['sid']); and (status=1 or status=6)
		
		$receiptList = $receipt->find ( array (
				'where' => $statusCon . $condition . $dateCondition . $sopString,
				'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 (
					'where' => 'sid=' . $value ['staff'],
					'asArray' => true 
			) );
			$sopStaff [$value ['staff']] = $staffDetail ['username'];
		}
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$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 '<br/>';
							
							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);
		$mothHtml = "";
		for($i = 1; $i <= 12; $i ++) {
			if ($moth == $i)
				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		$dayHtml = "";
		if ($day != "DAY" || $moth != "MONTH") {
			for($i = 1; $i <= 31; $i ++) {
				if ($day == $i)
					$dayHtml .= '<option value="' . $i . '" selected >' . $i . '日</option>';
				else
					$dayHtml .= '<option value="' . $i . '" >' . $i . '日</option>';
			}
		}
		$sopHtml = "";
		foreach ( $sopStaff as $key => $value ) {
			if ($sop == $key)
				$sopHtml .= '<option value="' . $key . '" selected >' . $value . '</option>';
			else
				$sopHtml .= '<option value="' . $key . '" >' . $value . '</option>';
		}
		
		
		$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 ['day'] = $day;
		$data ['sop'] = $sop;
		$this->render ( "/admin/hisImplement", $data );
	}
	function ajaxExamine() {
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		
		if (! empty ( $rid )) {
			
			$rLRes = $receipt->find ( array (
					'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) and rid!=' . $rid,
					'asArray' => true 
			) );
			echo json_encode ( array (
					'status' => 1,
					'receipt' => $rLRes [0] 
			) );
			die ();
		}
		echo json_encode ( array (
				'status' => 0,
				'receipt' => array () 
		) );
		die ();
	}
	
	/*
	 * 废弃
	 */
	function myReceipt() {
		
		// all approval past withdraw
		$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";
		if (empty ( $item ))
			$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";
		
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";
		
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		
		// pre-loaded
		if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) {
			// have cache
			$path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . ".htmls";
			if (! empty ( $moth )) // yearPage
				$path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . "_" . $moth . ".htmls";
			
			$this->showCache ( $path );
		}
		
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		$verify = new verify ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		
		$condition = " and status!=0 ";
		if ($item == "approval")
			$condition = " and status=2 ";
		elseif ($item == "withdraw")
			$condition = " and status=3 ";
		elseif ($item == "past")
			$condition = " and status=1 ";
		elseif ($item == "whdw")
			$condition = " and status=4 ";
		
		$dateCondition = " and Year(date) =" . $year;
		if (! empty ( $moth )) {
			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth;
			$stList = $statistics->getOne ( array (
					'select' => 'rePrice ,agPrice',
					'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition,
					'asArray' => true 
			) );
		} else
			$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
		
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		
		$noPassSum = $receipt->receiptByYear ( $year, $this->staff [0] ['sid'] );
		
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'] - $noPassSum ['sum']) 
		);
		$receiptList = $receipt->find ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . $condition . $dateCondition,
				'desc' => 'rid',
				'asArray' => true 
		) );
		
		$Locate = 0;
		$roleId = 0;
		$button = 0;
		foreach ( $receiptList as $key => $value ) {
			$receiptList [$key] ['Locate'] = $Locate;
			$Locate ++;
			$receiptList [$key] ['reviseDetail'] = array ();
			if (! empty ( $value ['reviseDetail'] ))
				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			$categoryDetil = $Lcategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptList [$key] ['category'] = $categoryDetil ['title'];
			
			// 检测编辑状态
			$verifyList = $verify->getOne ( array (
					'where' => 'vid=' . $value ['verify'],
					'asArray' => true 
			) );
			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
			
			$verifyStaff = json_decode ( $value ['verifyStaff'], true );
			
			Doo::loadModel ( 'role' );
			$role = new role ();
			
			$flag = true;
			$roleKey = 0;
			$endStaffArray = array ();
			$roleArrayCopy = array ();
			foreach ( $verifyList as $k => $v ) {
				// init verifyStaff
				
				if ($v [1] == 'ROLE') {
					
					if (! empty ( $verifyStaff )) {
						$endStaffArray = end ( $verifyStaff );
						// if ($v[0]==$endStaffArray['nextStaff']){
						// $roleId=$v[0];
						// }
					}
					
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					$rolename = $role->getOne ( array (
							'where' => 'rid=' . $v [0],
							'asArray' => true 
					) );
					
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$staffInfo = $staff->getOne ( array (
								'where' => 'sid=' . $staffID [0],
								'asArray' => true 
						) );
						// print_r($staffID);
						$exp = array (
								0 => $staffInfo ['sid'],
								1 => $staffID [1],
								2 => $staffInfo ['avatar'],
								'date' => '',
								'date' => '',
								'opinion' => '',
								'status' => '',
								'rolename' => $rolename ['name'] 
						);
						array_push ( $roleArray, $exp );
					}
					$roleArrayCopy [$v [0]] = $roleArray;
					// $verifyList[$k]['roleArray']=$roleArray;
				}
				
				$verifyList [$k] ['date'] = "";
				$verifyList [$k] ['opinion'] = "";
				$verifyList [$k] ['status'] = "";
				if (empty ( $verifyStaff )) {
					$verifyList [$k] ['date'] = "";
					$verifyList [$k] ['opinion'] = "";
					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
						$verifyList [$k] ['status'] = 4;
						$flag = false;
					}
				} else {
					
					foreach ( $verifyStaff as $m => $u ) {
						if ($v [0] == $m) {
							$verifyList [$k] ['date'] = $u ['date'];
							$verifyList [$k] ['opinion'] = $u ['opinion'];
							$verifyList [$k] ['status'] = $u ['status'];
							$flag = false;
							break;
						}
					}
					
					$endStaffArray = end ( $verifyStaff );
					if (isset ( $endStaffArray ['ROLE'] )) {
					} else {
						// $endKey=key($verifyStaff);
						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
						// $button=4;
						// $verifyList[$k]['status']=4;
						// }
					}
				}
			}
			
			$rolename ['name'] = '';
			if (! empty ( $roleId )) {
				Doo::loadModel ( 'role' );
				$role = new role ();
				$rolename = $role->getOne ( array (
						'where' => 'rid=' . $roleId,
						'asArray' => true 
				) );
			}
			
			if (! empty ( $verifyStaff ))
				$endStaffArray = end ( $verifyStaff );
			
			$KOP = false;
			foreach ( $roleArrayCopy as $P => $A ) {
				
				foreach ( $A as $MKI => $AVL ) {
					if (! empty ( $verifyStaff )) {
						// &&$rolename['rid']==$endStaffArray['nextStaff']
						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
							$button = 4;
							$roleArrayCopy [$P] [$MKI] ['status'] = 4;
						}
						
						foreach ( $verifyStaff as $m => $u ) {
							$AVLFK = $AVL [0] . '_R';
							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
							
							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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		$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 saeaCreate() {
		Doo::loadModel ( 'accountItem' );
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		$receipt = new receipt ();
		$verify = new verify ();
		$accountItem = new accountItem ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		$acItem = $accountItem->find ( array (
				'asArray' => true 
		) );
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['veList'] = $veList;
		$data ['acItem'] = $acItem;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/saea_create", $data );
	}
	function addReceipt() {
		// include Doo::conf()->BASE_PATH.'diagnostic/debug.php';
		$agency = $this->get_args ( 'agency' );
		$travel = $this->get_args ( 'travel' );
		$train = $this->get_args ( 'train' );
		$other = $this->get_args ( 'other' );
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		
		$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
		
		if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'enclosur' );
			
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			$executeDetail = $execute->getOne ( array (
					'where' => 'mold="报销单执行人"',
					'asArray' => true 
			) );
			
			// $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true));
			// if(!empty($receiptDetail))
			// return "/referReceipt/".$receiptDetail['rid'];
			
			$aItem = $accountItem->find ( array (
					'asArray' => true 
			) );
			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
			$ag = $tr = $ta = $ot = 0;
			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
			
			foreach ( $aItem as $key => $value ) {
				if ($value ['category'] == $this->AGENCY) {
					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
						array_push ( $accountJson [$this->AGENCY], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $agency [$ag], 2, '.', '' ) 
						) );
						$sum += $agency [$ag];
						$agencySum += $agency [$ag];
					}
					$ag ++;
				}
				
				if ($value ['category'] == $this->TRAVEL) {
					if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {
						array_push ( $accountJson [$this->TRAVEL], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $travel [$tr], 2, '.', '' ) 
						) );
						$sum += $travel [$tr];
						$travelSum += $travel [$tr];
					}
					$tr ++;
				}
				
				if ($value ['category'] == $this->TRAIN) {
					if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {
						array_push ( $accountJson [$this->TRAIN], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $train [$ta], 2, '.', '' ) 
						) );
						$sum += $train [$ta];
						$trainSum += $train [$ta];
					}
					$ta ++;
				}
				
				if ($value ['category'] == $this->OTHER) {
					if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {
						array_push ( $accountJson [$this->OTHER], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $other [$ot], 2, '.', '' ) 
						) );
						$sum += $other [$ot];
						$otherSum += $other [$ot];
					}
					$ot ++;
				}
			}
			$accountJson ['cSum'] = array (
					'agencySum' => number_format ( $agencySum, 2, '.', '' ),
					'travelSum' => number_format ( $travelSum, 2, '.', '' ),
					'trainSum' => number_format ( $trainSum, 2, '.', '' ),
					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 
			);
			
			// 报销单
			$receipt->accountItem = json_encode ( $accountJson );
			$receipt->staff = $this->staff [0] ['sid'];
			$receipt->sum = number_format ( $sum, 2, '.', '' );
			$receipt->date = date ( "Y-m-d" );
			$receipt->cid = $cid;
			$receipt->status = 5;
			
			// 修改审批流程加入角色
			$receipt->verify = $verify;
			
			$receipt->executeCopy = $executeDetail ['staff'];
			
			$receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
			$receipt->explanation = $explanation;
			$rid = $receipt->insert ();
			
			// 附件
			if (! empty ( $enclosurName )) {
				$enclosurArray = explode ( '-', $enclosurName );
				foreach ( $enclosurArray as $value ) {
					$enclosur = new enclosur ();
					
					$enclosur->name = $value;
					$enclosur->rid = $rid;
					$enclosur->insert ();
				}
				
				// print_r($enclosurArray);die;
			}
			
			// 报销详情
			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->AGENCY;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->TRAVEL;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->TRAIN] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->TRAIN;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->OTHER] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->OTHER;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			
			// return "/referReceipt/".$rid;
		}
		return "/saeaBorad";
	}
	function referReceipt() {
		// $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0;
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'verify' );
		$verify = new verify ();
		$receipt = new receipt ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		$receiptDetail = $receipt->find ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and status=5 ',
				'asArray' => true 
		) );
		if (empty ( $receiptDetail ))
			return "/addReceipt";
		
		foreach ( $receiptDetail as $key => $value ) {
			$receiptDetail [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
			
			$veList = $verify->getOne ( array (
					'where' => 'vid=' . $value ['verify'],
					'asArray' => true 
			) );
			$v = json_decode ( $veList ['staff'] );
			array_push ( $v [0], $veList ['description'] );
			
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
				}
			}
			
			$receiptDetail [$key] ['staff'] = $v;
			$category = $lCategory->getOne ( array (
					'where' => 'cid=' . $value ['cid'],
					'asArray' => true 
			) );
			$receiptDetail [$key] ['category'] = $category ['title'];
		}
		// print_r($receiptDetail);
		$data ['receiptDetail'] = $receiptDetail;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaCreate';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/saea_confirm", $data );
	}
	function editReceipt() {
		// edit status 4
		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		// echo $rid;
		Doo::loadModel ( 'accountItem' );
		Doo::loadModel ( 'verify' );
		Doo::loadModel ( 'receipt' );
		$receipt = new receipt ();
		$verify = new verify ();
		$accountItem = new accountItem ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		Doo::loadModel ( "role" );
		$role = new role ();
		
		$receiptDetail = $receipt->getOne ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)',
				'asArray' => true 
		) );
		if (empty ( $receiptDetail ))
			return "/saeaCreate";
		
		$acItem = $accountItem->find ( array (
				'asArray' => true 
		) );
		$veList = $verify->find ( array (
				'asArray' => true 
		) );
		
		foreach ( $veList as $key => $value ) {
			$v = json_decode ( $value ['staff'] );
			
			$list = array ();
			foreach ( $v as $n => $m ) {
				if ($m ['1'] == 'ROLE') {
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $m [0],
							'asArray' => true 
					) );
					$v [$n] [1] = $roleInfo ['name'];
					array_push ( $list, $roleInfo ['name'] );
				} else {
					array_push ( $list, $v [$n] [1] );
				}
			}
			$veList [$key] ['staff'] = implode ( '>', $list );
		}
		
		// 配置编辑信息
		$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );
		foreach ( $acItem as $key => $value ) {
			foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
			foreach ( $accountItemList [$this->OTHER] as $k => $v ) {
				if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {
					$acItem [$key] ['price'] = $v ['price'];
				}
			}
		}
		
		$data ['category'] = $lCategory->find ( array (
				'asArray' => true 
		) );
		$data ['cSum'] = $accountItemList ['cSum'];
		$data ['sum'] = $receiptDetail ['sum'];
		$data ['receiptDetail'] = $receiptDetail;
		$data ['veList'] = $veList;
		$data ['acItem'] = $acItem;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'saeaBorad';
		$data ['verify'] = $receiptDetail ['verify'];
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$data ['rid'] = $rid;
		
		$this->render ( "/admin/saea_edit", $data );
	}
	function updateReceipt() {
		$agency = $this->get_args ( 'agency' );
		$travel = $this->get_args ( 'travel' );
		$train = $this->get_args ( 'train' );
		$other = $this->get_args ( 'other' );
		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		
		if (! empty ( $explanation )) {
			
			Doo::loadModel ( 'receipt' );
			Doo::loadModel ( 'receiptDetail' );
			Doo::loadModel ( 'accountItem' );
			$accountItem = new accountItem ();
			$receipt = new receipt ();
			
			Doo::loadModel ( 'execute' );
			$execute = new execute ();
			
			$receiptDetail = $receipt->getOne ( array (
					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=7 or status=4)',
					'asArray' => true 
			) );
			if (empty ( $receiptDetail ))
				return "/saeaBorad";
			
			if ($receiptDetail ['Rtype'] == 1)
				$executeDetail = $execute->getOne ( array (
						'where' => 'mold="借款费用执行人"',
						'asArray' => true 
				) );
			else
				$executeDetail = $execute->getOne ( array (
						'where' => 'mold="报销单执行人"',
						'asArray' => true 
				) );
			
			$aItem = $accountItem->find ( array (
					'asArray' => true 
			) );
			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
			$ag = $tr = $ta = $ot = 0;
			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
			
			foreach ( $aItem as $key => $value ) {
				if ($value ['category'] == $this->AGENCY) {
					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
						array_push ( $accountJson [$this->AGENCY], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $agency [$ag], 2, '.', '' ) 
						) );
						$sum += $agency [$ag];
						$agencySum += $agency [$ag];
					}
					$ag ++;
				}
				
				if ($value ['category'] == $this->TRAVEL) {
					if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {
						array_push ( $accountJson [$this->TRAVEL], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $travel [$tr], 2, '.', '' ) 
						) );
						$sum += $travel [$tr];
						$travelSum += $travel [$tr];
					}
					$tr ++;
				}
				
				if ($value ['category'] == $this->TRAIN) {
					if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {
						array_push ( $accountJson [$this->TRAIN], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $train [$ta], 2, '.', '' ) 
						) );
						$sum += $train [$ta];
						$trainSum += $train [$ta];
					}
					$ta ++;
				}
				
				if ($value ['category'] == $this->OTHER) {
					if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {
						array_push ( $accountJson [$this->OTHER], array (
								'aid' => $value ['aid'],
								'name' => $value ['name'],
								'price' => number_format ( $other [$ot], 2, '.', '' ) 
						) );
						$sum += $other [$ot];
						$otherSum += $other [$ot];
					}
					$ot ++;
				}
			}
			$accountJson ['cSum'] = array (
					'agencySum' => number_format ( $agencySum, 2, '.', '' ),
					'travelSum' => number_format ( $travelSum, 2, '.', '' ),
					'trainSum' => number_format ( $trainSum, 2, '.', '' ),
					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 
			);
			
			// 报销单
			$rid = $receipt->rid = $receiptDetail ['rid'];
			$receipt->accountItem = json_encode ( $accountJson );
			$receipt->staff = $this->staff [0] ['sid'];
			$receipt->sum = number_format ( $sum, 2, '.', '' );
			$receipt->date = date ( "Y-m-d" );
			$receipt->cid = $cid;
			
			if (($receiptDetail ['status'] != 4)) {
				if ($receiptDetail ['Rtype'] == 1)
					$receipt->status = 7;
				else
					$receipt->status = 5;
			}
			if ($receiptDetail != 4 && ! empty ( $verify ))
				$receipt->verify = $verify;
			$receipt->executeCopy = $executeDetail ['staff'];
			
			$receipt->explanation = $explanation;
			$receipt->update ();
			
			$receiptDetail = new receiptDetail ();
			$receiptDetail->delete ( array (
					'where' => 'rid=' . $rid 
			) );
			
			// 报销详情
			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->AGENCY;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->TRAVEL;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->TRAIN] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->TRAIN;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			foreach ( $accountJson [$this->OTHER] as $key => $value ) {
				$receiptDetail = new receiptDetail ();
				$receiptDetail->staff = $this->staff [0] ['sid'];
				$receiptDetail->item = $value ['name'];
				$receiptDetail->itemCategory = $this->OTHER;
				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
				$receiptDetail->date = date ( "Y-m-d" );
				$receiptDetail->cid = $cid;
				$receiptDetail->rid = $rid;
				$receiptDetail->status = 4;
				$receiptDetail->insert ();
			}
			
			// return "/referReceipt/".$rid;
		}
		return "/saeaBorad";
	}
	function approvedReceipt() {
		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		Doo::loadModel ( 'receipt' );
		Doo::loadModel ( 'receiptDetail' );
		$receipt = new receipt ();
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'statistics' );
		Doo::loadModel ( 'itemStatistics' );
		$statistics = new statistics ();
		$itemStatistics = new itemStatistics ();
		Doo::loadModel ( "verify" );
		$verify = new verify ();
		
		// 审批状态的判定
		$receiptDetailList = $receipt->getOne ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=4 or status=5 or status=7)',
				'asArray' => true 
		) );
		if (empty ( $receiptDetailList ))
			return "/saeaBorad";
		
		$verifyDetail = $verify->getOne ( array (
				'where' => ' vid =' . $receiptDetailList ['verify'],
				'asArray' => true 
		) );
		$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
		
		if (empty ( $receiptDetailList ['nowStaff'] )) {
			
			$nowStaff = "";
			$nowStaffList = array ();
			if ($verifyDetail [0] [1] == 'ROLE') {
				$vStaffString = json_decode ( $verifyDetail [0] [3] );
				foreach ( $vStaffString as $key => $value ) {
					$staffK = explode ( "_", $value );
					array_push ( $nowStaffList, $staffK [0] );
				}
				$nowStaff = implode ( ',', $nowStaffList );
			} else {
				$nowStaff = $verifyDetail [0] [0];
			}
			$receipt->nowStaff = $nowStaff;
		}
		// echo $nowStaff;
		// print_r($verifyDetail);die;
		
		$receipt->rid = $receiptDetailList ['rid'];
		$receipt->date = date ( "Y-m-d" );
		$receipt->status = 2;
		$receipt->update ();
		
		$receiptDetail->status = 2;
		$receiptDetail->update ( array (
				'where' => 'rid=' . $receiptDetailList ['rid'] 
		) );
		
		Doo::loadModel ( "receiptLog" );
		$receiptLog = new receiptLog ();
		Doo::loadModel ( "verify" );
		$verify = new verify ();
		
		$receiptInfo = $receipt->getOne ( array (
				'where' => 'rid=' . $rid,
				'asArray' => true 
		) );
		$vr = $verify->getOne ( array (
				'where' => 'vid=' . $receiptInfo ['verify'],
				'asArray' => true 
		) );
		
		$jd = json_decode ( $vr ['staff'] );
		$roleId = 0;
		
		foreach ( $jd as $key => $value ) {
			if ($value [1] == 'ROLE') {
				$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
				if ($pos !== false) {
					$roleId = $value [0];
				}
			}
		}
		
		// 审批日志
		// echo $roleId;die;
		
		if (! empty ( $roleId )) {
			Doo::loadModel ( "role" );
			$role = new role ();
			$roleInfo = $role->getOne ( array (
					'where' => 'rid=' . $roleId,
					'asArray' => true 
			) );
			
			$receiptLog->rolename = $roleInfo ['name'];
		}
		
		$receiptLog->username = $this->staff [0] ['username'];
		$receiptLog->uid = $this->staff [0] ['sid'];
		$receiptLog->date = date ( "Y-m-d" );
		$receiptLog->opinion = '提交审批';
		$receiptLog->img = $this->staff [0] ['avatar'];
		$receiptLog->status = 2;
		$receiptLog->rid = $rid;
		$receiptLog->insert ();
		
		// statistics item
		$dateArray = explode ( "-", $receiptDetailList ['date'] );
		$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];
		
		$accountItem = json_decode ( $receiptDetailList ['accountItem'], true );
		
		
		$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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		$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 '<br/>';
							
							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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		// 获取审批日志
		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 .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		
		$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 '<br/>';
							
							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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		
		// 获取审批日志
		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 .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';
		}
		
		$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'] . ')&nbsp;&nbsp;';
			}
			$dayList [$key] ['staff'] = $remitString;
			$dayList [$key] ['ridKey'] = strtotime ( $value ['executeDate'] );
		}
		
		// print_r($dayList);
		$mothHtml = "";
		for($i = 1; $i <= 12; $i ++) {
			if ($moth == $i)
				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		$dayHtml = "";
		if ($day != "DAY" || $moth != "MONTH") {
			for($i = 1; $i <= 31; $i ++) {
				if ($day == $i)
					$dayHtml .= '<option value="' . $i . '" selected >' . $i . '日</option>';
				else
					$dayHtml .= '<option value="' . $i . '" >' . $i . '日</option>';
			}
		}
		
		$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 .= '<table class="table table-bordered table-condensed"><thead><tr><th class="taC" colspan="3">' . $sinfo ['category'] . '-' . $sinfo ['username'] . '</th></tr></thead><tbody>
					<tr><td class="taC">费用单号</td><td class="taC">汇款金额</td></tr>';
			$au = 0;
			foreach ( $rplist as $k => $v ) {
				if ($value ['staff'] == $v ['staff']) {
					$html .= '<tr><td><a href="#saea-detail" node-invoice="INFO" data-iskey="' . $XDeode->encode ( $v ['rid'] ) . '" data-toggle="modal">' . $v ['receiptOrder'] . '</a></td><td class="taR">￥' . $v ['amount'] . '</td></tr>';
					$au += $v ['amount'];
				}
			}
			$html .= '<tr><td>合计</td><td class="taR"><b>￥' . $au . '</b></td></tr></tbody></table>';
		}
		$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 = $rinfo ['sum'] - $rinfo ['loanSum'];
		$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 = '<div class="modal-dialog modal-lg"><div class="modal-content"><div class="modal-header"><h3>费用详情</h3></div><div class="modal-body saeaList">';
		
		if ($rinfo ['Rtype'] == 1) { // 借款费用
			$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>
					<tr><th colspan="2" class="taC">借款费用</th></tr>';
			
			foreach ( $rinfo ['loanItem'] ['借款费用'] as $value ) {
				$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>
						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>
						<tr><th class="taC" colspan="2">费用说明</th>
						</tr><tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>
						<tr class="warning"><td class="taR"><b>（' . $rinfo ['receiptOrder'] . '）本次费用合计</b></td>
						<td class="taR"><b style="font-size:24px">￥' . $rinfo ['loanSum'] . '</b><br>' . $rinfo ['loanSumCN'] . '</td></tr>
						</tbody></table>';
			if ($rinfo ['loanRid'] != 0 && ! empty ( $rinfo ['accountItem'] )) {
				
				$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>';
				
				$html .= '<tr><th colspan="2" class="taC">日常相关费用</th></tr>';
				foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {
					$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
				}
				$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . '</td></tr>';
				
				$html .= '<tr><th colspan="2" class="taC">差旅相关费用</th></tr>';
				foreach ( $rinfo ['accountItem'] ['差旅相关费用'] as $value ) {
					$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
				}
				$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['travelSum'] . '</td></tr>';
				
				$html .= '<tr><th colspan="2" class="taC">培训班费用</th></tr>';
				foreach ( $rinfo ['accountItem'] ['培训班费用'] as $value ) {
					$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
				}
				$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['trainSum'] . '</td></tr>';
				
				$html .= '<tr><th colspan="2" class="taC">其他</th></tr>';
				foreach ( $rinfo ['accountItem'] ['其他'] as $value ) {
					$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
				}
				$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['otherSum'] . '</td></tr>';
				
				$html .= '<tr><th colspan="2" class="taC">报销金额调整</th></tr>';
				foreach ( $rinfo ['reviseDetail'] as $value ) {
					$html .= '<tr><th><span class="interval">|</span>' . $value ['name'] . '：' . $value ['description'] . '</th>
							<td class="taR">￥' . $value ['price'] . '</td></tr>';
				}
				$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['revisePrice'] . '</td></tr>';
				
				$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>
						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>
						<tr><th class="taC" colspan="2">报销说明</th></tr>		
						<tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>		
						<tr class="warning"><td class="taR"><b>（' . $rinfo ['receiptOrder'] . '）本次报销费用合计</b></td>		
						<td class="colGreed taR"><b style="font-size:24px">￥' . $rinfo ['sum'] . '</b><br>' . $rinfo ['sumCN'] . '</td></tr>		
						<tr';
				if ($rinfo ['relust'] >= 0) {
					$html .= 'class="success"';
				} else {
					$html .= 'class="error"';
				}
				$html .= '><td class="taR"><b>借款结余</b></td>
						<td class="taR"><b style="font-size:24px">￥' . $rinfo ['relust'] . '</b><br>' . $rinfo ['relustCN'] . '</td></tr>
	  					</tbody></table>
						';
			}
		} elseif ($rinfo ['Rtype'] == 2) { // 对公汇款
			
			$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>
					<tr><th colspan="2" class="taC">办事处相关费用</th></tr>';
			
			foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {
				$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . '</td></tr>';
			
			$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>
						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>
						<tr><th class="taC" colspan="2">费用说明</th>
						</tr><tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>
						<tr class="warning"><td class="taR"><b>（' . $rinfo ['receiptOrder'] . '）本次费用合计</b></td>
						<td class="taR"><b style="font-size:24px">￥' . $rinfo ['sum'] . '</b><br>' . $rinfo ['sumCN'] . '</td></tr>
						</tbody></table>';
		} else {
			
			$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>';
			
			$html .= '<tr><th colspan="2" class="taC">日常相关费用</th></tr>';
			foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {
				$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . '</td></tr>';
			
			$html .= '<tr><th colspan="2" class="taC">差旅相关费用</th></tr>';
			foreach ( $rinfo ['accountItem'] ['差旅相关费用'] as $value ) {
				$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['travelSum'] . '</td></tr>';
			
			$html .= '<tr><th colspan="2" class="taC">培训班费用</th></tr>';
			foreach ( $rinfo ['accountItem'] ['培训班费用'] as $value ) {
				$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['trainSum'] . '</td></tr>';
			
			$html .= '<tr><th colspan="2" class="taC">其他</th></tr>';
			foreach ( $rinfo ['accountItem'] ['其他'] as $value ) {
				$html .= '<tr><th>' . $value ['name'] . '</th>
							<td  width="140" class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['accountItem'] ['cSum'] ['otherSum'] . '</td></tr>';
			
			$html .= '<tr><th colspan="2" class="taC">报销金额调整</th></tr>';
			foreach ( $rinfo ['reviseDetail'] as $value ) {
				$html .= '<tr><th><span class="interval">|</span>' . $value ['name'] . '：' . $value ['description'] . '</th>
							<td class="taR">￥' . $value ['price'] . '</td></tr>';
			}
			$html .= '<tr><th class="taR">合计</th>
						<td class="colGreen taR">￥' . $rinfo ['revisePrice'] . '</td></tr>';
			
			$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>
						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>
						<tr><th class="taC" colspan="2">报销说明</th></tr>
						<tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>
						<tr class="warning"><td class="taR"><b>（' . $rinfo ['receiptOrder'] . '）本次报销费用合计</b></td>
						<td class="colGreed taR"><b style="font-size:24px">￥' . $rinfo ['sum'] . '</b><br>' . $rinfo ['sumCN'] . '</td></tr>';
			
			$html .= '</tbody></table>';
			
			/*
			 * <table class="table table-bordered table-condensed table-hover"> <tbody> <tr><th colspan="2" class="taC">日常相关费用</th></tr> <!-- loop receiptList' value.accountItem.日常相关费用 --> <tr><th>{{receiptList' value' value.name}}</th><td width="140" class="taR">￥{{receiptList' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">￥{{receiptList' value.accountItem.cSum.agencySum}}</td></tr>
			 * <tr><th colspan="2" class="taC">差旅相关费用</th></tr> <!-- loop receiptDetail' value.accountItem.差旅相关费用 --> <tr><th>{{receiptDetail' value' value.name}}</th><td width="140" class="taR">￥{{receiptDetail' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">￥{{receiptDetail' value.accountItem.cSum.travelSum}}</td></tr>
			 * <tr><th colspan="2" class="taC">培训班费用</th></tr> <!-- loop receiptDetail' value.accountItem.培训班费用 --> <tr><th>{{receiptDetail' value' value.name}}</th><td width="140" class="taR">￥{{receiptDetail' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">￥{{receiptDetail' value.accountItem.cSum.trainSum}}</td></tr>
			 * <tr><th colspan="2" class="taC">其他</th></tr> <!-- loop receiptDetail' value.accountItem.其他 --> <tr><th>{{receiptDetail' value' value.name}}</th><td width="140" class="taR">￥{{receiptDetail' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">￥{{receiptDetail' value.accountItem.cSum.otherSum}}</td></tr>
			 * <tr><th colspan="2" class="taC">报销金额调整</th></tr> <!-- loop receiptList' value.reviseDetail --> <tr><th><span class="interval">|</span>{{receiptList' value' value.name}}：{{receiptList' value' value.description}}</th><td class="taR">￥{{receiptList' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colOrange taR">￥{{receiptList' value.revisePrice}}</td></tr>
			 * <tr><th class="taC" colspan="2">产生费用所在办事处</th></tr> <tr><th style="text-align:center" colspan="2">{{receiptDetail' value.category}}</th></tr> <tr><th class="taC" colspan="2">报销说明</th></tr> <tr><td colspan="2">{{receiptDetail' value.explanation}}</td></tr> <tr class="warning"><td class="taR"><b>（{{receiptDetail' value.receiptOrder}}）本次报销费用合计</b></td> <td class="colGreed taR"><b style="font-size:24px">￥{{receiptDetail' value.sum}}</b><br>{{receiptDetail' value.sumCN}}</td></tr>
			 * </tbody> </table>
			 */
		}
		// print_r($verifyStaff);die;
		$html .= '<table class="table table-bordered table-condensed"><tbody><tr><th class="taC" width="90">审批人</th><th class="taC">审批意见</th></tr>';
		foreach ( $verifyStaff as $key => $value ) {
			$key = trim ( strtr ( $key, '_R', '  ' ) );
			$sinfo = $staff->getOne ( array (
					'select' => 'username',
					'where' => ' sid=' . $key,
					'asArray' => true 
			) );
			$html .= '<tr><td>' . $sinfo ['username'] . '</td><td>' . $value ['opinion'] . '</td></tr>';
		}
		$html .= '</tbody></table>';
		
		$html .= '<table class="table table-bordered table-condensed"><tbody><tr><th class="taC" width="90">执行人</th><th class="taC">执行意见</th></tr>';
		foreach ( $rinfo ['executeCopy'] as $value ) {
			$html .= '<tr><td>' . $value [1] . '</td><td>' . $value ['opinion'] . '</td></tr>';
		}
		$html .= '</tbody></table>';
		
		$html .= '<table class="table table-bordered table-condensed"><tr class="warning"><td class="taR"><b>汇款金额</b></td>
				<td  width="140" class="taR"><b style="font-size:24px">￥' . $rinfo ['amount'] . '</b><br>' . $rinfo ['amountCN'] . '</td>
			</tr></table>';
		
		$html .= '</div><div class="modal-footer"><a href="#" class="button btn-gray" data-dismiss="modal" aria-hidden="true">关闭</a></div></div></div>';
		
		echo json_encode ( array (
				'status' => 1,
				'html' => $html 
		) );
		
		die ();
	}
	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 .= '<a class="fL" href="#comment" onclick=showOpinion("' . $v ['receiptOrder'] . '") data="" data-toggle="modal">&nbsp;' . $v ['receiptOrder'] . '、</a>';
					}
					$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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		$data ['year'] = $year;
		$data ['mothHtml'] = $mothHtml;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'approval';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/saeaReportListPay", $data );
	}
	function revocationAdjustment() {
		$sid = isset ( $this->params ['sid'] ) && is_numeric ( $this->params ['sid'] ) ? $this->params ['sid'] : 0;
		$price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999;
		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
		
		// echo $price;die;
		
		if ((! empty ( $sid )) && ($price != - 99999) && (! empty ( $rid ))) {
			Doo::loadModel ( 'receipt' );
			$receipt = new receipt ();
			
			$receiptDetail = $receipt->getOne ( array (
					'where' => 'rid=' . $rid,
					'asArray' => true 
			) );
			if (empty ( $receiptDetail ['reviseDetail'] ))
				return "/approval";
			
			$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );
			$RD = array ();
			foreach ( $reviseDetail as $key => $value ) {
				if ($value ['price'] == $price && $value ['sid'] == $sid)
					continue;
				array_push ( $RD, $value );
			}
			
			$reviseDetailString = json_encode ( $RD );
			$receipt->reviseDetail = $reviseDetailString;
			$receipt->sum = $receiptDetail ['sum'] - $price;
			$receipt->revisePrice = $receiptDetail ['revisePrice'] - $price;
			$receipt->update ( array (
					'where' => 'rid=' . $rid 
			) );
		}
		// approvalEdi/37
		return "/approvalEdi/" . $rid;
	}
	function updateApprovalReceipt() {
		$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
		$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
		$Locate = $this->get_args ( 'Locate' ) && is_numeric ( $this->get_args ( 'Locate' ) ) ? $this->get_args ( 'Locate' ) : 0;
		$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 
			) );
			
			if (empty ( $receiptDetail ))
				return "/approval";
			
			$verifyDetail = $verify->getOne ( array (
					'where' => ' vid =' . $receiptDetail ['verify'],
					'asArray' => true 
			) );
			$verifyString = $verifyDetail ['staff'];
			$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
			
			$verifyStaff = json_decode ( $receiptDetail ['verifyStaff'], true );
			
			if (empty ( $opinion )) {
				if ($status == 3)
					$opinion = "终止";
				else
					$opinion = "同意支付";
			}
			
			$nowStaff = 0;
			$nowStaffList = array ();
			
			if (empty ( $verifyStaff )) {
				
				// 还需加入是否已经进入角色审批
				if ($verifyDetail [0] [1] == 'ROLE') {
					
					$vStaffString = json_decode ( $verifyDetail [0] [3] );
					
					foreach ( $vStaffString as $key => $value ) {
						$staffK = explode ( "_", $value );
						if ($staffK [0] != $this->staff [0] ['sid'])
							array_push ( $nowStaffList, $staffK [0] );
					}
					
					// print_r($verifyDetail);
					// die;
					if (! empty ( $nowStaffList )) {
						$nowStaff = implode ( ',', $nowStaffList );
						$verifyStaff = array (
								$this->staff [0] ['sid'] . "_R" => array (
										'date' => date ( 'Y-m-d' ),
										'opinion' => $opinion,
										'status' => $status,
										'nextStaff' => $verifyDetail [0] [0],
										'ROLE' => 1 
								) 
						);
					} else {
						$nowStaff = $verifyDetail [1] [0];
						$verifyStaff = array (
								$this->staff [0] ['sid'] . "_R" => array (
										'date' => date ( 'Y-m-d' ),
										'opinion' => $opinion,
										'status' => $status,
										'nextStaff' => $verifyDetail [1] [0] 
								) 
						);
					}
				} else {
					
					if ($verifyDetail [1] [1] == 'ROLE') {
						$vStaffString = json_decode ( $verifyDetail [1] [3] );
						// echo "dd";
						foreach ( $vStaffString as $key => $value ) {
							$staffK = explode ( "_", $value );
							array_push ( $nowStaffList, $staffK [0] );
						}
						$nowStaff = implode ( ',', $nowStaffList );
						$verifyStaff = array (
								$this->staff [0] ['sid'] => array (
										'date' => date ( 'Y-m-d' ),
										'opinion' => $opinion,
										'status' => $status,
										'nextStaff' => $verifyDetail [1] [0],
										'ROLE' => 1 
								) 
						);
					} else {
						$nowStaff = $verifyDetail [1] [0];
						$verifyStaff = array (
								$this->staff [0] ['sid'] => array (
										'date' => date ( 'Y-m-d' ),
										'opinion' => $opinion,
										'status' => $status,
										'nextStaff' => $verifyDetail [1] [0] 
								) 
						);
					}
				}
				
				if ($status == 3)
					$verifyStaff = array (
							'final' => $status,
							$this->staff [0] ['sid'] => array (
									'date' => date ( 'Y-m-d' ),
									'opinion' => $opinion,
									'status' => $status 
							) 
					);
				
				$vStaffString = json_encode ( $verifyStaff );
				$receipt->nowStaff = $nowStaff;
				$receipt->verifyStaff = $vStaffString;
			} else {
				$VS = end ( $verifyStaff );
				
				// 非角色审批
				if (! array_key_exists ( $this->staff [0] ['sid'], $verifyStaff ) && ! isset ( $VS ['ROLE'] )) {
					$nextStaff = 0;
					$roleSTF = false;
					foreach ( $verifyDetail as $key => $value ) {
						if ($value [0] == $this->staff [0] ['sid'] && $value [1] != 'ROLE') {
							if (isset ( $verifyDetail [$key + 1] )) {
								$nextStaff = $verifyDetail [$key + 1] [0];
								if ($verifyDetail [$key + 1] [1] == 'ROLE')
									$roleSTF = true;
							}
							break;
						}
					}
					
					if (! $roleSTF) {
						$nowStaff = $nextStaff;
						$verifyStaff [$this->staff [0] ['sid']] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status,
								'nextStaff' => $nextStaff 
						);
					} else {
						// 获取角色下的所有用户ID
						$nowStaffList = array ();
						foreach ( $verifyDetail as $vfk ) {
							if ($vfk [1] == 'ROLE') {
								$vStaffString = json_decode ( $vfk [3] );
								foreach ( $vStaffString as $key => $value ) {
									$staffK = explode ( "_", $value );
									array_push ( $nowStaffList, $staffK [0] );
								}
							}
						}
						
						$nowStaff = implode ( ',', $nowStaffList );
						$verifyStaff [$this->staff [0] ['sid']] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status,
								'nextStaff' => $nextStaff,
								'ROLE' => 0 
						);
					}
					
					if ($status == 3) {
						$verifyStaff ['final'] = $status;
						$verifyStaff [$this->staff [0] ['sid']] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status 
						);
					}
					$vStaffString = json_encode ( $verifyStaff );
					$receipt->nowStaff = $nowStaff;
					$receipt->verifyStaff = $vStaffString;
				}
				
				// 角色审批
				if (isset ( $VS ['ROLE'] )) {
					
					// 找出角色人 当前审批角色组
					$verifyJSStaff = array ();
					$nowStaffList2 = array ();
					foreach ( $verifyDetail as $key => $value ) {
						if ($value [1] == 'ROLE' && $value [0] == $VS ['nextStaff']) {
							$verifyJSStaff = json_decode ( $value [3] );
							foreach ( $verifyJSStaff as $m ) {
								$staffK = explode ( "_", $m );
								array_push ( $nowStaffList2, $staffK [0] );
							}
							// print_r($nowStaffList2);
						}
					}
					
					$RoleVerifyStaff = array ();
					foreach ( $verifyStaff as $key => $value ) {
						if (isset ( $value ['ROLE'] ) && $value ['ROLE'] == 1 && $VS ['nextStaff'] == $value ['nextStaff']) {
							foreach ( $nowStaffList2 as $m ) {
								if ($key == $m . "_R")
									$RoleVerifyStaff [$key] = $value;
							}
						}
					}
					
					// print_r($verifyStaff);
					// print_r($nowStaffList2);
					// print_r($RoleVerifyStaff);
					// if (!array_key_exists($this->staff[0]['sid'],$RoleVerifyStaff)){
					// print_r($verifyJSStaff);
					$jsCount = count ( $verifyJSStaff ) - 1; // echo $jsCount;die;
					if ($jsCount == count ( $RoleVerifyStaff )) { // 或者
					                                              // 下一个审批人ID
						
						$nextStaff = 0;
						$falg = false;
						foreach ( $verifyDetail as $key => $value ) {
							if ($value [0] == $VS ['nextStaff'] && $value [1] == 'ROLE') {
								
								if (isset ( $verifyDetail [$key + 1] ) && $verifyDetail [$key + 1] [1] == 'ROLE') {
									$falg = true;
									$vStaffString = json_decode ( $verifyDetail [$key + 1] [3] );
									$nowStaffList = array ();
									foreach ( $vStaffString as $v ) {
										$staffK = explode ( "_", $v );
										array_push ( $nowStaffList, $staffK [0] );
									}
									$nowStaff = implode ( ',', $nowStaffList );
									
									$nextStaff = $verifyDetail [$key + 1] [0];
								} elseif (isset ( $verifyDetail [$key + 1] )) {
									$nextStaff = $verifyDetail [$key + 1] [0];
									$nowStaff = $nextStaff;
								} else
									$nowStaff = '';
								break;
							}
						}
						
						if ($falg)
							$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
									'date' => date ( 'Y-m-d' ),
									'opinion' => $opinion,
									'status' => $status,
									'nextStaff' => $nextStaff,
									'ROLE' => 1 
							);
						else
							$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
									'date' => date ( 'Y-m-d' ),
									'opinion' => $opinion,
									'status' => $status,
									'nextStaff' => $nextStaff 
							);
						
						// print_r($verifyStaff);
						// echo $nowStaff;die;
					} else { // 进入下一个角色或者审批人
						
						/*
						 *
						 */
						
						// echo str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']);
						//
						$nowStaff = str_replace ( $this->staff [0] ['sid'], '', $receiptDetail ['nowStaff'] );
						
						$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status,
								'nextStaff' => $VS ['nextStaff'],
								'ROLE' => 1 
						);
						
						// print_r($verifyStaff);
						// die;
					}
					
					if ($status == 3) {
						$verifyStaff ['final'] = $status;
						$verifyStaff [$this->staff [0] ['sid']] = array (
								'date' => date ( 'Y-m-d' ),
								'opinion' => $opinion,
								'status' => $status 
						);
					}
					$vStaffString = json_encode ( $verifyStaff );
					$receipt->verifyStaff = $vStaffString;
					$receipt->nowStaff = $nowStaff;
					
					// die;
					// }
					// print_r($verifyStaff);
					// die;
				}
				// print_r($verifyStaff);die;
			}
			
			// print_r($verifyDetail);
			
			$roleKey = 0;
			$roleId = 0;
			$verifyDetailCopy = array ();
			foreach ( $verifyDetail as $k => $v ) {
				if ($v [1] == 'ROLE') {
					$roleId = $v [0];
					$roleVerify = json_decode ( $v [3], true );
					$roleKey = $k;
					$roleArray = array ();
					foreach ( $roleVerify as $o => $p ) {
						$staffID = explode ( '_', $p );
						$exp = array (
								0 => $staffID [0],
								1 => $staffID [1] 
						);
						array_push ( $roleArray, $exp );
					}
					$verifyDetailCopy [$v [0]] = $roleArray;
				}
			}
			// print_r($verifyDetail);
			foreach ( $verifyDetailCopy as $k => $v ) {
				foreach ( $verifyDetail as $m => $n ) {
					if ($n [0] == $k) {
						array_splice ( $verifyDetail, $m, 1, $v );
					}
				}
			}
			
			// die;
			// if (!empty($roleArray))
			// array_splice($verifyDetail,$roleKey,1,$roleArray);
			
			// echo $roleId;
			// print_r($verifyStaff);
			// print_r($verifyDetail);
			// die;
			Doo::loadModel ( "receiptLog" );
			$receiptLog = new receiptLog ();
			// 审批日志
			if (! isset ( $verifyStaff ['final'] )) {
				
				if (! empty ( $roleId )) {
					Doo::loadModel ( "role" );
					$role = new role ();
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $roleId,
							'asArray' => true 
					) );
					
					$receiptLog->rolename = $roleInfo ['name'];
				}
				
				$receiptLog->username = $this->staff [0] ['username'];
				$receiptLog->uid = $this->staff [0] ['sid'];
				$receiptLog->date = date ( "Y-m-d" );
				$receiptLog->opinion = $opinion;
				$receiptLog->img = $this->staff [0] ['avatar'];
				$receiptLog->status = 1;
				$receiptLog->rid = $rid;
				$receiptLog->insert ();
			}
			
			if (isset ( $verifyStaff ['final'] )) { // rDetail
				$receipt->verifyBreakup = $verifyString;
				$receipt->status = 3;
				$receiptDetailObj->status = 3;
				$receiptDetailObj->update ( array (
						'where' => 'rid=' . $rid 
				) );
				
				if (! empty ( $roleId )) {
					Doo::loadModel ( "role" );
					$role = new role ();
					$roleInfo = $role->getOne ( array (
							'where' => 'rid=' . $roleId,
							'asArray' => true 
					) );
					
					$receiptLog->rolename = $roleInfo ['name'];
				}
				
				$receiptLog->username = $this->staff [0] ['username'];
				$receiptLog->uid = $this->staff [0] ['sid'];
				$receiptLog->date = date ( "Y-m-d" );
				$receiptLog->opinion = $opinion;
				$receiptLog->img = $this->staff [0] ['avatar'];
				$receiptLog->status = 3;
				$receiptLog->rid = $rid;
				$receiptLog->insert ();
				
				// 微信企业号通知
				$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 );
			}
			$receipt->amount = $amount;
			$receipt->update ( array (
					'where' => ' rid = ' . $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 ))
				return "/approval";
			
			$reviseDetail = array ();
			if (empty ( $receiptDetail ['reviseDetail'] )) {
				array_push ( $reviseDetail, array (
						'sid' => $this->staff [0] ['sid'],
						'name' => $this->staff [0] ['username'],
						'description' => $description,
						'price' => $price 
				) );
				$reviseDetailString = json_encode ( $reviseDetail );
				$receipt->reviseDetail = $reviseDetailString;
				$receipt->revisePrice = $price;
				$receipt->sum = bcadd ( $receiptDetail ['sum'], $price, 2 );
			} else {
				$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );
				array_push ( $reviseDetail, array (
						'sid' => $this->staff [0] ['sid'],
						'name' => $this->staff [0] ['username'],
						'description' => $description,
						'price' => $price 
				) );
				$reviseDetailString = json_encode ( $reviseDetail );
				$receipt->reviseDetail = $reviseDetailString;
				$receipt->revisePrice = round ( $price, 2 ) + round ( $receiptDetail ['revisePrice'], 2 );
				$receipt->sum = bcadd ( $receiptDetail ['sum'], $price, 2 );
			}
			$receipt->update ( array (
					'where' => 'rid=' . $rid 
			) );
		}
		return '/approvalEdi/' . $rid;
	}
	function personalCollect() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
		
		$path = SITE_PATH . $this->PERSONALCOLLECTCACHEPATH . "personalCollect_" . $year . ".htmls";
		$this->showCache ( $path );
		
		Doo::loadModel ( "receiptDetail" );
		Doo::loadModel ( "itemStatistics" );
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		$itemStatistics = new itemStatistics ();
		$receiptDetail = new receiptDetail ();
		
		$receiptCollectList = $receiptDetail->find ( array (
				'select' => 'staff,sum(price) as price,itemCategory,Month(date) as month',
				'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,
				'groupby' => 'itemCategory,Month(date)',
				'asArray' => true 
		) );
		$data ['itemStatisticsList'] = $itemStatistics->find ( array (
				'where' => 'staff=' . $this->staff [0] ['sid'],
				'asArray' => true 
		) );
		
		// create collect html
		$collectArray = array (
				'日常相关费用' => array (),
				'差旅相关费用' => array (),
				'培训班费用' => array (),
				'其他' => array () 
		);
		$adjustment = array ();
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用' );
		array_push ( $collectArray ['日常相关费用'], $collectHtml );
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用' );
		array_push ( $collectArray ['差旅相关费用'], $collectHtml );
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用' );
		array_push ( $collectArray ['培训班费用'], $collectHtml );
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '其他' );
		array_push ( $collectArray ['其他'], $collectHtml );
		
		$data ['collectArray'] = $collectArray;
		// statistics html
		$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		// Adjustment price html
		$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );
		array_push ( $adjustment, $collectHtml );
		$data ['adjustment'] = $adjustment;
		
		// total price html
		$collectHtml = "";
		$total = 0;
		for($i = 1; $i <= 12; $i ++) {
			$sumPrice = 0;
			foreach ( $receiptCollectList as $key => $value ) {
				if ($value ['month'] == $i) {
					$sumPrice += $value ['price'];
				}
			}
			if ($sumPrice == 0)
				$collectHtml .= '<td class="taR">-</td>';
			else
				$collectHtml .= '<td class="taR">￥' . $sumPrice . '</td>';
			$total += $sumPrice;
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $total . '</td>';
		$data ['totalPrice'] = $collectHtml;
		$data ['year'] = $year;
		$data ['totalYear'] = $total;
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'personalCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		// year staff status 2,4
		if ($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 .= '<td class="taR">￥' . $v ['price'] . '</td>';
						$falg = false;
						break;
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			$html .= '<td class="taR colGreen"><b>￥' . $asum . '</b></td>';
			$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 .= '<td class="taR">-</td>';
			else
				$collectHtml .= '<td class="taR">￥' . $sumPrice . '</td>';
			$total += $sumPrice;
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $total . '</td>';
		
		// statistics html
		$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		$data ['collectArray'] = $collectArray;
		$data ['adjustment'] = $adjustment;
		$data ['totalPrice'] = $collectHtml;
		$data ['totalYear'] = $total;
		$data ['year'] = $year;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'personalCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		// year staff status 2,4
		if ($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 ();
		
		$LcategoryList = $Lcategory->find ( array (
				'asArray' => true 
		) ); // 'staff='.$this->staff[0]['sid']." and
		$itemStatisticsList = $itemStatistics->find ( array (
				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
				'where' => " Year(date)=" . $year,
				'groupby' => 'cid,Month(date)',
				'asArray' => true 
		) );
		
		// ceatre companyCollectHtml
		foreach ( $LcategoryList as $value ) {
			$html = "";
			$asum = 0;
			for($i = 1; $i <= 12; $i ++) {
				$falg = true;
				foreach ( $itemStatisticsList as $v ) {
					if ($value ['cid'] == $v ['cid'] && $i == $v ['month']) {
						$asum += $v ['price'];
						$html .= '<td class="taR">￥' . $v ['price'] . '</td>';
						$falg = false;
						break;
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			$html .= '<td class="taR colGreen"><b>￥' . $asum . '</b></td>';
			$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 .= '<td class="taR">-</td>';
			else
				$collectHtml .= '<td class="taR">￥' . $sumPrice . '</td>';
			$total += $sumPrice;
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $total . '</td>';
		$data ['companyTotalHtml'] = $collectHtml;
		$data ['total'] = $total;
		
		// statistics html
		$stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'] );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		$data ['year'] = $year;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'companyCategoryCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		// year staff status 2,4
		if ($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 ();
		
		$LcategoryList = $Lcategory->find ( array (
				'asArray' => true 
		) );
		
		if ($cid == 0) {
			$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
			if ($cid == 0)
				$cid = $LcategoryList [0] ['cid'];
		}
		$data ['LcategoryList'] = $LcategoryList;
		
		$receiptCollectList = $receiptDetail->find ( array (
				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
				'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year,
				'groupby' => 'item,Month(pastDate)',
				'asArray' => true 
		) );
		$accountList = $accountItem->find ( array (
				'asArray' => true 
		) );
		// create CollectDetail HTML
		$collectHtml = array ();
		foreach ( $accountList as $key => $value ) {
			$html = "";
			$asum = 0;
			for($i = 1; $i <= 12; $i ++) {
				$falg = true;
				foreach ( $receiptCollectList as $v ) {
					if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {
						$asum += $v ['price'];
						$html .= '<td class="taR">￥' . $v ['price'] . '</td>';
						$falg = false;
						break;
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			$html .= '<td class="taR colGreen"><b>￥' . $asum . '</b></td>';
			$collectHtml [$value ['category']] [$value ['name']] = $html;
		}
		$data ['collectHtml'] = $collectHtml;
		
		// create Adjustment price html
		$receiptCollectList = $receiptDetail->find ( array (
				'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month',
				'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year,
				'groupby' => 'itemCategory,Month(pastDate)',
				'asArray' => true 
		) );
		
		$adjustment = array ();
		$collectArray = array (
				'日常相关费用' => array (),
				'差旅相关费用' => array (),
				'培训班费用' => array (),
				'其他' => array () 
		);
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );
		array_push ( $collectArray ['日常相关费用'], $collectHtml );
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );
		array_push ( $collectArray ['差旅相关费用'], $collectHtml );
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );
		array_push ( $collectArray ['培训班费用'], $collectHtml );
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );
		array_push ( $collectArray ['其他'], $collectHtml );
		$data ['collectArray'] = $collectArray;
		
		$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );
		array_push ( $adjustment, $collectHtml );
		$data ['adjustment'] = $adjustment;
		
		// total price html
		$collectHtml = "";
		$total = 0;
		for($i = 1; $i <= 12; $i ++) {
			$sumPrice = 0;
			foreach ( $receiptCollectList as $key => $value ) {
				if ($value ['month'] == $i) {
					$sumPrice += $value ['price'];
				}
			}
			if ($sumPrice == 0)
				$collectHtml .= '<td class="taR">-</td>';
			else
				$collectHtml .= '<td class="taR">￥' . $sumPrice . '</td>';
			$total += $sumPrice;
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $total . '</td>';
		
		// 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 ();
			}
		}
		
		$this->render ( "/admin/saeaCategoryCollectDetail", $data );
	}
	function staffCollect() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
		
		$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_.htmls";
		// $this->showCache($path);
		
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( 'itemStatistics' );
		$itemStatistics = new itemStatistics ();
		
		/*
		 * $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>" Year(date)=".$year,'groupby'=>'Month(date)','asArray'=>true)); if(empty($stList)) $stList=array('rePrice'=>0,'agPrice'=>0); $data['stList']=array('rePrice'=>$stList['rePrice'],'agPrice'=>$stList['agPrice'],'skPrice'=>($stList['rePrice']-$stList['agPrice']));
		 */
		
		// statistics html
		$stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'] );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		// ---
		$staffList = $staff->find ( array (
				'where' => 'username !="admin"',
				'asArray' => true 
		) );
		$LcategoryList = $Lcategory->find ( array (
				'asArray' => true 
		) ); // 'staff='.$this->staff[0]['sid']." and
		$itemStatisticsList = $itemStatistics->find ( array (
				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
				'where' => " Year(date)=" . $year,
				'groupby' => 'staff,Month(date)',
				'asArray' => true 
		) );
		$categoryList = $staff->find ( array (
				'select' => 'COUNT(*) as count,cid,category',
				'where' => 'username !="admin"',
				'groupby' => 'cid',
				'asArray' => true 
		) );
		// print_r($itemStatisticsList);die;
		// ceatre companyCollectHtml
		foreach ( $categoryList as $vlu ) {
			$count = $vlu ['count'] + 1;
			$html = '<th rowspan="' . $count . '">' . $vlu ['category'] . '</th>';
			$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 .= '<td><a href="/staffCollectDetail/' . $value ['username'] . '">' . $value ['username'] . '</a></td>';
					$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 .= '<td class="taR">￥' . $v ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
						if ($falg)
							$html .= '<td class="taR">-</td>';
					}
					$m13 += $asum;
					$html .= '<td class="taR colGreen"><b>￥' . $asum . '</b></td>';
					$collectHtml [$value ['username']] = array (
							'html' => $html,
							'sid' => $value ['sid'] 
					);
					$html = "";
				}
			}
			$hl = '<th class="taR">小计</th><td class="taR">￥' . $m1 . '</td><td class="taR">￥' . $m2 . '</td><td class="taR">￥' . $m3 . '</td><td class="taR">￥' . $m4 . '</td><td class="taR">￥' . $m5 . '</td>
				<td class="taR">￥' . $m6 . '</td><td class="taR">￥' . $m7 . '</td><td class="taR">￥' . $m8 . '</td><td class="taR">￥' . $m9 . '</td><td class="taR">￥' . $m10 . '</td><td class="taR">￥' . $m11 . '</td>
				<td class="taR">￥' . $m12 . '</td><td class="taR">￥' . $m13 . '</td>';
			$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 .= '<td class="taR">-</td>';
			else
				$collectHtml .= '<td class="taR">￥' . $sumPrice . '</td>';
			$total += $sumPrice;
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $total . '</td>';
		$data ['companyTotalHtml'] = $collectHtml;
		$data ['total'] = $total;
		
		$data ['year'] = $year;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'companyCategoryCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		if ($year <= date ( "Y" )) {
			Doo::loadModel ( 'receipt' );
			$receipt = new receipt ();
			$receiptList = $receipt->find ( array (
					'where' => '(status=2 or status=4) and Year(date) =' . $year,
					'asArray' => true 
			) );
			if (empty ( $receiptList )) { // generated files
				ob_start ();
				$this->render ( "/admin/saeaStaffCollectB", $data );
				$this->cacheFile ( $path );
				die ();
			}
		}
		
		$this->render ( "/admin/saeaStaffCollectB", $data );
	}
	function staffCollectBak() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : 1;
		
		$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_" . $month . ".htmls";
		$this->showCache ( $path );
		
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'L_category' );
		$Lcategory = new L_category ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( 'itemStatistics' );
		$itemStatistics = new itemStatistics ();
		
		$itemStatisticsList = $itemStatistics->find ( array (
				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
				'groupby' => 'staff,itemCategory,Month(date)',
				'asArray' => true 
		) );
		$itemCategoryList = $itemStatistics->find ( array (
				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
				'groupby' => 'cid,itemCategory,Month(date)',
				'asArray' => true 
		) );
		
		$LcategoryList = $Lcategory->find ( array (
				'asArray' => true 
		) );
		$staffList = $staff->find ( array (
				'asArray' => true 
		) );
		
		$htmlArray = array ();
		foreach ( $LcategoryList as $value ) {
			$htmlArray [$value ['title']] = array ();
			foreach ( $staffList as $v ) {
				if ($value ['cid'] == $v ['cid']) {
					$html = "";
					$falg = true;
					$staffSumPrice = 0;
					
					foreach ( $itemStatisticsList as $a ) {
						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "日常相关费用") {
							if (empty ( $a ['price'] )) {
								$html .= '<td class="taR">-</td>';
								$falg = false;
								break;
							} else {
								$staffSumPrice += $a ['price'];
								$html .= '<td class="taR">￥' . $a ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg) {
						$html .= '<td class="taR">-</td>';
						$falg = true;
					}
					
					$falg = true;
					foreach ( $itemStatisticsList as $a ) {
						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "差旅相关费用") {
							if (empty ( $a ['price'] )) {
								$html .= '<td class="taR">-</td>';
								$falg = false;
								break;
							} else {
								$staffSumPrice += $a ['price'];
								$html .= '<td class="taR">￥' . $a ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg) {
						$html .= '<td class="taR">-</td>';
						$falg = true;
					}
					
					$falg = true;
					foreach ( $itemStatisticsList as $a ) {
						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "培训班费用") {
							if (empty ( $a ['price'] )) {
								$html .= '<td class="taR">-</td>';
								$falg = false;
								break;
							} else {
								$staffSumPrice += $a ['price'];
								$html .= '<td class="taR">￥' . $a ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg) {
						$html .= '<td class="taR">-</td>';
						$falg = true;
					}
					
					$falg = true;
					foreach ( $itemStatisticsList as $a ) {
						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "其他") {
							if (! empty ( $a ['price'] )) {
								$staffSumPrice += $a ['price'];
								$html .= '<td class="taR">￥' . $a ['price'] . '</td>';
								$falg = false;
								break;
							} else {
								$html .= '<td class="taR">-</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg) {
						$html .= '<td class="taR">-</td>';
						$falg = true;
					}
					
					$falg = true;
					foreach ( $itemStatisticsList as $a ) {
						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "报销金额调整") {
							if (! empty ( $a ['price'] )) {
								$staffSumPrice += $a ['price'];
								$html .= '<td class="taR">￥' . $a ['price'] . '</td>';
								$falg = false;
								break;
							} else {
								$html .= '<td class="taR">-</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg) {
						$html .= '<td class="taR">-</td>';
						$falg = true;
					}
					
					$html .= '<td class="colGreen taR">￥' . $staffSumPrice . '</td>';
					$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 .= '<td class="colGreen taR">-</td>';
						$cateFalg = false;
						break;
					} else {
						$catePrice += $l ['price'];
						$cateHtml .= '<td class="colGreen taR">￥' . $l ['price'] . '</td>';
						$cateFalg = false;
						break;
					}
				}
			}
			if ($cateFalg) {
				$cateHtml .= '<td class="colGreen taR">-</td>';
				$cateFalg = true;
			}
			
			$cateFalg = true;
			foreach ( $itemCategoryList as $l ) {
				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "差旅相关费用") {
					if (empty ( $l ['price'] )) {
						$cateHtml .= '<td class="colGreen taR">-</td>';
						$cateFalg = false;
						break;
					} else {
						$catePrice += $l ['price'];
						$cateHtml .= '<td class="colGreen taR">￥' . $l ['price'] . '</td>';
						$cateFalg = false;
						break;
					}
				}
			}
			if ($cateFalg) {
				$cateHtml .= '<td class="colGreen taR">-</td>';
				$cateFalg = true;
			}
			
			$cateFalg = true;
			foreach ( $itemCategoryList as $l ) {
				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "培训班费用") {
					if (empty ( $l ['price'] )) {
						$cateHtml .= '<td class="colGreen taR">-</td>';
						$cateFalg = false;
						break;
					} else {
						$catePrice += $l ['price'];
						$cateHtml .= '<td class="colGreen taR">￥' . $l ['price'] . '</td>';
						$cateFalg = false;
						break;
					}
				}
			}
			if ($cateFalg) {
				$cateHtml .= '<td class="colGreen taR">-</td>';
				$cateFalg = true;
			}
			
			$cateFalg = true;
			foreach ( $itemCategoryList as $l ) {
				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "其他") {
					if (empty ( $l ['price'] )) {
						$cateHtml .= '<td class="colGreen taR">-</td>';
						$cateFalg = false;
						break;
					} else {
						$catePrice += $l ['price'];
						$cateHtml .= '<td class="colGreen taR">￥' . $l ['price'] . '</td>';
						$cateFalg = false;
						break;
					}
				}
			}
			if ($cateFalg) {
				$cateHtml .= '<td class="colGreen taR">-</td>';
				$cateFalg = true;
			}
			
			$cateFalg = true;
			foreach ( $itemCategoryList as $l ) {
				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "报销金额调整") {
					if (empty ( $l ['price'] )) {
						$cateHtml .= '<td class="colGreen taR">-</td>';
						$cateFalg = false;
						break;
					} else {
						$catePrice += $l ['price'];
						$cateHtml .= '<td class="colGreen taR">￥' . $l ['price'] . '</td>';
						$cateFalg = false;
						break;
					}
				}
			}
			if ($cateFalg) {
				$cateHtml .= '<td class="colGreen taR">-</td>';
				$cateFalg = true;
			}
			
			$cateHtml .= '<td class="colGreen taR">￥' . $catePrice . '</td>';
			$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 .= '<option selected value="' . $i . '">' . $i . '</option>';
			else
				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';
		}
		
		$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 lyt() {
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		$receiptCollectList = $receiptDetail->find ( array (
				'where' => 'status=1 ',
				'asArray' => true 
		) );
		
		foreach ( $receiptCollectList as $key => $value ) {
			$receiptDetail = new receiptDetail ();
			
			$receiptDetail->pastDate = $value ['date'];
			
			$receiptDetail->update ( array (
					'where' => "rdid= '" . $value ['rdid'] . "'" 
			) );
		}
	}
	function staffCollectMonthDetail() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
		if (! $year)
			$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );
		if (! $month)
			$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;
		
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		
		$staffList = $staff->find ( array (
				'where' => 'username!="admin"',
				'asArray' => true 
		) );
		$categoryList = $staff->find ( array (
				'select' => 'COUNT(*) as count,cid,category',
				'where' => 'username !="admin"',
				'groupby' => 'cid',
				'asArray' => true 
		) );
		
		$list = array ();
		foreach ( $categoryList as $vlu ) {
			// $html='<th rowspan="'.$v['count'].'">'.$v['category'].'</th>';
			$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;
			$r16=0;
			$r17=0;
			$r18=0;
			$c1 = 0;
			$c2 = 0;
			$c3 = 0;
			$c4 = 0;
			$c5 = 0;
			$c6 = 0;
			$p1 = 0;
			$p2 = 0;
			$p3 = 0;
			$p4 = 0;
			$p5 = 0;
			$p6 = 0;
			$p7 = 0;
			$p8 = 0;
			$p9 = 0;
			$t1 = 0;
			$t2 = 0;
			$t3 = 0;
			$t4 = 0;
			$t5 = 0;
			$s1 = 0;
			$m1 = 0;
			foreach ( $staffList as $value ) {
				if ($vlu ['cid'] == $value ['cid']) {
					// pastDate
					$receiptCollectList = $receiptDetail->find ( array (
							'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
							'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
							'groupby' => 'item,Month(pastDate),itemCategory',
							'asArray' => true 
					) );
					
					// if ($value['sid']==42){
					// print_r($receiptCollectList);die;
					// }
					
					if (! empty ( $receiptCollectList )) {
						
						$receiptL = array (
								'日常相关费用' => array (),
								'差旅相关费用' => array (),
								'培训班费用' => array (),
								'其他' => array () 
						);
						
						$html = "";
						$psum = 0;
						$item = array (
								'市内交通费',
								'市内出租费',
								'办事处房租',
								'电话费',
								'水费',
								'电费',
								'办公费用',
								'邮寄费',
								'其他费用',
								'车辆费用',
								'广告费',
								'团队建设费',
								'物业管理费',
								'宽带费',
								'人员薪酬',
								'公积金',
								'社保'
								
						);
						foreach ( $item as $va ) {
							$falg = true;
							foreach ( $receiptCollectList as $v ) {
								if ($v ['itemCategory'] == '日常相关费用') {
									
									if ($v ['item'] == $va) {
										if ($va == '市内交通费')
											$r1 += $v ['price'];
										if ($va == '市内出租费')
											$r2 += $v ['price'];
										if ($va == '办事处房租')
											$r3 += $v ['price'];
										if ($va == '电话费')
											$r4 += $v ['price'];
										if ($va == '水费')
											$r5 += $v ['price'];
										if ($va == '电费')
											$r6 += $v ['price'];
										if ($va == '办公费用')
											$r7 += $v ['price'];
										if ($va == '邮寄费')
											$r8 += $v ['price'];
										if ($va == '其他费用')
											$r9 += $v ['price'];
										if ($va == '车辆费用')
											$r10 += $v ['price'];
										if ($va == '广告费')
											$r11 += $v ['price'];
										if ($va == '团队建设费')
											$r13 += $v ['price'];
										if ($va == '物业管理费')
											$r14 += $v ['price'];
										if ($va == '宽带费')
											$r15 += $v ['price'];
										if ($va == '公积金')
											$r16 += $v ['price'];
										if ($va == '社保')
											$r17 += $v ['price'];
										if ($va == '人员薪酬')
											$r18 += $v ['price'];
										$psum += $v ['price'];
										$html .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						
						$r12 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						$c6 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						$p9 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$receiptL ['培训班费用'] = $psum . $html;
						
						/* ------------------------------------- */
						$html = "";
						$psum = 0;
						$item = array (
								'公关费',
								'广告费',
								'借款',
								'可自加费用' 
						);
						foreach ( $item as $va ) {
							
							$falg = true;
							foreach ( $receiptCollectList as $v ) {
								
								if ($v ['itemCategory'] == '其他') {
									// if ($value['sid']==42){
									//
									// echo var_dump($v['item']);
									// echo var_dump($va);
									// echo var_dump($v['item']==" ".$va);
									// echo $v['item']."==".$va."/<br/>";
									// //print_r( $receiptCollectList);//echo $va;
									// }
									
									if (trim ( $v ['item'] ) == $va) {
										
										if ($va == '公关费')
											$t1 += $v ['price'];
										if ($va == '广告费') {
											$t2 += $v ['price'];
										}
										if ($va == '借款')
											$t3 += $v ['price'];
										if ($va == '可自加费用')
											$t4 += $v ['price'];
										$psum += $v ['price'];
										$html .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						
						$t5 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 = '<td class="taR colOrange">￥' . $psum . '</td>';
						else
							$psum = '<td class="taR colOrange">-</td>';
						$receiptL ['报销金额调整'] = $psum . $html;
					} else {
						$receiptL ['日常相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['差旅相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['培训班费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['其他'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';
					}
					
					$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'] = '<td><b>￥' . $monthStaffPrice [0] ['price'] . '</b></td>';
					} else
						$receiptL ['monthStaffPrice'] = '<td><b>-</b></td>';
					$list [$value ['username']] = $receiptL;
				}
			}
			$receiptL ['日常相关费用'] = '<td class="colGreen taR">' . $r12 . '</td><td class="taR">' . $r1 . '</td><td class="taR">' . $r2 . '</td><td class="taR">' . $r3 . '</td><td class="taR">' . $r4 . '</td><td class="taR">' . $r5 . '</td>
		  						<td class="taR">' . $r6 . '</td><td class="taR">' . $r7 . '</td><td class="taR">' . $r8 . '</td><td class="taR">' . $r9 . '</td><td class="taR">' . $r10 . '</td><td class="taR">' . $r11 . '</td><td class="taR">' . $r13 . '</td>
		  						<td class="taR">' . $r14 . '</td><td class="taR">' . $r15 . '</td><td class="taR">' . $r18 . '</td> <td class="taR">' . $r16 . '</td><td class="taR">' . $r17 . '</td>';
			$receiptL ['差旅相关费用'] = '<td class="colGreen taR">' . $c6 . '</td><td class="taR">' . $c1 . '</td>
		  						<td class="taR">' . $c2 . '</td><td class="taR">' . $c3 . '</td><td class="taR">' . $c4 . '</td><td class="taR">' . $c5 . '</td>';
			$receiptL ['培训班费用'] = '<td class="colGreen taR">' . $p9 . '</td><td class="taR">' . $p1 . '</td><td class="taR">' . $p2 . '</td><td class="taR">' . $p3 . '</td><td class="taR">' . $p4 . '</td>
		  						<td class="taR">' . $p5 . '</td><td class="taR">' . $p6 . '</td><td class="taR">' . $p7 . '</td><td class="taR">' . $p8 . '</td>';
			$receiptL ['其他'] = '<td class="colGreen taR">' . $t5 . '</td><td class="taR">' . $t1 . '</td><td class="taR">' . $t2 . '</td><td class="taR">' . $t3 . '</td><td class="taR">' . $t4 . '</td>';
			$receiptL ['报销金额调整'] = '<td class="taR colOrange">' . $s1 . '</td>';
			$receiptL ['monthStaffPrice'] = '<td><b>￥' . $m1 . '</b></td>';
			$list ['<span class=colRed >' . $vlu ['category'] . '小计</span>'] = $receiptL;
		}
		$data ['list'] = $list;
		
		$receiptCollectList = $receiptDetail->find ( array (
				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
				'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
				'groupby' => 'item,Month(pastDate),itemCategory',
				'asArray' => true 
		) );
		
		$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList );
		
		// statistics html
		$stList = $statistics->getOne ( array (
				'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',
				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
				'groupby' => 'Month(date)',
				'asArray' => true 
		) );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		$monthHtml = "";
		for($i = 1; $i <= 12; $i ++) {
			if ($i == $month)
				$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';
			else
				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';
		}
		
		$data ['monthHtml'] = $monthHtml;
		$data ['year'] = $year;
		$data ['month'] = $month;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'companyCategoryCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/staffCollectMonthDetail", $data );
		// $this->render ( "/admin/saeaStaffCollectDetail", $data );
	}
	function staffCollectMonthDetail2() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
		if (! $year)
			$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );
		if (! $month)
			$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;
		
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		
		$staffList = $staff->find ( array (
				'where' => 'username!="admin"',
				'asArray' => true 
		) );
		$categoryList = $staff->find ( array (
				'select' => 'COUNT(*) as count,cid,category',
				'where' => 'username !="admin"',
				'groupby' => 'cid',
				'asArray' => true 
		) );
		
		$list = array ();
		foreach ( $categoryList as $vlu ) {
			// $html='<th rowspan="'.$v['count'].'">'.$v['category'].'</th>';
			$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 .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						
						$r12 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						$c6 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						$p9 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 .= '<td class="taR">' . $v ['price'] . '</td>';
										$falg = false;
										break;
									}
								}
							}
							if ($falg)
								$html .= '<td class="taR">-</td>';
						}
						$t5 += $psum;
						if (! empty ( $psum ))
							$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
						else
							$psum = '<td class="colGreen taR">-</td>';
						$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 = '<td class="taR colOrange">￥' . $psum . '</td>';
						else
							$psum = '<td class="taR colOrange">-</td>';
						$receiptL ['报销金额调整'] = $psum . $html;
					} else {
						$receiptL ['日常相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['差旅相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['培训班费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['其他'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
						$receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';
					}
					
					$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'] = '<td><b>￥' . $monthStaffPrice [0] ['price'] . '</b></td>';
					} else
						$receiptL ['monthStaffPrice'] = '<td><b>-</b></td>';
					$list [$value ['username']] = $receiptL;
				}
			}
			$receiptL ['日常相关费用'] = '<td class="colGreen taR">' . $r12 . '</td><td class="taR">' . $r1 . '</td><td class="taR">' . $r2 . '</td><td class="taR">' . $r3 . '</td><td class="taR">' . $r4 . '</td><td class="taR">' . $r5 . '</td>
		  						<td class="taR">' . $r6 . '</td><td class="taR">' . $r7 . '</td><td class="taR">' . $r8 . '</td><td class="taR">' . $r9 . '</td><td class="taR">' . $r10 . '</td><td class="taR">' . $r11 . '</td><td class="taR">' . $r13 . '</td>
		  						<td class="taR">' . $r14 . '</td><td class="taR">' . $r15 . '</td>';
			$receiptL ['差旅相关费用'] = '<td class="colGreen taR">' . $c6 . '</td><td class="taR">' . $c1 . '</td>
		  						<td class="taR">' . $c2 . '</td><td class="taR">' . $c3 . '</td><td class="taR">' . $c4 . '</td><td class="taR">' . $c5 . '</td>';
			$receiptL ['培训班费用'] = '<td class="colGreen taR">' . $p9 . '</td><td class="taR">' . $p1 . '</td><td class="taR">' . $p2 . '</td><td class="taR">' . $p3 . '</td><td class="taR">' . $p4 . '</td>
		  						<td class="taR">' . $p5 . '</td><td class="taR">' . $p6 . '</td><td class="taR">' . $p7 . '</td><td class="taR">' . $p8 . '</td>';
			$receiptL ['其他'] = '<td class="colGreen taR">' . $t5 . '</td><td class="taR">' . $t1 . '</td><td class="taR">' . $t2 . '</td><td class="taR">' . $t3 . '</td><td class="taR">' . $t4 . '</td>';
			$receiptL ['报销金额调整'] = '<td class="taR colOrange">' . $s1 . '</td>';
			$receiptL ['monthStaffPrice'] = '<td><b>￥' . $m1 . '</b></td>';
			$list ['<span class=colRed >' . $vlu ['category'] . '小计</span>'] = $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 .= '<option selected value="' . $i . '">' . $i . '</option>';
			else
				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';
		}
		
		$data ['monthHtml'] = $monthHtml;
		$data ['year'] = $year;
		$data ['month'] = $month;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'companyCategoryCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		$this->render ( "/admin/staffCollectMonthDetail2", $data );
		// $this->render ( "/admin/saeaStaffCollectDetail", $data );
	}
	function companyMonthCollectDetail() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
		if (! $year)
			$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );
		if (! $month)
			$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;
		
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		
		$staffList = $staff->find ( array (
				'where' => 'username!="admin"',
				'asArray' => true 
		) );
		
		$categoryList = $lCategory->find ( array (
				'asArray' => true 
		) );
		
		$list = array ();
		foreach ( $categoryList as $value ) {
			$receiptCollectList = $receiptDetail->find ( array (
					'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
					'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
					'groupby' => 'item,Month(pastDate),itemCategory',
					'asArray' => true 
			) );
			
			if (! empty ( $receiptCollectList )) {
				
				$receiptL = array (
						'日常相关费用' => array (),
						'差旅相关费用' => array (),
						'培训班费用' => array (),
						'其他' => array () 
				);
				
				$html = "";
				$psum = 0;
				$item = array (
						'市内交通费',
						'市内出租费',
						'办事处房租',
						'电话费',
						'水费',
						'电费',
						'办公费用',
						'邮寄费',
						'其他费用',
						'车辆费用',
						'广告费',
						'团队建设费' 
				);
				foreach ( $item as $va ) {
					$falg = true;
					foreach ( $receiptCollectList as $v ) {
						if ($v ['itemCategory'] == '日常相关费用') {
							
							if ($v ['item'] == $va) {
								$psum += $v ['price'];
								$html .= '<td class="taR">' . $v ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg)
						$html .= '<td class="taR">-</td>';
				}
				
				if (! empty ( $psum ))
					$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
				else
					$psum = '<td class="colGreen taR">-</td>';
				$receiptL ['日常相关费用'] = $psum . $html;
				
				/* ----------------------------------- */
				
				$html = "";
				$psum = 0;
				$item = array (
						'往来交通费',
						'市内交通费',
						'出差住宿费',
						'出差补助',
						'其他费用' 
				);
				foreach ( $item as $va ) {
					$falg = true;
					foreach ( $receiptCollectList as $v ) {
						if ($v ['itemCategory'] == '差旅相关费用') {
							
							if ($v ['item'] == $va) {
								$psum += $v ['price'];
								$html .= '<td class="taR">' . $v ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg)
						$html .= '<td class="taR">-</td>';
				}
				if (! empty ( $psum ))
					$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
				else
					$psum = '<td class="colGreen taR">-</td>';
				$receiptL ['差旅相关费用'] = $psum . $html;
				/* ------------------------------------- */
				$html = "";
				$psum = 0;
				$item = array (
						'场租费',
						'薪酬',
						'住宿费',
						'交通费',
						'餐饮费',
						'办公费',
						'公关费',
						'其他' 
				);
				foreach ( $item as $va ) {
					$falg = true;
					foreach ( $receiptCollectList as $v ) {
						if ($v ['itemCategory'] == '培训班费用') {
							
							if ($v ['item'] == $va) {
								$psum += $v ['price'];
								$html .= '<td class="taR">' . $v ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg)
						$html .= '<td class="taR">-</td>';
				}
				if (! empty ( $psum ))
					$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
				else
					$psum = '<td class="colGreen taR">-</td>';
				$receiptL ['培训班费用'] = $psum . $html;
				
				/* ------------------------------------- */
				$html = "";
				$psum = 0;
				$item = array (
						'公关费',
						'广告费',
						'借款',
						'可自加费用' 
				);
				foreach ( $item as $va ) {
					$falg = true;
					foreach ( $receiptCollectList as $v ) {
						if ($v ['itemCategory'] == '其他') {
							
							if ($v ['item'] == $va) {
								$psum += $v ['price'];
								$html .= '<td class="taR">' . $v ['price'] . '</td>';
								$falg = false;
								break;
							}
						}
					}
					if ($falg)
						$html .= '<td class="taR">-</td>';
				}
				if (! empty ( $psum ))
					$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
				else
					$psum = '<td class="colGreen taR">-</td>';
				$receiptL ['其他'] = $psum . $html;
				
				/* ------------------------------------- */
				$html = "";
				$psum = 0;
				foreach ( $receiptCollectList as $v ) {
					if ($v ['itemCategory'] == '报销金额调整') {
						
						if (! empty ( $v ['price'] ))
							$psum += $v ['price'];
					}
				}
				
				if (! empty ( $psum ))
					$psum = '<td class="taR colOrange">￥' . $psum . '</td>';
				else
					$psum = '<td class="taR colOrange">-</td>';
				$receiptL ['报销金额调整'] = $psum . $html;
			} else {
				$receiptL ['日常相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
	  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
				$receiptL ['差旅相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td>
	  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
				$receiptL ['培训班费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
	  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
				$receiptL ['其他'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
				$receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';
			}
			
			$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'] = '<td><b>￥' . $monthStaffPrice [0] ['price'] . '</b></td>';
			else
				$receiptL ['monthStaffPrice'] = '<td><b>-</b></td>';
			$list [$value ['title']] = $receiptL;
		}
		
		$data ['list'] = $list;
		
		$receiptCollectList = $receiptDetail->find ( array (
				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
				'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
				'groupby' => 'item,Month(pastDate),itemCategory',
				'asArray' => true 
		) );
		
		$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList );
		
		// print_r($data['monthPriceHtml']);
		// foreach ($data['monthPriceHtml'] as $value){
		// echo $value;
		// }
		// die;
		// statistics html
		$stList = $statistics->getOne ( array (
				'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',
				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
				'groupby' => 'Month(date)',
				'asArray' => true 
		) );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		$monthHtml = "";
		for($i = 1; $i <= 12; $i ++) {
			if ($i == $month)
				$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';
			else
				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';
		}
		
		$data ['monthHtml'] = $monthHtml;
		$data ['year'] = $year;
		$data ['month'] = $month;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'companyCategoryCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		
		$this->render ( "/admin/companyMonthCollectDetail", $data );
	}
	function staffCollectDetail() {
		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
		$staffname = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : "";
		$pcid = $this->get_args ( 'category' ) ? $this->get_args ( 'category' ) : "";
		if (! $staffname) {
			$staffname = isset ( $this->params ['staffname'] ) ? $this->params ['staffname'] : "";
			$staffname = urldecode ( $staffname );
		}
		
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		Doo::loadModel ( "receiptDetail" );
		$receiptDetail = new receiptDetail ();
		Doo::loadModel ( 'accountItem' );
		$accountItem = new accountItem ();
		Doo::loadModel ( 'statistics' );
		$statistics = new statistics ();
		Doo::loadModel ( 'L_category' );
		$lCategory = new L_category ();
		
		$staffList = $staff->find ( array (
				'asArray' => true 
		) );
		
		$stHtml = '';
		$stTitle = "";
		$staffId = 0;
		$cid = 0;
		$ocid = 0;
		foreach ( $staffList as $value ) {
			if ($value ['username'] == $staffname && $value ['username'] != 'admin') {
				$stTitle = $value ['category'] . '-' . $value ['username'];
				$staffId = $value ['sid'];
				$cid = $value ['cid'];
				$ocid = $value ['cid'];
				if (! empty ( $value ['othercid'] ))
					$cid = $value ['cid'] . ',' . $value ['othercid'];
				$stHtml .= '<option selected value="' . $value ['username'] . '">' . $value ['category'] . '-' . $value ['username'] . '</option>';
			} elseif ($value ['username'] != 'admin')
				$stHtml .= '<option value="' . $value ['username'] . '">' . $value ['category'] . '-' . $value ['username'] . '</option>';
		}
		$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'].'<br/>';
						}
						$asum += $v ['price'];
						$html .= '<td class="taR">￥' . $v ['price'] . '</td>';
						$falg = false;
						break;
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			$html .= '<td class="taR colGreen"><b>￥' . $asum . '</b></td>';
			$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 () 
		);
		
		$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 .= '<td class="taR">-</td>';
			else
				$collectHtml .= '<td class="taR">￥' . $sumPrice . '</td>';
			$total += $sumPrice;
		}
		$collectHtml .= '<td class="taR colGreen">￥' . $total . '</td>';
		
		// statistics html
		$stList = $statistics->statisticsByYear ( $year, $staffId );
		if (empty ( $stList ))
			$stList = array (
					'rePrice' => 0,
					'agPrice' => 0 
			);
		$data ['stList'] = array (
				'rePrice' => $stList ['rePrice'],
				'agPrice' => $stList ['agPrice'],
				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 
		);
		
		$data ['totalPrice'] = $collectHtml;
		$data ['totalYear'] = $total;
		
		$data ['stHtml'] = $stHtml;
		$data ['year'] = $year;
		$data ['stTitle'] = $stTitle;
		
		$data ['memu'] = "receipt";
		$data ['staff'] = $this->staff;
		$data ['receiptMemu'] = 'companyCategoryCollect';
		$data ['verifyId'] = $this->verifyId;
		$data ['executeId'] = $this->executeId;
		if ($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 .= '<option selected value="' . $i . '">' . $i . '月</option>';
			else
				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';
		}
		$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 = '<div class="control-group"><div class="controls clearfix"><table class="table table table-bordered"><tbody>
         			<tr><td>单号：<b>' . $receiptOrder . '</b></td><td>金额：<b class="colOrange">￥' . $receiptInfo ['sum'] . '</b></td></tr>
         		</tbody></table><table class="table table table-bordered"><tbody>';
			foreach ( $verifyStaff as $key => $value ) {
				$staffInfo = $staff->getOne ( array (
						'select' => 'username',
						'where' => ' sid="' . $key . '"',
						'asArray' => true 
				) );
				$html .= '<tr><th width="70">' . $staffInfo ['username'] . '</th><td>' . $value ['opinion'] . '</td></tr>';
			}
			$html .= '</tbody></table></div></div>';
			echo json_encode ( array (
					'status' => 1,
					'receiptHtml' => $html 
			) );
			die ();
		}
		echo json_encode ( array (
				'status' => 2,
				'receiptHtml' => '' 
		) );
		die ();
	}
	function _getMonthCollectDetail($receiptCollectList) {
		if (! empty ( $receiptCollectList )) {
			
			$receiptL = array (
					'日常相关费用' => array (),
					'差旅相关费用' => array (),
					'培训班费用' => array (),
					'其他' => array () 
			);
			
			$html = "";
			$psum = 0;
			$item = array (
					'市内交通费',
					'市内出租费',
					'办事处房租',
					'电话费',
					'水费',
					'电费',
					'办公费用',
					'邮寄费',
					'其他费用',
					'车辆费用',
					'广告费',
					'团队建设费',
					'物业管理费',
					'宽带费' 
			);
			foreach ( $item as $value ) {
				$falg = true;
				foreach ( $receiptCollectList as $v ) {
					if ($v ['itemCategory'] == '日常相关费用') {
						
						if ($v ['item'] == $value) {
							$psum += $v ['price'];
							$html .= '<td class="taR">' . $v ['price'] . '</td>';
							$falg = false;
							break;
						}
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			
			if (! empty ( $psum ))
				$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
			else
				$psum = '<td class="colGreen taR">-</td>';
			$receiptL ['日常相关费用'] = $psum . $html;
			
			/* ----------------------------------- */
			
			$html = "";
			$psum = 0;
			$item = array (
					'往来交通费',
					'市内交通费',
					'出差住宿费',
					'出差补助',
					'其他费用' 
			);
			foreach ( $item as $value ) {
				$falg = true;
				foreach ( $receiptCollectList as $v ) {
					if ($v ['itemCategory'] == '差旅相关费用') {
						if ($v ['item'] == $value) {
							$psum += $v ['price'];
							$html .= '<td class="taR">' . $v ['price'] . '</td>';
							$falg = false;
							break;
						}
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			
			if (! empty ( $psum ))
				$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
			else
				$psum = '<td class="colGreen taR">-</td>';
			$receiptL ['差旅相关费用'] = $psum . $html;
			/* ------------------------------------- */
			$html = "";
			$psum = 0;
			$item = array (
					'场租费',
					'薪酬',
					'住宿费',
					'交通费',
					'餐饮费',
					'办公费',
					'公关费',
					'其他' 
			);
			foreach ( $item as $value ) {
				$falg = true;
				foreach ( $receiptCollectList as $v ) {
					if ($v ['itemCategory'] == '培训班费用') {
						if ($v ['item'] == $value) {
							$psum += $v ['price'];
							$html .= '<td class="taR">' . $v ['price'] . '</td>';
							$falg = false;
							break;
						}
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			
			if (! empty ( $psum ))
				$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
			else
				$psum = '<td class="colGreen taR">-</td>';
			$receiptL ['培训班费用'] = $psum . $html;
			
			/* ------------------------------------- */
			$html = "";
			$psum = 0;
			$item = array (
					'公关费',
					'广告费',
					'借款',
					'可自加费用' 
			);
			foreach ( $item as $value ) {
				$falg = true;
				foreach ( $receiptCollectList as $v ) {
					if ($v ['itemCategory'] == '其他') {
						if ($v ['item'] == $value) {
							$psum += $v ['price'];
							$html .= '<td class="taR">' . $v ['price'] . '</td>';
							$falg = false;
							break;
						}
					}
				}
				if ($falg)
					$html .= '<td class="taR">-</td>';
			}
			
			if (! empty ( $psum ))
				$psum = '<td class="colGreen taR">￥' . $psum . '</td>';
			else
				$psum = '<td class="colGreen taR">-</td>';
			$receiptL ['其他'] = $psum . $html;
			
			/* ------------------------------------- */
			$html = "";
			$psum = 0;
			foreach ( $receiptCollectList as $v ) {
				if ($v ['itemCategory'] == '报销金额调整') {
					
					if (! empty ( $v ['price'] ))
						$psum += $v ['price'];
				}
			}
			
			if (! empty ( $psum ))
				$psum = '<td class="taR colOrange">￥' . $psum . '</td>';
			else
				$psum = '<td class="taR colOrange">-</td>';
			$receiptL ['报销金额调整'] = $psum . $html;
		} else {
			
			$receiptL ['日常相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
	  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
			$receiptL ['差旅相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td>
	  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
			$receiptL ['培训班费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>
	  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
			$receiptL ['其他'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';
			$receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';
		}
		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 = '<br><div><style></style>
    <table style="background-color:#fff; width:100%;" cellpadding="0" cellspacing="0"><tbody>
      <tr><td><table style="background-color:#fff; width:640px;" cellpadding="0" cellspacing="0" align="center"><tbody>
          <tr><td style="background-color:#8E0950;padding:30px 0 40px;" align="center">
           <span style="vertical-align:bottom;font-size:20px;color:#fff;">CLD 邮件提醒</span>
           </td></tr><tr><td><table style="background-color:#fff;border:1px solid #ddd;border-bottom:0px;width:100%;" cellpadding="0" cellspacing="0" align="left">
             <tbody><tr>
               <td style="padding: 0 40px;" align="left">
               <p style="margin-top:40px;margin-bottom:20px;color:#383838;font-size:20px;line-height:32px;">Hi，' . $value ['username'] . '</p>
               </td></tr><tr>
               <td style="padding: 0 40px;" align="left"><p style="margin-top:0px;margin-bottom:40px;color:#383838;font-size:20px;line-height:32px;">美好的一天从今天开始，您需要关注以下事项：</p></td>
              </tr>
             </tbody> </table></td> </tr> <tr><td>
            <table style="background-color:#f5f6f7;width:100%;padding:0 0 20px;border-left:1px solid #ddd;border-right:1px solid #ddd;" cellpadding="0" cellspacing="0" align="left">
             <tbody> <tr><td>
             <p style="margin-top:20px;margin-bottom:10px;margin-left:40px;color:#383838;font-size:18px;font-weight:bold;line-height:36px;">
             	以下报销单完成了审批，等着收款吧：</p>
             </td></tr><tr><td><table style="width:100%;padding-right:30px;" cellpadding="0" cellspacing="0" align="left"> <tbody>';
					
					foreach ( $receiptList as $k => $v ) {
						$category = $Lcategory->getOne ( array (
								'where' => 'cid=' . $v ['cid'],
								'asArray' => true 
						) );
						$html .= '
                  <tr>
                  <td style="border-left:7px solid transparent;" align="left" width="30px"><br></td>
                   <td align="left">
                    <p style="font-size:16px;line-height:22px;margin:0">' . $v ['receiptOrder'] . '</p></td>
                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">' . $category ['title'] . '</p></td>
                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">￥' . $v ['sum'] . '元</p></td>
                   <td align="right"><span class="past" style="font-size:16px;line-height:22px;">' . $v ['date'] . '</span></td>
                  </tr>';
					}
					
					$html .= ' </tbody></table></td></tr></tbody></table></td></tr>
          <tr><td style="height:150px;border:1px solid #ddd;border-top:none;background-color:#fff;" align="center"><a href="http://cld.smartcost.com.cn/approval" style="display:block;height:50px;width:260px;background-color:#0390ff;font-weight:normal;font-size:18px;color:white;line-height:50px;text-align:center;text-decoration:none;border-radius:3px;">立即登录</a></td>
          </tr></tbody></table></td> </tr></tbody></table> </div><br>';
					
					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 = '<br><div><style></style> <table style="background-color:#fff; width:100%;" cellpadding="0" cellspacing="0">
     <tbody><tr><td><table style="background-color:#fff; width:640px;" cellpadding="0" cellspacing="0" align="center"><tbody><tr>
           <td style="background-color:#8E0950;padding:30px 0 40px;" align="center">
           <span style="vertical-align:bottom;font-size:20px;color:#fff;">CLD 邮件提醒</span></td>
          </tr><tr><td><table style="background-color:#fff;border:1px solid #ddd;border-bottom:0px;width:100%;" cellpadding="0" cellspacing="0" align="left">
             <tbody><tr><td style="padding: 0 40px;" align="left">
               <p style="margin-top:40px;margin-bottom:20px;color:#383838;font-size:20px;line-height:32px;">Hi，' . $value ['username'] . '</p>
               </td></tr><tr><td style="padding: 0 40px;" align="left"><p style="margin-top:0px;margin-bottom:40px;color:#383838;font-size:20px;line-height:32px;">美好的一天从今天开始，您需要关注以下事项：</p></td>
              </tr></tbody></table></td> </tr> <tr><td><table style="background-color:#f5f6f7;width:100%;padding:0 0 20px;border-left:1px solid #ddd;border-right:1px solid #ddd;" cellpadding="0" cellspacing="0" align="left">
             <tbody><tr><td><p style="margin-top:20px;margin-bottom:10px;margin-left:40px;color:#383838;font-size:18px;font-weight:bold;line-height:36px;">以下报销单需要您的审批：</p></td>
              </tr><tr><td><table style="width:100%;padding-right:30px;" cellpadding="0" cellspacing="0" align="left"><tbody>';
				
				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 .= '
	                  <tr>
	                  <td style="border-left:7px solid transparent;" align="left" width="30px"><br></td>
	                   <td align="left">
	                    <p style="font-size:16px;line-height:22px;margin:0">' . $l ['receiptOrder'] . '</p></td>
	                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">' . $category ['title'] . '-' . $staffDetile ['username'] . '</p></td>
	                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">￥' . $l ['sum'] . '元</p></td>
	                   <td align="right"><span class="past" style="font-size:16px;line-height:22px;">' . $l ['date'] . '</span></td>
	                  </tr>';
					}
				}
				$html .= ' 
                 </tbody></table></td></tr> </tbody></table></td></tr><tr>
           <td style="height:150px;border:1px solid #ddd;border-top:none;background-color:#fff;" align="center"><a href="http://cld.smartcost.com.cn/approval" style="display:block;height:50px;width:260px;background-color:#0390ff;font-weight:normal;font-size:18px;color:white;line-height:50px;text-align:center;text-decoration:none;border-radius:3px;">立即登录</a></td>
          </tr></tbody></table></td></tr></tbody></table></div><br>';
				
				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 swfupload() {
		$POST_MAX_SIZE = ini_get ( 'post_max_size' );
		$unit = strtoupper ( substr ( $POST_MAX_SIZE, - 1 ) );
		$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));
		
		if (( int ) $_SERVER ['CONTENT_LENGTH'] > $multiplier * ( int ) $POST_MAX_SIZE && $POST_MAX_SIZE) {
			header ( "HTTP/1.1 500 Internal Server Error" );
			echo "POST exceeded maximum allowed size.";
			exit ( 0 );
		}
		
		// Settings
		$save_path = DOO::conf ()->SITE_PATH . "upload/swfupload/"; // The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)
		$upload_name = "Filedata";
		$max_file_size_in_bytes = 2147483647; // 2GB in bytes
		$extension_whitelist = array (
				"doc",
				"txt",
				"jpg",
				"gif",
				"png" 
		); // Allowed file extensions
		$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)
		                                                         
		// Other variables
		$MAX_FILENAME_LENGTH = 260;
		$file_name = "";
		$file_extension = "";
		$uploadErrors = array (
				0 => "文件上传成功",
				1 => "上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置",
				2 => "上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置",
				3 => "上传的文件仅为部分文件",
				4 => "没有文件上传",
				6 => "缺少临时文件夹" 
		);
		
		$nk = time ();
		$file_name = $nk . '.' . $this->_GetFileEXT ( $_FILES [$upload_name] ['name'] ); // preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
		
		if (! @move_uploaded_file ( $_FILES [$upload_name] ["tmp_name"], $save_path . $file_name )) {
			echo "文件无法保存.";
			exit ( 0 );
		}
		
		// Return output to the browser (only supported by SWFUpload for Flash Player 9)
		
		echo json_encode ( array (
				'filename' => $file_name,
				'id' => $nk 
		) );
		exit ( 0 );
	}
	function _GetFileEXT($filename) {
		$pics = explode ( '.', $filename );
		
		$num = count ( $pics );
		
		return $pics [$num - 1];
	}
	
	/**
	 * 获取get或者POST值
	 * @param string $name 属性名称
	 * @return fixed 值
	 */
	function get_args($name) {
		if (isset ( $_GET [$name] )) {
			if (is_array ( $_GET [$name] ))
				return $_GET [$name];
			else
				return addslashes ( $_GET [$name] );
		} elseif (isset ( $_POST [$name] )) {
			if (is_array ( $_POST [$name] ))
				return $_POST [$name];
			else
				return addslashes ( $_POST [$name] );
		} else
			return false;
	}
	function num_to_rmb($num) {
		$c1 = "零壹贰叁肆伍陆柒捌玖";
		$c2 = "分角元拾佰仟万拾佰仟亿";
		// 精确到分后面就不要了，所以只留两个小数位
		$num = round ( $num, 2 );
		// 将数字转化为整数
		$num = $num * 100;
		if (strlen ( $num ) > 10) {
			return "金额太大，请检查";
		}
		$i = 0;
		$c = "";
		while ( 1 ) {
			if ($i == 0) {
				// 获取最后一位数字
				$n = substr ( $num, strlen ( $num ) - 1, 1 );
			} else {
				$n = $num % 10;
			}
			// 每次将最后一位数字转化为中文
			$p1 = substr ( $c1, 3 * $n, 3 );
			$p2 = substr ( $c2, 3 * $i, 3 );
			if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
				$c = $p1 . $p2 . $c;
			} else {
				$c = $p1 . $c;
			}
			$i = $i + 1;
			// 去掉数字最后一位了
			$num = $num / 10;
			$num = ( int ) $num;
			// 结束循环
			if ($num == 0) {
				break;
			}
		}
		$j = 0;
		$slen = strlen ( $c );
		while ( $j < $slen ) {
			// utf8一个汉字相当3个字符
			$m = substr ( $c, $j, 6 );
			// 处理数字中很多0的情况,每次循环去掉一个汉字“零”
			if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
				$left = substr ( $c, 0, $j );
				$right = substr ( $c, $j + 3 );
				$c = $left . $right;
				$j = $j - 3;
				$slen = $slen - 3;
			}
			$j = $j + 3;
		}
		// 这个是为了去掉类似23.0中最后一个“零”字
		if (substr ( $c, strlen ( $c ) - 3, 3 ) == '零') {
			$c = substr ( $c, 0, strlen ( $c ) - 3 );
		}
		// 将处理的汉字加上“整”
		if (empty ( $c )) {
			return "零元整";
		} else {
			return $c . "整";
		}
	}
	
	/**
	 * 获得分页数据
	 * @param unknown_type $table
	 * @param unknown_type $condition
	 * @param unknown_type $on_page
	 * @param unknown_type $page_size
	 */
	function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page") {
		$page_c = "";
		$page ['previous'] = $this->get_previous ( $on_page );
		$page ['on_page'] = $on_page;
		$total_count = $this->get_table_count ( $table, $condition );
		$total = intval ( $total_count / $page_size );
		
		$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;
		$page ['total_data'] = $total_count;
		$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;
		
		$i = 1;
		$page_max = 1;
		$page_width = 3;
		
		if ($on_page >= $page_width) {
			$page_max = intval ( $on_page / $page_width ) + 1;
			$i = intval ( $on_page / $page_width ) * $page_width - 1;
		}
		
		for(; $i <= $page ['total_page']; $i ++) {
			if ($i == $on_page)
				$page_c .= '<li class="active"><a href="javascript:void(0)">' . $i . '</a></li>';
			else
				$page_c .= '<li><a href="/' . $action . '/' . $i . $get . '">' . $i . '</a></li>';
			
			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;
	}
}

?>