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

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

    ' . $value ['opinion'] . '

  • '; } $data ['loanDate'] = $loanList [0] ['date']; } $data ['htmlLoan'] = $htmlLoan; // print_r($loanList); $Locate = 0; $roleId = 0; $button = 0; if ($ap == 4) $status = 4; foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true ); $receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true ); $receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true ); $categoryDetil = $Lcategory->getOne ( array ( 'where' => 'cid=' . $value ['cid'], 'asArray' => true ) ); $receiptList [$key] ['category'] = $categoryDetil ['title']; // 检测编辑状态 $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $value ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion $verifyStaff = json_decode ( $value ['verifyStaff'], true ); Doo::loadModel ( 'role' ); $role = new role (); // print_r($verifyList); $flag = true; $roleKey = 0; $endStaffArray = array (); $roleArrayCopy = array (); foreach ( $verifyList as $k => $v ) { // init verifyStaff if ($v [1] == 'ROLE') { if (! empty ( $verifyStaff )) { $endStaffArray = end ( $verifyStaff ); if ($v [0] == $endStaffArray ['nextStaff']) { $roleId = $v [0]; } } $roleVerify = json_decode ( $v [3], true ); $roleKey = $k; $roleArray = array (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $v [0], 'asArray' => true ) ); foreach ( $roleVerify as $o => $p ) { $staffID = explode ( '_', $p ); $staffInfo = $staff->getOne ( array ( 'where' => 'sid=' . $staffID [0], 'asArray' => true ) ); // print_r($staffID); $exp = array ( 0 => $staffInfo ['sid'], 1 => $staffID [1], 2 => $staffInfo ['avatar'], 'date' => '', 'date' => '', 'opinion' => '', 'status' => '', 'rolename' => $rolename ['name'] ); array_push ( $roleArray, $exp ); } $roleArrayCopy [$v [0]] = $roleArray; // $verifyList[$k]['roleArray']=$roleArray; } // print_r($roleArray); $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; $verifyList [$k] ['status'] = ""; if (empty ( $verifyStaff )) { $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) { $verifyList [$k] ['status'] = 4; $button = 4; $flag = false; } } else { foreach ( $verifyStaff as $m => $u ) { if ($v [0] == $m) { $verifyList [$k] ['date'] = $u ['date']; $verifyList [$k] ['opinion'] = $u ['opinion']; $verifyList [$k] ['status'] = $u ['status']; $flag = false; break; } } $endStaffArray = end ( $verifyStaff ); if (isset ( $endStaffArray ['ROLE'] )) { } else { $endKey = key ( $verifyStaff ); if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) { $button = 4; $verifyList [$k] ['status'] = 4; } } } } $rolename ['name'] = ''; if (! empty ( $roleId )) { Doo::loadModel ( 'role' ); $role = new role (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $roleId, 'asArray' => true ) ); } if (! empty ( $verifyStaff )) $endStaffArray = end ( $verifyStaff ); $KOP = false; foreach ( $roleArrayCopy as $P => $A ) { foreach ( $A as $MKI => $AVL ) { if (! empty ( $verifyStaff )) { // &&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } foreach ( $verifyStaff as $m => $u ) { $AVLFK = $AVL [0] . '_R'; // echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy [$P] [$MKI] ['date'] = $u ['date']; $roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion']; $roleArrayCopy [$P] [$MKI] ['status'] = $u ['status']; break; } } } else { if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } } // $roleArray[$MKI]['rolename']=$rolename['name']; $KOP = true; } } foreach ( $roleArrayCopy as $k => $v ) { foreach ( $verifyList as $m => $n ) { if ($n [0] == $k) { array_splice ( $verifyList, $m, 1, $v ); } } } // print_r($verifyList); $receiptList [$key] ['verifyList'] = $verifyList; $receiptList [$key] ['staffDetail'] = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['button'] = $button; $receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] ); $receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] ); $relust = $value ['sum'] - $value ['loanSum']; $receiptList [$key] ['relust'] = $relust; $receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) ); } // print_r($receiptList);die; // $data['verifyDetail']=$verifyDetail; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } // 获取审批日志 Doo::loadModel ( 'receiptLog' ); $receiptLog = new receiptLog (); $rlList = array (); $rlInfo = $receiptLog->getOne ( array ( 'where' => 'rid=' . $rid . ' and status=4', 'asArray' => true ) ); $tijdate = $receiptLog->getOne ( array ( 'where' => 'rid=' . $rid . ' and status=2', 'asc' => 'rlid', 'asArray' => true ) ); if (! empty ( $rlInfo )) { $rlList = $receiptLog->find ( array ( 'where' => 'rid=' . $rid, 'asc' => 'rlid', 'asArray' => true ) ); } // echo $rid; // print_r($receiptList); $receiptList [0] ['rlList'] = $rlList; // print_r($receiptList); $enclosurList = $enclosur->find ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); $enclosurHtml = ''; foreach ( $enclosurList as $value ) { $enclosurHtml .= '' . $value ['name'] . ''; } $data ['enclosurHtml'] = $enclosurHtml; $data ['rolename'] = $rolename ['name']; // $data['datetij']=$tijdate['date']; $data ['mothHtml'] = $mothHtml; // print_r($receiptList); $data ['rid'] = $rid; $data ['tijdate'] = $tijdate ['date']; $data ['receiptList'] = $receiptList; $data ['receiptApprovalCount'] = count ( $receiptList ); $data ['status'] = $status; $data ['year'] = $year; $data ['categoryList'] = $categoryList; $data ['staffList'] = $staffList; $data ['cid'] = $cid; $data ['sid'] = $sid; $data ['ap'] = $ap; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approvalExpenses'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/receiptburEdi", $data ); } function hisImplement() { $item = isset ( $this->params ['item'] ) ? $this->params ['item'] : ""; if (empty ( $item )) $item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : ""; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : '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 "; $sopString = ""; $dateCondition = " and Year(date) =" . $year; if ($sop != 'SOP') $sopString = " and staff=" . $sop; $statusCon = '(status=8 or status=9 or status=1 or status=6 )'; 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; } // $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 '
    '; 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 .= ''; else $mothHtml .= ''; } $dayHtml = ""; if ($day != "DAY" || $moth != "MONTH") { for($i = 1; $i <= 31; $i ++) { if ($day == $i) $dayHtml .= ''; else $dayHtml .= ''; } } $sopHtml = ""; foreach ( $sopStaff as $key => $value ) { if ($sop == $key) $sopHtml .= ''; else $sopHtml .= ''; } $data ['sopHtml'] = $sopHtml; $data ['dayHtml'] = $dayHtml; $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $receiptList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'implement'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $data ['item'] = $item; $data ['year'] = $year; $data ['moth'] = $moth; $data ['day'] = $day; $data ['sop'] = $sop; $this->render ( "/admin/hisImplement", $data ); } function ajaxExamine() { $rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); if (! empty ( $rid )) { $rLRes = $receipt->find ( array ( 'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) and rid!=' . $rid, 'asArray' => true ) ); echo json_encode ( array ( 'status' => 1, 'receipt' => $rLRes [0] ) ); die (); } echo json_encode ( array ( 'status' => 0, 'receipt' => array () ) ); die (); } /* * 废弃 */ function myReceipt() { // all approval past withdraw $item = isset ( $this->params ['item'] ) ? $this->params ['item'] : ""; if (empty ( $item )) $item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : ""; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : ""; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); // pre-loaded if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) { // have cache $path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . ".htmls"; if (! empty ( $moth )) // yearPage $path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . "_" . $moth . ".htmls"; $this->showCache ( $path ); } Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); Doo::loadModel ( 'verify' ); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); $verify = new verify (); Doo::loadModel ( 'staff' ); $staff = new staff (); $condition = " and status!=0 "; if ($item == "approval") $condition = " and status=2 "; elseif ($item == "withdraw") $condition = " and status=3 "; elseif ($item == "past") $condition = " and status=1 "; elseif ($item == "whdw") $condition = " and status=4 "; $dateCondition = " and Year(date) =" . $year; if (! empty ( $moth )) { $dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth; $stList = $statistics->getOne ( array ( 'select' => 'rePrice ,agPrice', 'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition, 'asArray' => true ) ); } else $stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $noPassSum = $receipt->receiptByYear ( $year, $this->staff [0] ['sid'] ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'] - $noPassSum ['sum']) ); $receiptList = $receipt->find ( array ( 'where' => 'staff=' . $this->staff [0] ['sid'] . $condition . $dateCondition, 'desc' => 'rid', 'asArray' => true ) ); $Locate = 0; $roleId = 0; $button = 0; foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true ); $receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true ); $categoryDetil = $Lcategory->getOne ( array ( 'where' => 'cid=' . $value ['cid'], 'asArray' => true ) ); $receiptList [$key] ['category'] = $categoryDetil ['title']; // 检测编辑状态 $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $value ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion $verifyStaff = json_decode ( $value ['verifyStaff'], true ); Doo::loadModel ( 'role' ); $role = new role (); $flag = true; $roleKey = 0; $endStaffArray = array (); $roleArrayCopy = array (); foreach ( $verifyList as $k => $v ) { // init verifyStaff if ($v [1] == 'ROLE') { if (! empty ( $verifyStaff )) { $endStaffArray = end ( $verifyStaff ); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify = json_decode ( $v [3], true ); $roleKey = $k; $roleArray = array (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $v [0], 'asArray' => true ) ); foreach ( $roleVerify as $o => $p ) { $staffID = explode ( '_', $p ); $staffInfo = $staff->getOne ( array ( 'where' => 'sid=' . $staffID [0], 'asArray' => true ) ); // print_r($staffID); $exp = array ( 0 => $staffInfo ['sid'], 1 => $staffID [1], 2 => $staffInfo ['avatar'], 'date' => '', 'date' => '', 'opinion' => '', 'status' => '', 'rolename' => $rolename ['name'] ); array_push ( $roleArray, $exp ); } $roleArrayCopy [$v [0]] = $roleArray; // $verifyList[$k]['roleArray']=$roleArray; } $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; $verifyList [$k] ['status'] = ""; if (empty ( $verifyStaff )) { $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) { $verifyList [$k] ['status'] = 4; $flag = false; } } else { foreach ( $verifyStaff as $m => $u ) { if ($v [0] == $m) { $verifyList [$k] ['date'] = $u ['date']; $verifyList [$k] ['opinion'] = $u ['opinion']; $verifyList [$k] ['status'] = $u ['status']; $flag = false; break; } } $endStaffArray = end ( $verifyStaff ); if (isset ( $endStaffArray ['ROLE'] )) { } else { // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename ['name'] = ''; if (! empty ( $roleId )) { Doo::loadModel ( 'role' ); $role = new role (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $roleId, 'asArray' => true ) ); } if (! empty ( $verifyStaff )) $endStaffArray = end ( $verifyStaff ); $KOP = false; foreach ( $roleArrayCopy as $P => $A ) { foreach ( $A as $MKI => $AVL ) { if (! empty ( $verifyStaff )) { // &&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } foreach ( $verifyStaff as $m => $u ) { $AVLFK = $AVL [0] . '_R'; // echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy [$P] [$MKI] ['date'] = $u ['date']; $roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion']; $roleArrayCopy [$P] [$MKI] ['status'] = $u ['status']; break; } } } else { if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } } // $roleArray[$MKI]['rolename']=$rolename['name']; $KOP = true; } } foreach ( $roleArrayCopy as $k => $v ) { foreach ( $verifyList as $m => $n ) { if ($n [0] == $k) { array_splice ( $verifyList, $m, 1, $v ); } } } $receiptList [$key] ['verifyList'] = $verifyList; $receiptList [$key] ['staffDetail'] = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['button'] = $button; } // print_r($receiptList);die; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($moth == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $receiptList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'receipt'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $data ['item'] = $item; $data ['year'] = $year; if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) { // sufficient condition to generate cache if (empty ( $moth ) && ($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 ); // print_r($accountItem['cSum']['agencySum']);die; // foreach ($accountItem['cSum'] as $key=>$value){ // if($key=="agencySum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->AGENCY.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->AGENCY; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // }elseif($key=="travelSum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->TRAVEL.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->TRAVEL; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // }elseif($key=="trainSum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->TRAIN.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->TRAIN; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // }elseif($key=="otherSum"){ // $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and itemCategory="'.$this->OTHER.'"'.$dateCondition,'asArray'=>true)); // if(empty($iStatistics)){ // $itemStatistics->cid=$this->staff[0]['cid']; // $itemStatistics->staff=$this->staff[0]['sid']; // $itemStatistics->price=$value; // $itemStatistics->itemCategory=$this->OTHER; // $itemStatistics->date=date("Y-m-d"); // $itemStatistics->insert(); // }else{ // if (!empty($value)){ // $itemStatistics->price=$value+$iStatistics['price']; // $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid'])); // } // } // } // } $stat = $statistics->getOne ( array ( 'where' => 'staff=' . $this->staff [0] ['sid'] . $dateCondition, 'asArray' => true ) ); if (empty ( $stat )) { $statistics->date = date ( "Y-m-d" ); $statistics->cid = $this->staff [0] ['cid']; $statistics->staff = $this->staff [0] ['sid']; $statistics->agPrice = 0; $statistics->rePrice = $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum']; $statistics->insert (); } else { $statistics->rePrice = $stat ['rePrice'] + $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum']; $statistics->update ( array ( 'where' => 'sid=' . $stat ['sid'] ) ); } return "/expenses"; } function approval() { $status = isset ( $this->params ['status'] ) ? $this->params ['status'] : ''; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' ); $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0; $sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0; if (empty ( $status )) $status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2; $vidList = array (); $button = 0; Doo::loadModel ( 'verify' ); $verify = new verify (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); // user verify ID $verifyDetail = $verify->find ( array ( 'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"', 'asArray' => true ) ); foreach ( $verifyDetail as $key => $value ) { array_push ( $vidList, $value ['vid'] ); } $vid = implode ( ",", $vidList ); if (empty ( $verifyDetail )) $vid = 0; /* */ $dateCondition = " and Year(date) =" . $year; if (! empty ( $month )) $dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month; $categoryList = $Lcategory->find ( array ( 'asArray' => true ) ); $staffList = $staff->find ( array ( 'where' => 'cid=' . $cid, 'asArray' => true ) ); $cateCondition = ""; $staffCondition = ""; $approvalCondition = ""; if (! empty ( $cid )) $cateCondition = ' and cid=' . $cid; if (! empty ( $sid )) { $staffCondition = ' and staff=' . $sid; $cateCondition = ""; } // elseif($status==1){ // $approvalCondition=' and staff='.$this->staff[0]['sid']; // } if ($status == 2) { // 查找角色审批人 $approvalCondition = ' and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) '; } $ap = ""; if ($status == 4) { $ap = 4; $status = 2; $approvalCondition = ' and verifyStaff like "%\"' . $this->staff [0] ['sid'] . '\":{%" '; } if ($status == 5) { $status = 4; $ap = 5; } // echo $vid; // get Receipt By verifyID status 2 .$approvalCondition // $receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition,'desc'=>'rid','asArray'=>true)); $receiptList = $receipt->find ( array ( 'where' => ' status=' . $status . $dateCondition . $cateCondition . $staffCondition . $approvalCondition, 'desc' => 'rid', 'asArray' => true ) ); // echo ' status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition; $Locate = 0; if ($ap == 4) $status = 4; elseif ($ap == 5) $status = 5; foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true ); $receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true ); $categoryDetil = $Lcategory->getOne ( array ( 'where' => 'cid=' . $value ['cid'], 'asArray' => true ) ); $receiptList [$key] ['category'] = $categoryDetil ['title']; $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $value ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion $verifyStaff = json_decode ( $value ['verifyStaff'], true ); foreach ( $verifyList as $k => $v ) { // init verifyStaff $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; $verifyList [$k] ['status'] = ""; if (empty ( $verifyStaff )) { $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; if ($v [0] == $this->staff [0] ['sid']) { $verifyList [$k] ['status'] = 4; $button = 4; } } else { $flag = true; foreach ( $verifyStaff as $m => $u ) { if ($v [0] == $m) { $verifyList [$k] ['date'] = $u ['date']; $verifyList [$k] ['opinion'] = $u ['opinion']; $verifyList [$k] ['status'] = $u ['status']; $flag = false; break; } // elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;} // if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;} // if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;} } if ($flag) { // 检测可编辑 if ($v [0] == $this->staff [0] ['sid']) { $verifyList [$k] ['status'] = 4; $button = 4; } } } } $receiptList [$key] ['verifyList'] = $verifyList; $receiptList [$key] ['staffDetail'] = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['button'] = $button; } // print_r($receiptList);die; // $data['verifyDetail']=$verifyDetail; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $receiptList; $data ['receiptApprovalCount'] = count ( $receiptList ); $data ['status'] = $status; $data ['year'] = $year; $data ['categoryList'] = $categoryList; $data ['staffList'] = $staffList; $data ['cid'] = $cid; $data ['sid'] = $sid; $data ['ap'] = $ap; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approval'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/saea_reportList", $data ); } function approvalDetails() { $rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' ); $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0; $sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0; Doo::loadModel ( 'verify' ); $verify = new verify (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); Doo::loadModel ( 'enclosur' ); $enclosur = new enclosur (); $vidList = array (); $verifyDetail = $verify->find ( array ( 'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"', 'asArray' => true ) ); foreach ( $verifyDetail as $key => $value ) { array_push ( $vidList, $value ['vid'] ); } $vid = implode ( ",", $vidList ); if (empty ( $verifyDetail )) $vid = 0; $categoryList = $Lcategory->find ( array ( 'asArray' => true ) ); $staffList = $staff->find ( array ( 'where' => 'cid=' . $cid, 'asArray' => true ) ); $ap = 0; $receiptList = $receipt->find ( array ( 'where' => 'rid =' . $rid, 'desc' => 'rid', 'asArray' => true ) ); $Locate = 0; $roleId = 0; $button = 0; foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true ); $receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true ); $categoryDetil = $Lcategory->getOne ( array ( 'where' => 'cid=' . $value ['cid'], 'asArray' => true ) ); $receiptList [$key] ['category'] = $categoryDetil ['title']; // 检测编辑状态 $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $value ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion $verifyStaff = json_decode ( $value ['verifyStaff'], true ); Doo::loadModel ( 'role' ); $role = new role (); // print_r($verifyList); $flag = true; $roleKey = 0; $endStaffArray = array (); $roleArrayCopy = array (); foreach ( $verifyList as $k => $v ) { // init verifyStaff if ($v [1] == 'ROLE') { if (! empty ( $verifyStaff )) { $endStaffArray = end ( $verifyStaff ); if ($v [0] == $endStaffArray ['nextStaff']) { $roleId = $v [0]; } } $roleVerify = json_decode ( $v [3], true ); $roleKey = $k; $roleArray = array (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $v [0], 'asArray' => true ) ); foreach ( $roleVerify as $o => $p ) { $staffID = explode ( '_', $p ); $staffInfo = $staff->getOne ( array ( 'where' => 'sid=' . $staffID [0], 'asArray' => true ) ); // print_r($staffID); $exp = array ( 0 => $staffInfo ['sid'], 1 => $staffID [1], 2 => $staffInfo ['avatar'], 'date' => '', 'date' => '', 'opinion' => '', 'status' => '', 'rolename' => $rolename ['name'] ); array_push ( $roleArray, $exp ); } $roleArrayCopy [$v [0]] = $roleArray; // $verifyList[$k]['roleArray']=$roleArray; } // print_r($roleArray); $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; $verifyList [$k] ['status'] = ""; if (empty ( $verifyStaff )) { $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) { $verifyList [$k] ['status'] = 4; $button = 4; $flag = false; } } else { foreach ( $verifyStaff as $m => $u ) { if ($v [0] == $m) { $verifyList [$k] ['date'] = $u ['date']; $verifyList [$k] ['opinion'] = $u ['opinion']; $verifyList [$k] ['status'] = $u ['status']; $flag = false; break; } } $endStaffArray = end ( $verifyStaff ); if (isset ( $endStaffArray ['ROLE'] )) { } else { $endKey = key ( $verifyStaff ); if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) { $button = 4; $verifyList [$k] ['status'] = 4; } } } } $rolename ['name'] = ''; if (! empty ( $roleId )) { Doo::loadModel ( 'role' ); $role = new role (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $roleId, 'asArray' => true ) ); } if (! empty ( $verifyStaff )) $endStaffArray = end ( $verifyStaff ); $KOP = false; foreach ( $roleArrayCopy as $P => $A ) { foreach ( $A as $MKI => $AVL ) { if (! empty ( $verifyStaff )) { // &&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } foreach ( $verifyStaff as $m => $u ) { $AVLFK = $AVL [0] . '_R'; // echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy [$P] [$MKI] ['date'] = $u ['date']; $roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion']; $roleArrayCopy [$P] [$MKI] ['status'] = $u ['status']; break; } } } else { if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } } // $roleArray[$MKI]['rolename']=$rolename['name']; $KOP = true; } } foreach ( $roleArrayCopy as $k => $v ) { foreach ( $verifyList as $m => $n ) { if ($n [0] == $k) { array_splice ( $verifyList, $m, 1, $v ); } } } $receiptList [$key] ['verifyList'] = $verifyList; $receiptList [$key] ['staffDetail'] = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['button'] = $button; } $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } // 获取审批日志 Doo::loadModel ( 'receiptLog' ); $receiptLog = new receiptLog (); $rlList = array (); $rlInfo = $receiptLog->getOne ( array ( 'where' => 'rid=' . $rid . ' and status=4', 'asArray' => true ) ); $tijdate = $receiptLog->getOne ( array ( 'where' => 'rid=' . $rid . ' and status=2', 'asc' => 'rlid', 'asArray' => true ) ); if (! empty ( $rlInfo )) { $rlList = $receiptLog->find ( array ( 'where' => 'rid=' . $rid, 'asc' => 'rlid', 'asArray' => true ) ); } $receiptList [0] ['rlList'] = $rlList; $enclosurList = $enclosur->find ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); $enclosurHtml = ''; foreach ( $enclosurList as $value ) { $enclosurHtml .= '' . $value ['name'] . ''; } $data ['enclosurHtml'] = $enclosurHtml; $data ['rolename'] = $rolename ['name']; $data ['datetij'] = $tijdate ['date']; $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $receiptList; $data ['receiptApprovalCount'] = count ( $receiptList ); $data ['year'] = $year; $data ['categoryList'] = $categoryList; $data ['staffList'] = $staffList; $data ['cid'] = $cid; $data ['sid'] = $sid; $data ['status'] = 0; if ($receiptList [0] ['status'] != 1 && $receiptList [0] ['status'] != 3) { $ap = 4; } else $data ['status'] = $receiptList [0] ['status']; if ($receiptList [0] ['status'] == 4) { $data ['status'] = 5; $ap = 0; } $data ['ap'] = $ap; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approval'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/saeaReportListReport", $data ); } function approvalEdi() { $rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0; $status = isset ( $this->params ['status'] ) ? $this->params ['status'] : ''; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' ); $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0; $sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0; if (empty ( $status )) $status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2; $vidList = array (); $button = 0; Doo::loadModel ( 'verify' ); Doo::loadModel ( 'receipt' ); Doo::loadModel ( 'staff' ); $staff = new staff (); $receipt = new receipt (); $verify = new verify (); Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); Doo::loadModel ( 'enclosur' ); $enclosur = new enclosur (); // user verify ID $verifyDetail = $verify->find ( array ( 'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"', 'asArray' => true ) ); foreach ( $verifyDetail as $key => $value ) { array_push ( $vidList, $value ['vid'] ); } $vid = implode ( ",", $vidList ); if (empty ( $verifyDetail )) $vid = 0; $categoryList = $Lcategory->find ( array ( 'asArray' => true ) ); $staffList = $staff->find ( array ( 'where' => 'cid=' . $cid, 'asArray' => true ) ); $ap = ""; if ($status == 4) { $ap = 4; $status = 2; } // get Receipt By verifyID status 2 $receiptList = $receipt->find ( array ( 'where' => 'rid =' . $rid, 'desc' => 'rid', 'asArray' => true ) ); $Locate = 0; $roleId = 0; if ($ap == 4) $status = 4; foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true ); $receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true ); $categoryDetil = $Lcategory->getOne ( array ( 'where' => 'cid=' . $value ['cid'], 'asArray' => true ) ); $receiptList [$key] ['category'] = $categoryDetil ['title']; // 检测编辑状态 $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $value ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion $verifyStaff = json_decode ( $value ['verifyStaff'], true ); // print_r($verifyList); // // if (empty($verifyStaff)){ // if ($this->staff[0]['sid']==$verifyStaff[0][0]){ // $verifyList[0]['status']=4;$button=4; // } // // }else{ // // } // die; // $a=array("a"=>"red","b"=>"green","c"=>"blue"); // echo array_search("green",$a); // Doo::loadModel ( 'role' ); $role = new role (); // print_r($verifyList); $flag = true; $roleKey = 0; $endStaffArray = array (); $roleArrayCopy = array (); foreach ( $verifyList as $k => $v ) { // init verifyStaff if ($v [1] == 'ROLE') { if (! empty ( $verifyStaff )) { $endStaffArray = end ( $verifyStaff ); if ($v [0] == $endStaffArray ['nextStaff']) { $roleId = $v [0]; } } $roleVerify = json_decode ( $v [3], true ); $roleKey = $k; $roleArray = array (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $v [0], 'asArray' => true ) ); foreach ( $roleVerify as $o => $p ) { $staffID = explode ( '_', $p ); $staffInfo = $staff->getOne ( array ( 'where' => 'sid=' . $staffID [0], 'asArray' => true ) ); // print_r($staffID); $exp = array ( 0 => $staffInfo ['sid'], 1 => $staffID [1], 2 => $staffInfo ['avatar'], 'date' => '', 'date' => '', 'opinion' => '', 'status' => '', 'rolename' => $rolename ['name'] ); array_push ( $roleArray, $exp ); } $roleArrayCopy [$v [0]] = $roleArray; // $verifyList[$k]['roleArray']=$roleArray; } // print_r($roleArray); $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; $verifyList [$k] ['status'] = ""; if (empty ( $verifyStaff )) { $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) { $verifyList [$k] ['status'] = 4; $button = 4; $flag = false; } } else { foreach ( $verifyStaff as $m => $u ) { if ($v [0] == $m) { $verifyList [$k] ['date'] = $u ['date']; $verifyList [$k] ['opinion'] = $u ['opinion']; $verifyList [$k] ['status'] = $u ['status']; $flag = false; break; } } $endStaffArray = end ( $verifyStaff ); if (isset ( $endStaffArray ['ROLE'] )) { } else { $endKey = key ( $verifyStaff ); if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) { $button = 4; $verifyList [$k] ['status'] = 4; } } // print_r($endStaffArray);die; // if (empty($verifyStaff)){ // if ($this->staff[0]['sid']==$verifyStaff[0][0]){ // $verifyList[$k]['status']=4;$button=4; // } // // }else{ // // } // if($flag){//检测可编辑 // if($v[0]==$this->staff[0]['sid']){ // $verifyList[$k]['status']=4;$button=4; // } // } } } $rolename ['name'] = ''; if (! empty ( $roleId )) { Doo::loadModel ( 'role' ); $role = new role (); $rolename = $role->getOne ( array ( 'where' => 'rid=' . $roleId, 'asArray' => true ) ); } if (! empty ( $verifyStaff )) $endStaffArray = end ( $verifyStaff ); $KOP = false; foreach ( $roleArrayCopy as $P => $A ) { foreach ( $A as $MKI => $AVL ) { if (! empty ( $verifyStaff )) { // &&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } foreach ( $verifyStaff as $m => $u ) { $AVLFK = $AVL [0] . '_R'; // echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
    '; if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy [$P] [$MKI] ['date'] = $u ['date']; $roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion']; $roleArrayCopy [$P] [$MKI] ['status'] = $u ['status']; break; } } } else { if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') { $button = 4; $roleArrayCopy [$P] [$MKI] ['status'] = 4; } } // $roleArray[$MKI]['rolename']=$rolename['name']; $KOP = true; } } // print_r($roleArrayCopy); // echo $roleKey; foreach ( $roleArrayCopy as $k => $v ) { foreach ( $verifyList as $m => $n ) { if ($n [0] == $k) { array_splice ( $verifyList, $m, 1, $v ); } } } // if ($KOP) // array_splice($verifyList,$roleKey,1,$roleArray); // print_r($verifyList); $receiptList [$key] ['verifyList'] = $verifyList; $receiptList [$key] ['staffDetail'] = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['button'] = $button; } // $data['verifyDetail']=$verifyDetail; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } // 获取审批日志 Doo::loadModel ( 'receiptLog' ); $receiptLog = new receiptLog (); $rlList = array (); $rlInfo = $receiptLog->getOne ( array ( 'where' => 'rid=' . $rid . ' and status=4', 'asArray' => true ) ); $tijdate = $receiptLog->getOne ( array ( 'where' => 'rid=' . $rid . ' and status=2', 'asc' => 'rlid', 'asArray' => true ) ); if (! empty ( $rlInfo )) { $rlList = $receiptLog->find ( array ( 'where' => 'rid=' . $rid, 'asc' => 'rlid', 'asArray' => true ) ); } $receiptList [0] ['rlList'] = $rlList; $enclosurList = $enclosur->find ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); $enclosurHtml = ''; foreach ( $enclosurList as $value ) { $enclosurHtml .= '' . $value ['name'] . ''; } $data ['enclosurHtml'] = $enclosurHtml; $data ['rolename'] = $rolename ['name']; $data ['datetij'] = $tijdate ['date']; $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $receiptList; $data ['receiptApprovalCount'] = count ( $receiptList ); $data ['status'] = $status; $data ['year'] = $year; $data ['categoryList'] = $categoryList; $data ['staffList'] = $staffList; $data ['cid'] = $cid; $data ['sid'] = $sid; $data ['ap'] = $ap; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approval'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/saeaReportListReport", $data ); } function remittanceHky() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : date ( "m" ); $day = $this->get_args ( 'day' ) ? $this->get_args ( 'day' ) : 'DAY'; $page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $page_size = 15; $get = "?year=" . $year . "&moth=" . $moth . "&day=" . $day; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); $dateCondition = " and Year(executeDate) =" . $year; if ($moth != 'MONTH') $dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth; if ($day != 'DAY' && $moth != 'MONTH') $dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth . " and day(executeDate)=" . $day; $sql = ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition; $table = '(SELECT count(*) FROM CLD_receipt WHERE ' . $sql . ' group by executeDate ) a '; $pageinfo = $this->get_page ( $table, ' ', $page, $page_size, "remittanceHky", $get, "" ); $limit = $pageinfo ['lower'] . ',' . $page_size; $dayList = $receipt->find ( array ( 'select' => 'executeDate,sum(amount) as amount', 'where' => $sql, 'desc' => 'executeDate', 'groupby' => 'executeDate', 'limit' => $limit, 'asArray' => true ) ); // print_r($dayList); foreach ( $dayList as $key => $value ) { $remitString = ""; $receiptList = $receipt->find ( array ( 'select' => 'rid,executeDate,amount,staff,cid', 'where' => '(status =8 or status=9 ) and amount!=0 and executeDate="' . $value ['executeDate'] . '"', 'desc' => 'executeDate', 'asArray' => true ) ); foreach ( $receiptList as $k => $v ) { $sinfo = $staff->getOne ( array ( 'select' => 'username,category', 'where' => ' sid=' . $v ['staff'], 'asArray' => true ) ); $remitString .= $sinfo ['category'] . '-' . $sinfo ['username'] . '(' . $v ['amount'] . ')  '; } $dayList [$key] ['staff'] = $remitString; $dayList [$key] ['ridKey'] = strtotime ( $value ['executeDate'] ); } // print_r($dayList); $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($moth == $i) $mothHtml .= ''; else $mothHtml .= ''; } $dayHtml = ""; if ($day != "DAY" || $moth != "MONTH") { for($i = 1; $i <= 31; $i ++) { if ($day == $i) $dayHtml .= ''; else $dayHtml .= ''; } } $data ['page'] = $pageinfo; $data ['year'] = $year; $data ['moth'] = $moth; $data ['day'] = $day; $data ['get'] = $get; $data ['dayHtml'] = $dayHtml; $data ['mothHtml'] = $mothHtml; $data ['receiptList'] = $dayList; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'remittanceHky'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/remittanceHky", $data ); } function remittancep() { $timeStamp = isset ( $this->params ['timeStamp'] ) && is_numeric ( $this->params ['timeStamp'] ) ? $this->params ['timeStamp'] : 0; Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $dateCondition = ' and executeDate="' . date ( 'Y-m-d', $timeStamp ) . '"'; $rplist = $receipt->find ( array ( 'where' => ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition, 'asArray' => true ) ); $dayList = $receipt->find ( array ( 'where' => ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition, 'desc' => 'executeDate', 'groupby' => 'staff', 'asArray' => true ) ); $html = ''; foreach ( $dayList as $key => $value ) { $sinfo = $staff->getOne ( array ( 'select' => 'username,category', 'where' => ' sid=' . $value ['staff'], 'asArray' => true ) ); $html .= ''; $au = 0; foreach ( $rplist as $k => $v ) { if ($value ['staff'] == $v ['staff']) { $html .= ''; $au += $v ['amount']; } } $html .= '
    ' . $sinfo ['category'] . '-' . $sinfo ['username'] . '
    费用单号汇款金额
    ' . $v ['receiptOrder'] . '¥' . $v ['amount'] . '
    合计¥' . $au . '
    '; } $data ['html'] = $html; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'remittanceHky'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/remittancep", $data ); } function ajaxGetReceiptDetails() { $rid = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : ""; Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $rid = $XDeode->decode ( $rid ); if (empty ( $rid )) { echo json_encode ( array ( 'status' => 2, 'msg' => 'illegal request' ) ); die (); } Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); $rinfo = $receipt->getOne ( array ( 'where' => 'rid= ' . $rid, 'asArray' => true ) ); $sinfo = $staff->getOne ( array ( 'select' => 'username,category', 'where' => ' sid=' . $rinfo ['staff'], 'asArray' => true ) ); $rinfo ['reviseDetail'] = array (); if (! empty ( $rinfo ['reviseDetail'] )) $rinfo ['reviseDetail'] = json_decode ( $rinfo ['reviseDetail'], true ); $rinfo ['accountItem'] = json_decode ( $rinfo ['accountItem'], true ); $rinfo ['loanItem'] = json_decode ( $rinfo ['loanItem'], true ); $rinfo ['category'] = $sinfo ['category']; $verifyStaff = array (); if (! empty ( $rinfo ['verifyStaff'] )) $verifyStaff = json_decode ( $rinfo ['verifyStaff'], true ); $relust = $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 = ''; 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 .= ' ' . $v ['receiptOrder'] . '、'; } $receiptList [$key] ['receiptOrder'] = $html; // $receiptList[$key]['receiptOrder']=implode(",", $list); $sinfo = $staff->getOne ( array ( 'select' => 'username ', 'where' => ' sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['username'] = $sinfo ['username']; $daySum += $value ['sum']; array_push ( $dataList [$a ['pastDate']], $receiptList [$key] ); } $dataList [$a ['pastDate']] ['9999999'] = number_format ( $daySum, 2 ); // $dataList[$a['pastDate']]['8888888']=json_decode($a['verifyStaff'],true); } } // print_r($dataList); $data ['dataList'] = $dataList; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['year'] = $year; $data ['mothHtml'] = $mothHtml; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approval'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/saeaReportListPay", $data ); } function revocationAdjustment() { $sid = isset ( $this->params ['sid'] ) && is_numeric ( $this->params ['sid'] ) ? $this->params ['sid'] : 0; $price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999; $rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0; // echo $price;die; if ((! empty ( $sid )) && ($price != - 99999) && (! empty ( $rid ))) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptDetail = $receipt->getOne ( array ( 'where' => 'rid=' . $rid, 'asArray' => true ) ); if (empty ( $receiptDetail ['reviseDetail'] )) return "/approval"; $reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true ); $RD = array (); foreach ( $reviseDetail as $key => $value ) { if ($value ['price'] == $price && $value ['sid'] == $sid) continue; array_push ( $RD, $value ); } $reviseDetailString = json_encode ( $RD ); $receipt->reviseDetail = $reviseDetailString; $receipt->sum = $receiptDetail ['sum'] - $price; $receipt->revisePrice = $receiptDetail ['revisePrice'] - $price; $receipt->update ( array ( 'where' => 'rid=' . $rid ) ); } // approvalEdi/37 return "/approvalEdi/" . $rid; } function updateApprovalReceipt() { $opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : ""; $status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0; $rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0; $Locate = $this->get_args ( 'Locate' ) && is_numeric ( $this->get_args ( 'Locate' ) ) ? $this->get_args ( 'Locate' ) : 0; $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, '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 = $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 ) ); 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 .= '-'; else $collectHtml .= '¥' . $sumPrice . ''; $total += $sumPrice; } $collectHtml .= '¥' . $total . ''; $data ['totalPrice'] = $collectHtml; $data ['year'] = $year; $data ['totalYear'] = $total; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'personalCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; // year staff status 2,4 if ($year < date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( array ( 'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year, 'asArray' => true ) ); if (empty ( $receiptList )) { ob_start (); $this->render ( "/admin/saea_slist_collect", $data ); $this->cacheFile ( $path ); die (); } } $this->render ( "/admin/saea_slist_collect", $data ); } function personalCollectDetail() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $path = SITE_PATH . $this->PERSONALCOLLECTCACHEPATH . "personalCollectDetail_" . $year . ".htmls"; $this->showCache ( $path ); Doo::loadModel ( "receiptDetail" ); Doo::loadModel ( "itemStatistics" ); Doo::loadModel ( 'statistics' ); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); $statistics = new statistics (); $itemStatistics = new itemStatistics (); $receiptDetail = new receiptDetail (); $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year, 'groupby' => 'item,Month(date)', 'asArray' => true ) ); $accountList = $accountItem->find ( array ( 'asArray' => true ) ); // create CollectDetail HTML $collectHtml = array (); foreach ( $accountList as $key => $value ) { $html = ""; $asum = 0; for($i = 1; $i <= 12; $i ++) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) { $asum += $v ['price']; $html .= '¥' . $v ['price'] . ''; $falg = false; break; } } if ($falg) $html .= '-'; } $html .= '¥' . $asum . ''; $collectHtml [$value ['category']] [$value ['name']] = $html; } $data ['collectHtml'] = $collectHtml; // create Adjustment price html $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,sum(price) as price,itemCategory,Month(date) as month', 'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year, 'groupby' => 'itemCategory,Month(date)', 'asArray' => true ) ); $adjustment = array (); $collectArray = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' ); array_push ( $collectArray ['日常相关费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' ); array_push ( $collectArray ['差旅相关费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' ); array_push ( $collectArray ['培训班费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' ); array_push ( $collectArray ['其他'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' ); array_push ( $adjustment, $collectHtml ); // total price html $collectHtml = ""; $total = 0; for($i = 1; $i <= 12; $i ++) { $sumPrice = 0; foreach ( $receiptCollectList as $key => $value ) { if ($value ['month'] == $i) { $sumPrice += $value ['price']; } } if ($sumPrice == 0) $collectHtml .= '-'; else $collectHtml .= '¥' . $sumPrice . ''; $total += $sumPrice; } $collectHtml .= '¥' . $total . ''; // statistics html $stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $data ['collectArray'] = $collectArray; $data ['adjustment'] = $adjustment; $data ['totalPrice'] = $collectHtml; $data ['totalYear'] = $total; $data ['year'] = $year; $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 .= '¥' . $v ['price'] . ''; $falg = false; break; } } if ($falg) $html .= '-'; } $html .= '¥' . $asum . ''; $collectHtml [$value ['title']] = array ( 'html' => $html, 'cid' => $value ['cid'] ); } $data ['companyHtml'] = $collectHtml; // total price html $collectHtml = ""; $total = 0; for($i = 1; $i <= 12; $i ++) { $sumPrice = 0; foreach ( $itemStatisticsList as $key => $value ) { if ($value ['month'] == $i) { $sumPrice += $value ['price']; } } if ($sumPrice == 0) $collectHtml .= '-'; else $collectHtml .= '¥' . $sumPrice . ''; $total += $sumPrice; } $collectHtml .= '¥' . $total . ''; $data ['companyTotalHtml'] = $collectHtml; $data ['total'] = $total; // statistics html $stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'] ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $data ['year'] = $year; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; // year staff status 2,4 if ($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 .= '¥' . $v ['price'] . ''; $falg = false; break; } } if ($falg) $html .= '-'; } $html .= '¥' . $asum . ''; $collectHtml [$value ['category']] [$value ['name']] = $html; } $data ['collectHtml'] = $collectHtml; // create Adjustment price html $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year, 'groupby' => 'itemCategory,Month(pastDate)', 'asArray' => true ) ); $adjustment = array (); $collectArray = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' ); array_push ( $collectArray ['日常相关费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' ); array_push ( $collectArray ['差旅相关费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' ); array_push ( $collectArray ['培训班费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' ); array_push ( $collectArray ['其他'], $collectHtml ); $data ['collectArray'] = $collectArray; $collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' ); array_push ( $adjustment, $collectHtml ); $data ['adjustment'] = $adjustment; // total price html $collectHtml = ""; $total = 0; for($i = 1; $i <= 12; $i ++) { $sumPrice = 0; foreach ( $receiptCollectList as $key => $value ) { if ($value ['month'] == $i) { $sumPrice += $value ['price']; } } if ($sumPrice == 0) $collectHtml .= '-'; else $collectHtml .= '¥' . $sumPrice . ''; $total += $sumPrice; } $collectHtml .= '¥' . $total . ''; // statistics html $stList = $statistics->statisticsByCid ( $year, $cid ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $data ['totalYear'] = $total; $data ['year'] = $year; $data ['cid'] = $cid; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; // year staff status 2,4 if ($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 = '' . $vlu ['category'] . ''; $m1 = 0; $m2 = 0; $m3 = 0; $m4 = 0; $m5 = 0; $m6 = 0; $m7 = 0; $m8 = 0; $m9 = 0; $m10 = 0; $m11 = 0; $m12 = 0; $m13 = 0; foreach ( $staffList as $value ) { if ($vlu ['cid'] == $value ['cid']) { $html .= '' . $value ['username'] . ''; $asum = 0; for($i = 1; $i <= 12; $i ++) { $falg = true; foreach ( $itemStatisticsList as $v ) { if ($value ['sid'] == $v ['staff'] && $i == $v ['month']) { if ($v ['month'] == 1) $m1 += $v ['price']; if ($v ['month'] == 2) $m2 += $v ['price']; if ($v ['month'] == 3) $m3 += $v ['price']; if ($v ['month'] == 4) $m4 += $v ['price']; if ($v ['month'] == 5) $m5 += $v ['price']; if ($v ['month'] == 6) $m6 += $v ['price']; if ($v ['month'] == 7) $m7 += $v ['price']; if ($v ['month'] == 8) $m8 += $v ['price']; if ($v ['month'] == 9) $m9 += $v ['price']; if ($v ['month'] == 10) $m10 += $v ['price']; if ($v ['month'] == 11) $m11 += $v ['price']; if ($v ['month'] == 12) $m12 += $v ['price']; $asum += $v ['price']; $html .= '¥' . $v ['price'] . ''; $falg = false; break; } } if ($falg) $html .= '-'; } $m13 += $asum; $html .= '¥' . $asum . ''; $collectHtml [$value ['username']] = array ( 'html' => $html, 'sid' => $value ['sid'] ); $html = ""; } } $hl = '小计¥' . $m1 . '¥' . $m2 . '¥' . $m3 . '¥' . $m4 . '¥' . $m5 . ' ¥' . $m6 . '¥' . $m7 . '¥' . $m8 . '¥' . $m9 . '¥' . $m10 . '¥' . $m11 . ' ¥' . $m12 . '¥' . $m13 . ''; $collectHtml [$vlu ['cid']] = array ( 'html' => $hl, 'sid' => '' ); } $data ['companyHtml'] = $collectHtml; // total price html $collectHtml = ""; $total = 0; for($i = 1; $i <= 12; $i ++) { $sumPrice = 0; foreach ( $itemStatisticsList as $key => $value ) { if ($value ['month'] == $i) { $sumPrice += $value ['price']; } } if ($sumPrice == 0) $collectHtml .= '-'; else $collectHtml .= '¥' . $sumPrice . ''; $total += $sumPrice; } $collectHtml .= '¥' . $total . ''; $data ['companyTotalHtml'] = $collectHtml; $data ['total'] = $total; $data ['year'] = $year; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; if ($year <= date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( array ( 'where' => '(status=2 or status=4) and Year(date) =' . $year, 'asArray' => true ) ); if (empty ( $receiptList )) { // generated files ob_start (); $this->render ( "/admin/saeaStaffCollectB", $data ); $this->cacheFile ( $path ); die (); } } $this->render ( "/admin/saeaStaffCollectB", $data ); } function staffCollectBak() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : 1; $path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_" . $month . ".htmls"; $this->showCache ( $path ); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); Doo::loadModel ( "receiptDetail" ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( 'itemStatistics' ); $itemStatistics = new itemStatistics (); $itemStatisticsList = $itemStatistics->find ( array ( 'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month', 'where' => 'Month(date)=' . $month . " and Year(date)=" . $year, 'groupby' => 'staff,itemCategory,Month(date)', 'asArray' => true ) ); $itemCategoryList = $itemStatistics->find ( array ( 'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month', 'where' => 'Month(date)=' . $month . " and Year(date)=" . $year, 'groupby' => 'cid,itemCategory,Month(date)', 'asArray' => true ) ); $LcategoryList = $Lcategory->find ( array ( 'asArray' => true ) ); $staffList = $staff->find ( array ( 'asArray' => true ) ); $htmlArray = array (); foreach ( $LcategoryList as $value ) { $htmlArray [$value ['title']] = array (); foreach ( $staffList as $v ) { if ($value ['cid'] == $v ['cid']) { $html = ""; $falg = true; $staffSumPrice = 0; foreach ( $itemStatisticsList as $a ) { if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "日常相关费用") { if (empty ( $a ['price'] )) { $html .= '-'; $falg = false; break; } else { $staffSumPrice += $a ['price']; $html .= '¥' . $a ['price'] . ''; $falg = false; break; } } } if ($falg) { $html .= '-'; $falg = true; } $falg = true; foreach ( $itemStatisticsList as $a ) { if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "差旅相关费用") { if (empty ( $a ['price'] )) { $html .= '-'; $falg = false; break; } else { $staffSumPrice += $a ['price']; $html .= '¥' . $a ['price'] . ''; $falg = false; break; } } } if ($falg) { $html .= '-'; $falg = true; } $falg = true; foreach ( $itemStatisticsList as $a ) { if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "培训班费用") { if (empty ( $a ['price'] )) { $html .= '-'; $falg = false; break; } else { $staffSumPrice += $a ['price']; $html .= '¥' . $a ['price'] . ''; $falg = false; break; } } } if ($falg) { $html .= '-'; $falg = true; } $falg = true; foreach ( $itemStatisticsList as $a ) { if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "其他") { if (! empty ( $a ['price'] )) { $staffSumPrice += $a ['price']; $html .= '¥' . $a ['price'] . ''; $falg = false; break; } else { $html .= '-'; $falg = false; break; } } } if ($falg) { $html .= '-'; $falg = true; } $falg = true; foreach ( $itemStatisticsList as $a ) { if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "报销金额调整") { if (! empty ( $a ['price'] )) { $staffSumPrice += $a ['price']; $html .= '¥' . $a ['price'] . ''; $falg = false; break; } else { $html .= '-'; $falg = false; break; } } } if ($falg) { $html .= '-'; $falg = true; } $html .= '¥' . $staffSumPrice . ''; $htmlArray [$value ['title']] [$v ['username']] = $html; } } /* -- --- */ // 合计费用 $cateHtml = ""; $catePrice = 0; $cateFalg = true; foreach ( $itemCategoryList as $l ) { if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "日常相关费用") { if (empty ( $l ['price'] )) { $cateHtml .= '-'; $cateFalg = false; break; } else { $catePrice += $l ['price']; $cateHtml .= '¥' . $l ['price'] . ''; $cateFalg = false; break; } } } if ($cateFalg) { $cateHtml .= '-'; $cateFalg = true; } $cateFalg = true; foreach ( $itemCategoryList as $l ) { if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "差旅相关费用") { if (empty ( $l ['price'] )) { $cateHtml .= '-'; $cateFalg = false; break; } else { $catePrice += $l ['price']; $cateHtml .= '¥' . $l ['price'] . ''; $cateFalg = false; break; } } } if ($cateFalg) { $cateHtml .= '-'; $cateFalg = true; } $cateFalg = true; foreach ( $itemCategoryList as $l ) { if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "培训班费用") { if (empty ( $l ['price'] )) { $cateHtml .= '-'; $cateFalg = false; break; } else { $catePrice += $l ['price']; $cateHtml .= '¥' . $l ['price'] . ''; $cateFalg = false; break; } } } if ($cateFalg) { $cateHtml .= '-'; $cateFalg = true; } $cateFalg = true; foreach ( $itemCategoryList as $l ) { if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "其他") { if (empty ( $l ['price'] )) { $cateHtml .= '-'; $cateFalg = false; break; } else { $catePrice += $l ['price']; $cateHtml .= '¥' . $l ['price'] . ''; $cateFalg = false; break; } } } if ($cateFalg) { $cateHtml .= '-'; $cateFalg = true; } $cateFalg = true; foreach ( $itemCategoryList as $l ) { if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "报销金额调整") { if (empty ( $l ['price'] )) { $cateHtml .= '-'; $cateFalg = false; break; } else { $catePrice += $l ['price']; $cateHtml .= '¥' . $l ['price'] . ''; $cateFalg = false; break; } } } if ($cateFalg) { $cateHtml .= '-'; $cateFalg = true; } $cateHtml .= '¥' . $catePrice . ''; $htmlArray [$value ['title']] ['合计'] = $cateHtml; /* -- --- */ } // print_r($htmlArray);die; $data ['htmlArray'] = $htmlArray; // statistics html $stList = $statistics->getOne ( array ( 'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where' => 'Month(date)=' . $month . " and Year(date)=" . $year, 'groupby' => 'Month(date)', 'asArray' => true ) ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $monthHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($i == $month) $monthHtml .= ''; else $monthHtml .= ''; } $data ['monthHtml'] = $monthHtml; $data ['year'] = $year; $data ['month'] = $month; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; if (! empty ( $month ) && ($year <= date ( "Y" )) && ($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=''.$v['category'].''; $r1 = 0; $r2 = 0; $r3 = 0; $r4 = 0; $r5 = 0; $r6 = 0; $r7 = 0; $r8 = 0; $r9 = 0; $r10 = 0; $r11 = 0; $r12 = 0; $r13 = 0; $r14 = 0; $r15 = 0; $c1 = 0; $c2 = 0; $c3 = 0; $c4 = 0; $c5 = 0; $c6 = 0; $p1 = 0; $p2 = 0; $p3 = 0; $p4 = 0; $p5 = 0; $p6 = 0; $p7 = 0; $p8 = 0; $p9 = 0; $t1 = 0; $t2 = 0; $t3 = 0; $t4 = 0; $t5 = 0; $s1 = 0; $m1 = 0; foreach ( $staffList as $value ) { if ($vlu ['cid'] == $value ['cid']) { // pastDate $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month, 'groupby' => 'item,Month(pastDate),itemCategory', 'asArray' => true ) ); // if ($value['sid']==42){ // print_r($receiptCollectList);die; // } if (! empty ( $receiptCollectList )) { $receiptL = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $html = ""; $psum = 0; $item = array ( '市内交通费', '市内出租费', '办事处房租', '电话费', '水费', '电费', '办公费用', '邮寄费', '其他费用', '车辆费用', '广告费', '团队建设费', '物业管理费', '宽带费' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '日常相关费用') { if ($v ['item'] == $va) { if ($va == '市内交通费') $r1 += $v ['price']; if ($va == '市内出租费') $r2 += $v ['price']; if ($va == '办事处房租') $r3 += $v ['price']; if ($va == '电话费') $r4 += $v ['price']; if ($va == '水费') $r5 += $v ['price']; if ($va == '电费') $r6 += $v ['price']; if ($va == '办公费用') $r7 += $v ['price']; if ($va == '邮寄费') $r8 += $v ['price']; if ($va == '其他费用') $r9 += $v ['price']; if ($va == '车辆费用') $r10 += $v ['price']; if ($va == '广告费') $r11 += $v ['price']; if ($va == '团队建设费') $r13 += $v ['price']; if ($va == '物业管理费') $r14 += $v ['price']; if ($va == '宽带费') $r15 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $r12 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['日常相关费用'] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; $item = array ( '往来交通费', '市内交通费', '出差住宿费', '出差补助', '其他费用' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '差旅相关费用') { if ($v ['item'] == $va) { if ($va == '往来交通费') $c1 += $v ['price']; if ($va == '市内交通费') $c2 += $v ['price']; if ($va == '出差住宿费') $c3 += $v ['price']; if ($va == '出差补助') $c4 += $v ['price']; if ($va == '其他费用') $c5 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $c6 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['差旅相关费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '场租费', '薪酬', '住宿费', '交通费', '餐饮费', '办公费', '公关费', '其他' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '培训班费用') { if ($v ['item'] == $va) { if ($va == '场租费') $p1 += $v ['price']; if ($va == '薪酬') $p2 += $v ['price']; if ($va == '住宿费') $p3 += $v ['price']; if ($va == '交通费') $p4 += $v ['price']; if ($va == '餐饮费') $p5 += $v ['price']; if ($va == '办公费') $p6 += $v ['price']; if ($va == '公关费') $p7 += $v ['price']; if ($va == '其他') $p8 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $p9 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['培训班费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '公关费', '广告费', '借款', '可自加费用' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '其他') { // if ($value['sid']==42){ // // echo var_dump($v['item']); // echo var_dump($va); // echo var_dump($v['item']==" ".$va); // echo $v['item']."==".$va."/
    "; // //print_r( $receiptCollectList);//echo $va; // } if (trim ( $v ['item'] ) == $va) { if ($va == '公关费') $t1 += $v ['price']; if ($va == '广告费') { $t2 += $v ['price']; } if ($va == '借款') $t3 += $v ['price']; if ($va == '可自加费用') $t4 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $t5 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['其他'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '报销金额调整') { if (! empty ( $v ['price'] )) { $psum += $v ['price']; } } } $s1 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['报销金额调整'] = $psum . $html; } else { $receiptL ['日常相关费用'] = '----- -------- --'; $receiptL ['差旅相关费用'] = '-- ----'; $receiptL ['培训班费用'] = '----- ----'; $receiptL ['其他'] = '-----'; $receiptL ['报销金额调整'] = '-'; } $monthStaffPrice = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month, 'groupby' => 'Month(pastDate)', 'asArray' => true ) ); // echo 'staff='.$value['sid']." and status=1 and Year(date)=".$year.' and Month(date)='.$month; if (! empty ( $monthStaffPrice [0] ['price'] )) { $m1 += $monthStaffPrice [0] ['price']; $receiptL ['monthStaffPrice'] = '¥' . $monthStaffPrice [0] ['price'] . ''; } else $receiptL ['monthStaffPrice'] = '-'; $list [$value ['username']] = $receiptL; } } $receiptL ['日常相关费用'] = '' . $r12 . '' . $r1 . '' . $r2 . '' . $r3 . '' . $r4 . '' . $r5 . ' ' . $r6 . '' . $r7 . '' . $r8 . '' . $r9 . '' . $r10 . '' . $r11 . '' . $r13 . ' ' . $r14 . '' . $r15 . ''; $receiptL ['差旅相关费用'] = '' . $c6 . '' . $c1 . ' ' . $c2 . '' . $c3 . '' . $c4 . '' . $c5 . ''; $receiptL ['培训班费用'] = '' . $p9 . '' . $p1 . '' . $p2 . '' . $p3 . '' . $p4 . ' ' . $p5 . '' . $p6 . '' . $p7 . '' . $p8 . ''; $receiptL ['其他'] = '' . $t5 . '' . $t1 . '' . $t2 . '' . $t3 . '' . $t4 . ''; $receiptL ['报销金额调整'] = '' . $s1 . ''; $receiptL ['monthStaffPrice'] = '¥' . $m1 . ''; $list ['' . $vlu ['category'] . '小计'] = $receiptL; } $data ['list'] = $list; $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month, 'groupby' => 'item,Month(pastDate),itemCategory', 'asArray' => true ) ); $data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList ); // statistics html $stList = $statistics->getOne ( array ( 'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where' => 'Month(date)=' . $month . " and Year(date)=" . $year, 'groupby' => 'Month(date)', 'asArray' => true ) ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $monthHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($i == $month) $monthHtml .= ''; else $monthHtml .= ''; } $data ['monthHtml'] = $monthHtml; $data ['year'] = $year; $data ['month'] = $month; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/staffCollectMonthDetail", $data ); // $this->render ( "/admin/saeaStaffCollectDetail", $data ); } function staffCollectMonthDetail2() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : ""; $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; if (! $year) $year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" ); if (! $month) $month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1; Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( "receiptDetail" ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); $staffList = $staff->find ( array ( 'where' => 'username!="admin"', 'asArray' => true ) ); $categoryList = $staff->find ( array ( 'select' => 'COUNT(*) as count,cid,category', 'where' => 'username !="admin"', 'groupby' => 'cid', 'asArray' => true ) ); $list = array (); foreach ( $categoryList as $vlu ) { // $html=''.$v['category'].''; $r1 = 0; $r2 = 0; $r3 = 0; $r4 = 0; $r5 = 0; $r6 = 0; $r7 = 0; $r8 = 0; $r9 = 0; $r10 = 0; $r11 = 0; $r12 = 0; $r13 = 0; $r14 = 0; $r15 = 0; $c1 = 0; $c2 = 0; $c3 = 0; $c4 = 0; $c5 = 0; $c6 = 0; $p1 = 0; $p2 = 0; $p3 = 0; $p4 = 0; $p5 = 0; $p6 = 0; $p7 = 0; $p8 = 0; $p9 = 0; $t1 = 0; $t2 = 0; $t3 = 0; $t4 = 0; $t5 = 0; $s1 = 0; $m1 = 0; foreach ( $staffList as $value ) { if ($vlu ['cid'] == $value ['cid']) { $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(date)=" . $year . ' and Month(date)=' . $month, 'groupby' => 'item,Month(date),itemCategory', 'asArray' => true ) ); if (! empty ( $receiptCollectList )) { $receiptL = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $html = ""; $psum = 0; $item = array ( '市内交通费', '市内出租费', '办事处房租', '电话费', '水费', '电费', '办公费用', '邮寄费', '其他费用', '车辆费用', '广告费', '团队建设费', '物业管理费', '宽带费' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '日常相关费用') { if ($v ['item'] == $va) { if ($va == '市内交通费') $r1 += $v ['price']; if ($va == '市内出租费') $r2 += $v ['price']; if ($va == '办事处房租') $r3 += $v ['price']; if ($va == '电话费') $r4 += $v ['price']; if ($va == '水费') $r5 += $v ['price']; if ($va == '电费') $r6 += $v ['price']; if ($va == '办公费用') $r7 += $v ['price']; if ($va == '邮寄费') $r8 += $v ['price']; if ($va == '其他费用') $r9 += $v ['price']; if ($va == '车辆费用') $r10 += $v ['price']; if ($va == '广告费') $r11 += $v ['price']; if ($va == '团队建设费') $r13 += $v ['price']; if ($va == '物业管理费') $r14 += $v ['price']; if ($va == '宽带费') $r15 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $r12 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['日常相关费用'] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; $item = array ( '往来交通费', '市内交通费', '出差住宿费', '出差补助', '其他费用' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '差旅相关费用') { if ($v ['item'] == $va) { if ($va == '往来交通费') $c1 += $v ['price']; if ($va == '市内交通费') $c2 += $v ['price']; if ($va == '出差住宿费') $c3 += $v ['price']; if ($va == '出差补助') $c4 += $v ['price']; if ($va == '其他费用') $c5 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $c6 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['差旅相关费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '场租费', '薪酬', '住宿费', '交通费', '餐饮费', '办公费', '公关费', '其他' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '培训班费用') { if ($v ['item'] == $va) { if ($va == '场租费') $p1 += $v ['price']; if ($va == '薪酬') $p2 += $v ['price']; if ($va == '住宿费') $p3 += $v ['price']; if ($va == '交通费') $p4 += $v ['price']; if ($va == '餐饮费') $p5 += $v ['price']; if ($va == '办公费') $p6 += $v ['price']; if ($va == '公关费') $p7 += $v ['price']; if ($va == '其他') $p8 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $p9 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['培训班费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '公关费', '广告费', '借款', '可自加费用' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '其他') { if ($v ['item'] == $va) { if ($va == '公关费') $t1 += $v ['price']; if ($va == '广告费') $t2 += $v ['price']; if ($va == '借款') $t3 += $v ['price']; if ($va == '可自加费用') $t4 += $v ['price']; $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } $t5 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['其他'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '报销金额调整') { if (! empty ( $v ['price'] )) { $psum += $v ['price']; } } } $s1 += $psum; if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['报销金额调整'] = $psum . $html; } else { $receiptL ['日常相关费用'] = '----- --------'; $receiptL ['差旅相关费用'] = '-- ----'; $receiptL ['培训班费用'] = '----- ----'; $receiptL ['其他'] = '-----'; $receiptL ['报销金额调整'] = '-'; } $monthStaffPrice = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(date)=" . $year . ' and Month(date)=' . $month, 'asArray' => true ) ); if (! empty ( $monthStaffPrice [0] ['price'] )) { $m1 += $monthStaffPrice [0] ['price']; $receiptL ['monthStaffPrice'] = '¥' . $monthStaffPrice [0] ['price'] . ''; } else $receiptL ['monthStaffPrice'] = '-'; $list [$value ['username']] = $receiptL; } } $receiptL ['日常相关费用'] = '' . $r12 . '' . $r1 . '' . $r2 . '' . $r3 . '' . $r4 . '' . $r5 . ' ' . $r6 . '' . $r7 . '' . $r8 . '' . $r9 . '' . $r10 . '' . $r11 . '' . $r13 . ' ' . $r14 . '' . $r15 . ''; $receiptL ['差旅相关费用'] = '' . $c6 . '' . $c1 . ' ' . $c2 . '' . $c3 . '' . $c4 . '' . $c5 . ''; $receiptL ['培训班费用'] = '' . $p9 . '' . $p1 . '' . $p2 . '' . $p3 . '' . $p4 . ' ' . $p5 . '' . $p6 . '' . $p7 . '' . $p8 . ''; $receiptL ['其他'] = '' . $t5 . '' . $t1 . '' . $t2 . '' . $t3 . '' . $t4 . ''; $receiptL ['报销金额调整'] = '' . $s1 . ''; $receiptL ['monthStaffPrice'] = '¥' . $m1 . ''; $list ['' . $vlu ['category'] . '小计'] = $receiptL; } $data ['list'] = $list; $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month', 'where' => " status=1 and Year(date)=" . $year . ' and Month(date)=' . $month, 'groupby' => 'item,Month(date),itemCategory', 'asArray' => true ) ); $data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList ); // statistics html $stList = $statistics->getOne ( array ( 'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where' => 'Month(date)=' . $month . " and Year(date)=" . $year, 'groupby' => 'Month(date)', 'asArray' => true ) ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $monthHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($i == $month) $monthHtml .= ''; else $monthHtml .= ''; } $data ['monthHtml'] = $monthHtml; $data ['year'] = $year; $data ['month'] = $month; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/staffCollectMonthDetail2", $data ); // $this->render ( "/admin/saeaStaffCollectDetail", $data ); } function companyMonthCollectDetail() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : ""; $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; if (! $year) $year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" ); if (! $month) $month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1; Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( "receiptDetail" ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); $staffList = $staff->find ( array ( 'where' => 'username!="admin"', 'asArray' => true ) ); $categoryList = $lCategory->find ( array ( 'asArray' => true ) ); $list = array (); foreach ( $categoryList as $value ) { $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month, 'groupby' => 'item,Month(pastDate),itemCategory', 'asArray' => true ) ); if (! empty ( $receiptCollectList )) { $receiptL = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $html = ""; $psum = 0; $item = array ( '市内交通费', '市内出租费', '办事处房租', '电话费', '水费', '电费', '办公费用', '邮寄费', '其他费用', '车辆费用', '广告费', '团队建设费' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '日常相关费用') { if ($v ['item'] == $va) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['日常相关费用'] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; $item = array ( '往来交通费', '市内交通费', '出差住宿费', '出差补助', '其他费用' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '差旅相关费用') { if ($v ['item'] == $va) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['差旅相关费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '场租费', '薪酬', '住宿费', '交通费', '餐饮费', '办公费', '公关费', '其他' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '培训班费用') { if ($v ['item'] == $va) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['培训班费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '公关费', '广告费', '借款', '可自加费用' ); foreach ( $item as $va ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '其他') { if ($v ['item'] == $va) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['其他'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '报销金额调整') { if (! empty ( $v ['price'] )) $psum += $v ['price']; } } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['报销金额调整'] = $psum . $html; } else { $receiptL ['日常相关费用'] = '------- ------'; $receiptL ['差旅相关费用'] = '-- ----'; $receiptL ['培训班费用'] = '----- ----'; $receiptL ['其他'] = '-----'; $receiptL ['报销金额调整'] = '-'; } $monthStaffPrice = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month, 'asArray' => true ) ); if (! empty ( $monthStaffPrice [0] ['price'] )) $receiptL ['monthStaffPrice'] = '¥' . $monthStaffPrice [0] ['price'] . ''; else $receiptL ['monthStaffPrice'] = '-'; $list [$value ['title']] = $receiptL; } $data ['list'] = $list; $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month, 'groupby' => 'item,Month(pastDate),itemCategory', 'asArray' => true ) ); $data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList ); // print_r($data['monthPriceHtml']); // foreach ($data['monthPriceHtml'] as $value){ // echo $value; // } // die; // statistics html $stList = $statistics->getOne ( array ( 'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where' => 'Month(date)=' . $month . " and Year(date)=" . $year, 'groupby' => 'Month(date)', 'asArray' => true ) ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $monthHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($i == $month) $monthHtml .= ''; else $monthHtml .= ''; } $data ['monthHtml'] = $monthHtml; $data ['year'] = $year; $data ['month'] = $month; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/companyMonthCollectDetail", $data ); } function staffCollectDetail() { $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" ); $staffname = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : ""; $pcid = $this->get_args ( 'category' ) ? $this->get_args ( 'category' ) : ""; if (! $staffname) { $staffname = isset ( $this->params ['staffname'] ) ? $this->params ['staffname'] : ""; $staffname = urldecode ( $staffname ); } Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( "receiptDetail" ); $receiptDetail = new receiptDetail (); Doo::loadModel ( 'accountItem' ); $accountItem = new accountItem (); Doo::loadModel ( 'statistics' ); $statistics = new statistics (); Doo::loadModel ( 'L_category' ); $lCategory = new L_category (); $staffList = $staff->find ( array ( 'asArray' => true ) ); $stHtml = ''; $stTitle = ""; $staffId = 0; $cid = 0; $ocid = 0; foreach ( $staffList as $value ) { if ($value ['username'] == $staffname && $value ['username'] != 'admin') { $stTitle = $value ['category'] . '-' . $value ['username']; $staffId = $value ['sid']; $cid = $value ['cid']; $ocid = $value ['cid']; if (! empty ( $value ['othercid'] )) $cid = $value ['cid'] . ',' . $value ['othercid']; $stHtml .= ''; } elseif ($value ['username'] != 'admin') $stHtml .= ''; } $data ['lCategoryHtml'] = $lCategory->find ( array ( 'where' => 'cid in(' . $cid . ')', 'asArray' => true ) ); if (empty ( $pcid )) $pcid = $ocid; $data ['ocid'] = $pcid; $path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollectDetail_" . $year . "_" . $staffId . ".htmls"; $this->showCache ( $path ); // $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year, 'groupby' => 'item,Month(pastDate),itemCategory', 'asArray' => true ) ); // echo 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year; // print_r($receiptCollectList); $accountList = $accountItem->find ( array ( 'asArray' => true ) ); // create CollectDetail HTML $collectHtml = array (); foreach ( $accountList as $key => $value ) { $html = ""; $asum = 0; for($i = 1; $i <= 12; $i ++) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) { if ($v ['item'] == '可自加费用') { // echo $v ['item'].'/'.$v ['price'].'/'.$v ['month'].$v ['itemCategory'].'
    '; } $asum += $v ['price']; $html .= '¥' . $v ['price'] . ''; $falg = false; break; } } if ($falg) $html .= '-'; } $html .= '¥' . $asum . ''; $collectHtml [$value ['category']] [$value ['name']] = $html; } $data ['collectHtml'] = $collectHtml; // print_r($collectHtml); // create Adjustment price html $receiptCollectList = $receiptDetail->find ( array ( 'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month', 'where' => 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year, 'groupby' => 'itemCategory,Month(pastDate)', 'asArray' => true ) ); $adjustment = array (); $collectArray = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' ); array_push ( $collectArray ['日常相关费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' ); array_push ( $collectArray ['差旅相关费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' ); array_push ( $collectArray ['培训班费用'], $collectHtml ); $collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' ); array_push ( $collectArray ['其他'], $collectHtml ); $data ['collectArray'] = $collectArray; $collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' ); array_push ( $adjustment, $collectHtml ); $data ['adjustment'] = $adjustment; // total price html $collectHtml = ""; $total = 0; for($i = 1; $i <= 12; $i ++) { $sumPrice = 0; foreach ( $receiptCollectList as $key => $value ) { if ($value ['month'] == $i) { $sumPrice += $value ['price']; } } if ($sumPrice == 0) $collectHtml .= '-'; else $collectHtml .= '¥' . $sumPrice . ''; $total += $sumPrice; } $collectHtml .= '¥' . $total . ''; // statistics html $stList = $statistics->statisticsByYear ( $year, $staffId ); if (empty ( $stList )) $stList = array ( 'rePrice' => 0, 'agPrice' => 0 ); $data ['stList'] = array ( 'rePrice' => $stList ['rePrice'], 'agPrice' => $stList ['agPrice'], 'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) ); $data ['totalPrice'] = $collectHtml; $data ['totalYear'] = $total; $data ['stHtml'] = $stHtml; $data ['year'] = $year; $data ['stTitle'] = $stTitle; $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'companyCategoryCollect'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; if ($year < date ( "Y" )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); $receiptList = $receipt->find ( array ( 'where' => 'staff=' . $staffId . ' and (status=2 or status=4) and Year(date) =' . $year, 'asArray' => true ) ); if (empty ( $receiptList )) { // generated files ob_start (); $this->render ( "/admin/saeaStaffCollectDetail", $data ); $this->cacheFile ( $path ); die (); } } $this->render ( "/admin/saeaStaffCollectDetail", $data ); } function BUGFLAG() { $status = isset ( $this->params ['status'] ) && is_numeric ( $this->params ['status'] ) ? $this->params ['status'] : 0; $year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' ); $month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : ""; $cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0; $sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0; if (empty ( $status )) $status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0; $page_size = 12; $page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $vidList = array (); $button = 0; Doo::loadModel ( 'verify' ); $verify = new verify (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); $dateCondition = " and Year(date) =" . $year; if (! empty ( $month )) $dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month; $categoryList = $Lcategory->find ( array ( 'asArray' => true ) ); $staffList = $staff->find ( array ( 'where' => 'cid=' . $cid, 'asArray' => true ) ); $cateCondition = ""; $staffCondition = ""; $approvalCondition = ""; if (! empty ( $cid )) $cateCondition = ' and cid=' . $cid; if (! empty ( $sid )) { $staffCondition = ' and staff=' . $sid; $cateCondition = ""; } $approvalCondition = " and status=" . $status; if ($status == 2) { // 查找角色审批人 $approvalCondition = ' and status=' . $status . ' and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )'; } if ($status == 5) { // and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%" $approvalCondition = ' and status=2 '; } if ($status == 1) { $approvalCondition = ' and (status=' . $status . ' or status=6) '; } // nowStaff like "%'.$this->staff[0]['sid'].'%" $pageinfo ['page'] = array ( 'previous' => '' ); if ($status == 0) { $pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . ' and status!=5', $page, $page_size, "approvalExpenses", "", "" ); $receiptList = $receipt->find ( array ( 'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition, 'limit' => $pageinfo ['lower'] . ',' . $page_size, 'desc' => 'rid', 'asArray' => true ) ); // echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')'; } else $receiptList = $receipt->find ( array ( 'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition, 'desc' => 'rid', 'asArray' => true ) ); $rLRes = $receipt->find ( array ( 'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )' . $cateCondition . $staffCondition, 'desc' => 'rid', 'asArray' => true ) ); // echo '1 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')'; // print_r($pageinfo); $Locate = 0; foreach ( $receiptList as $key => $value ) { $receiptList [$key] ['Locate'] = $Locate; $Locate ++; $receiptList [$key] ['reviseDetail'] = array (); if (! empty ( $value ['reviseDetail'] )) $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true ); $receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true ); $categoryDetil = $Lcategory->getOne ( array ( 'where' => 'cid=' . $value ['cid'], 'asArray' => true ) ); $receiptList [$key] ['category'] = $categoryDetil ['title']; $verifyList = $verify->getOne ( array ( 'where' => 'vid=' . $value ['verify'], 'asArray' => true ) ); $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion $verifyStaff = json_decode ( $value ['verifyStaff'], true ); foreach ( $verifyList as $k => $v ) { // init verifyStaff $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; $verifyList [$k] ['status'] = ""; if (empty ( $verifyStaff )) { $verifyList [$k] ['date'] = ""; $verifyList [$k] ['opinion'] = ""; if ($v [0] == $this->staff [0] ['sid']) { $verifyList [$k] ['status'] = 4; $button = 4; } } else { $flag = true; foreach ( $verifyStaff as $m => $u ) { if ($v [0] == $m) { $verifyList [$k] ['date'] = $u ['date']; $verifyList [$k] ['opinion'] = $u ['opinion']; $verifyList [$k] ['status'] = $u ['status']; $flag = false; break; } // elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;} // if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;} // if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;} } if ($flag) { // 检测可编辑 if ($v [0] == $this->staff [0] ['sid']) { $verifyList [$k] ['status'] = 4; $button = 4; } } } } $receiptList [$key] ['verifyList'] = $verifyList; $receiptList [$key] ['staffDetail'] = $staff->getOne ( array ( 'where' => 'sid=' . $value ['staff'], 'asArray' => true ) ); $receiptList [$key] ['button'] = $button; $receiptList [$key] ['nowStaffArray'] = explode ( ',', $value ['nowStaff'] ); } // print_r($receiptList);die; // $data['verifyDetail']=$verifyDetail; $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } $data ['mothHtml'] = $mothHtml; $data ['page'] = $pageinfo; $data ['receiptList'] = $receiptList; $data ['receiptApprovalCount'] = count ( $rLRes ); $data ['status'] = $status; $data ['year'] = $year; $data ['categoryList'] = $categoryList; $data ['staffList'] = $staffList; $data ['cid'] = $cid; $data ['sid'] = $sid; // print_r($receiptList); $data ['memu'] = "receipt"; $data ['staff'] = $this->staff; $data ['receiptMemu'] = 'approvalExpenses'; $data ['verifyId'] = $this->verifyId; $data ['executeId'] = $this->executeId; $this->render ( "/admin/FALG", $data ); } function ajaxGetReceiptOrder() { $receiptOrder = $this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) : ""; if (! empty ( $receiptOrder )) { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'staff' ); $staff = new staff (); $receiptInfo = $receipt->getOne ( array ( 'where' => ' receiptOrder="' . $receiptOrder . '"', 'asArray' => true ) ); $verifyStaff = json_decode ( $receiptInfo ['verifyStaff'], true ); $html = '
    单号:' . $receiptOrder . '金额:¥' . $receiptInfo ['sum'] . '
    '; foreach ( $verifyStaff as $key => $value ) { $staffInfo = $staff->getOne ( array ( 'select' => 'username', 'where' => ' sid="' . $key . '"', 'asArray' => true ) ); $html .= ''; } $html .= '
    ' . $staffInfo ['username'] . '' . $value ['opinion'] . '
    '; echo json_encode ( array ( 'status' => 1, 'receiptHtml' => $html ) ); die (); } echo json_encode ( array ( 'status' => 2, 'receiptHtml' => '' ) ); die (); } function _getMonthCollectDetail($receiptCollectList) { if (! empty ( $receiptCollectList )) { $receiptL = array ( '日常相关费用' => array (), '差旅相关费用' => array (), '培训班费用' => array (), '其他' => array () ); $html = ""; $psum = 0; $item = array ( '市内交通费', '市内出租费', '办事处房租', '电话费', '水费', '电费', '办公费用', '邮寄费', '其他费用', '车辆费用', '广告费', '团队建设费', '物业管理费', '宽带费' ); foreach ( $item as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '日常相关费用') { if ($v ['item'] == $value) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['日常相关费用'] = $psum . $html; /* ----------------------------------- */ $html = ""; $psum = 0; $item = array ( '往来交通费', '市内交通费', '出差住宿费', '出差补助', '其他费用' ); foreach ( $item as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '差旅相关费用') { if ($v ['item'] == $value) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['差旅相关费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '场租费', '薪酬', '住宿费', '交通费', '餐饮费', '办公费', '公关费', '其他' ); foreach ( $item as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '培训班费用') { if ($v ['item'] == $value) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['培训班费用'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; $item = array ( '公关费', '广告费', '借款', '可自加费用' ); foreach ( $item as $value ) { $falg = true; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '其他') { if ($v ['item'] == $value) { $psum += $v ['price']; $html .= '' . $v ['price'] . ''; $falg = false; break; } } } if ($falg) $html .= '-'; } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['其他'] = $psum . $html; /* ------------------------------------- */ $html = ""; $psum = 0; foreach ( $receiptCollectList as $v ) { if ($v ['itemCategory'] == '报销金额调整') { if (! empty ( $v ['price'] )) $psum += $v ['price']; } } if (! empty ( $psum )) $psum = '¥' . $psum . ''; else $psum = '-'; $receiptL ['报销金额调整'] = $psum . $html; } else { $receiptL ['日常相关费用'] = '------- ------'; $receiptL ['差旅相关费用'] = '-- ----'; $receiptL ['培训班费用'] = '----- ----'; $receiptL ['其他'] = '-----'; $receiptL ['报销金额调整'] = '-'; } return $receiptL; } function eMail() { Doo::loadModel ( 'staff' ); $staff = new staff (); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadModel ( 'L_category' ); $Lcategory = new L_category (); Doo::loadModel ( "verify" ); $verify = new verify (); $staffList = $staff->find ( array ( 'asArray' => true ) ); foreach ( $staffList as $key => $value ) { if ($value ['username'] != 'admin') { // 提交人 $receiptList = $receipt->find ( array ( 'where' => 'staff=' . $value ['sid'] . ' and status=1 and notice=0', 'asArray' => true ) ); if (! empty ( $receiptList )) { $html = '
    CLD 邮件提醒

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

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

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

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

    ' . $v ['receiptOrder'] . '

    ' . $category ['title'] . '

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

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

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

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

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

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

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

    ' . $l ['receiptOrder'] . '

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

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

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

    '; if ((filter_var ( $value ['email'], FILTER_VALIDATE_EMAIL )) && (! empty ( $verifyList )) && (! empty ( $receiptList ))) { $this->SMail ( $value ['email'], "CLD提醒您,有需要你审批的报销单", $html ); // $receipt=new receipt(); // $receipt->notice=1; // $receipt->update(array('where'=>'staff='.$value['sid'].' and status=1 and notice=0')); } } } } 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 .= '
  • ' . $i . '
  • '; else $page_c .= '
  • ' . $i . '
  • '; if ($i == ($page_width * $page_max)) break; } $page ['page'] = $page_c; $page ['lower'] = (-- $on_page) * $page_size; return $page; } /** * 获取总页数 * @param unknown_type $table * @param unknown_type $condition */ public function get_table_count($table = "", $condition = "") { // $sql = "select count(*) as count from " . $table . " where 1 " . $condition; $sql = "select count(*) as count from " . $table . " where 1 " . $condition; // echo $sql;die; $query = Doo::db ()->query ( $sql ); $result = $query->fetch (); return $result ['count']; } /** * 获取上一页 * @param unknown_type $on_page */ function get_previous($on_page = 1) { return $on_page != 0 ? $on_page - 1 : $on_page; } } ?>