";
include $path;
die ();
}
}
private function cacheFile($path) {
$content = ob_get_contents ();
$fp = fopen ( $path, "w" );
fwrite ( $fp, $content );
fclose ( $fp );
}
private function collectHtml($receiptCollectList = array(), $itemCategory = "日常相关费用", $classType = "b") {
$collectHtml = "";
$sumPrice = 0.00;
for($i = 1; $i <= 12; $i ++) {
$falg = true;
foreach ( $receiptCollectList as $key => $value ) {
if ($value ['itemCategory'] == $itemCategory && $value ['month'] == $i) {
$sumPrice += $value ['price'];
if ($classType == "b") {
$collectHtml .= '
¥' . $value ['price'] . ' | ';
$falg = false;
break;
} else {
$collectHtml .= '¥' . $value ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$collectHtml .= '- | ';
}
$collectHtml .= '¥' . $sumPrice . ' | ';
return $collectHtml;
}
private function _itineraryDateMin(){
Doo::loadModel ( "itinerary" );
$itinerary = new itinerary ();
$itineraryDetail=$itinerary->getOne(array (
'where'=>'sid ='.$this->staff [0] ['sid'],
'desc'=>'itineraryDate',
'asArray' => true
));
return date("Y-m-d",strtotime("+1 day",strtotime($itineraryDetail['itineraryDate'])));
}
public function beforeRun($resource, $action) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $_COOKIE ["staff"] );
// 单独判断公司汇总的访问权限
if ($action == 'companyCategoryCollect') {
Doo::loadModel ( "receiptAuthorityManage" );
$invoiceCompanyManage = new receiptAuthorityManage ();
$icm = $invoiceCompanyManage->getInvoiceCMByStaff ( $sid );
if (empty ( $icm ))
die ( 'illegal request-statistics' );
}
Doo::loadModel ( 'staff' );
$staff = new staff ();
$detail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$accessModular = 'RECEIPTS';
if (empty ( $detail ['cldAccessArray'] ))
die ( 'illegal request' );
else {
if (in_array ( $accessModular, $detail ['cldAccessArray'] )) {
if (Doo::acl ()->isAllowed ( $accessModular, $resource, $action )) {
$flag = true;
} else {
$flag = false;
}
} else {
die ( 'illegal request' );
}
}
if (! $flag)
die ( 'illegal request' );
}
function __construct() {
if (isset ( $_COOKIE ["staff"] )) {
if (! empty ( $_COOKIE ["staff"] )) {
Doo::loadModel ( 'staff' );
Doo::loadModel ( 'verify' );
$verify = new verify ();
$staff = new staff ();
Doo::loadModel ( "execute" );
$execute = new execute ();
$verifyList = $verify->find ( array (
'select' => 'staff',
'asArray' => true
) );
$list = array ();
// 判断角色的审批权限
foreach ( $verifyList as $key => $value ) {
$ver = json_decode ( $value ['staff'] );
foreach ( $ver as $k => $v ) {
if ($v [1] == 'ROLE') {
$roleList = json_decode ( $v [3] );
foreach ( $roleList as $t => $g ) {
$gList = explode ( "_", $g );
array_push ( $list, $gList [0] );
// print_r($list);
}
} else
array_push ( $list, $v [0] );
}
}
// 判断执行人的审批权限
$executeList = $execute->find ( array (
'where'=>'mold !="日常收支"',
'select' => 'staff',
'asArray' => true
) );
$list2 = array ();
foreach ( $executeList as $key => $value ) {
$ver = json_decode ( $value ['staff'] );
foreach ( $ver as $k => $v ) {
array_push ( $list2, $v [0] );
}
}
$eidList = file_get_contents ( "protected/config/execute/execute.ini" );
$eidList = array_filter ( explode ( ",", $eidList ) );
$this->executeId = array_merge ( $list2, $eidList );
//print_r($this->executeId);
$this->verifyId = $list;
$this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] );
// 检测用户信息完成
$this->data ['isStaffCompleteMsg'] = false;
$detail = $staff->checkStaffInfoIsComplete ( $_COOKIE ["staff"] );
if (! empty ( $detail ))
$this->data ['isStaffCompleteMsg'] = true;
return "/";
}
}
Doo::loadCore ( 'uri/DooUriRouter' );
$router = new DooUriRouter ();
$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
if ($routeRs ['1'] != "login") {
header ( 'Content-Type:text/html;charset=utf-8' );
@header ( "Location: /login" );
}
}
/**
* 费用首页
*/
function saeaBorad() {
$travel= $this->get_args ( 'travel' ) ? $this->get_args ( 'travel' ) : "";
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( "role" );
$role = new role ();
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$receiptLogList = $receiptLog->getReceiptLogByUid ( $this->staff [0] ['sid'] );
$receiptDetail = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=7 or status=5 or status=4 or status=8 and Rtype=1)',
'desc' => 'rid',
'asArray' => true
) );
foreach ( $receiptDetail as $key => $value ) {
$receiptDetail [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );
$receiptDetail [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$veList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$v = json_decode ( $veList ['staff'] );
array_push ( $v [0], $veList ['description'] );
foreach ( $v as $n => $m ) {
if ($m ['1'] == 'ROLE') {
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $m [0],
'asArray' => true
) );
$v [$n] [1] = $roleInfo ['name'];
}
}
$receiptDetail [$key] ['staff'] = $v;
$category = $lCategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptDetail [$key] ['category'] = $category ['title'];
}
// print_r($receiptLogList);
Doo::loadModel ( 'RAssist' );
$RAssist = new RAssist ();
$receiptExtendList=$RAssist->getRAssistBySid($this->staff[0]['sid']);
//费用项目
$acItem = $accountItem->find ( array ('asArray' => true) );
if ($travel=='success'){
$data ['travel'] =true;
}else{
$data ['travel'] =false;
}
$data ['acItem'] = $acItem;
$data ['receiptExtendList'] = $receiptExtendList;
$data ['receiptLogList'] = $receiptLogList;
$data ['receiptDetail'] = $receiptDetail;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptFee", $data );
}
/**
* 费用报销单-导流入哪个细分类
*/
function receiptFeeDiversion(){
$feeType= $this->get_args ( 'feeType' ) ? $this->get_args ( 'feeType' ) : "";
if($feeType==2){
return '/receipt/feeTravel';
}elseif($feeType==3){
return '/receipt/feeInternalTrain';
}else{
return '/receipt/feeAgency';
}
}
private function _feeData(){
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( "role" );
$role = new role ();
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->getVerifyBySubordinate('RECEIPT');
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['itineraryDate'] = $this->_itineraryDateMin();
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
return $data;
}
/**
* 办事处相关费用
*/
function feeAgency(){
$data=$this->_feeData();
$this->render ( "/receipt/feeAgency", $data );
}
/**
* 办事处
*/
function feeTravel(){
$data=$this->_feeData();
$this->render ( "/receipt/feeTravel", $data );
}
function feeInternalTrain(){
$data=$this->_feeData();
$this->render ( "/receipt/feeInternalTrain", $data );
}
/**
* 添加费用报销单页面
*/
function saeaCreate() {
Doo::loadModel ( 'accountItem' );
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$receipt = new receipt ();
$verify = new verify ();
$accountItem = new accountItem ();
Doo::loadModel ( "role" );
$role = new role ();
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->getVerifyBySubordinate('RECEIPT');
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saea_create", $data );
}
private function _storageItinerary($itinerary,$rid,$version=2){
$itineraryJson=json_decode($itinerary,true);
Doo::loadModel ( 'itinerary' );
$itinerary = new itinerary ();
$itinerary->delete(array('where' => 'rid=' . $rid ));
if($version==2){
foreach ($itineraryJson as $k=>$v){
foreach ($v as $kk=>$vv){
foreach ($vv as $key=>$value){
if($key==0){
$feeTraveItem=json_encode($value['feeTraveItem']);
$itinerary = new itinerary ();
$itinerary->rid=$rid;
$itinerary->sid=$this->staff [0] ['sid'];
$itinerary->itineraryDate=$value['departuredate'];
$itinerary->itineraryCity=$value['departurecity'];
$itinerary->feeTraveItem='';
$itinerary->itineraryIndex=0;
$itinerary->insert ();
$itinerary = new itinerary ();
$itinerary->rid=$rid;
$itinerary->sid=$this->staff [0] ['sid'];
$itinerary->itineraryDate=substr($value['arrivalsdate'],1);
$itinerary->itineraryCity=substr($value['arrivalscity'],1);
$itinerary->feeTraveItem=$feeTraveItem;
$itinerary->itineraryIndex=1;
$itinerary->insert ();
}else{
$feeTraveItem=json_encode($value['feeTraveItem']);
$itinerary = new itinerary ();
$itinerary->rid=$rid;
$itinerary->sid=$this->staff [0] ['sid'];
$itinerary->itineraryDate=substr($value['arrivalsdate'],1);
$itinerary->itineraryCity=substr($value['arrivalscity'],1);
$itinerary->feeTraveItem=$feeTraveItem;
$itinerary->itineraryIndex=$key+1;
$itinerary->insert ();
}
}
}
}
}elseif($version==1){
foreach ($itineraryJson as $key=>$value){
if($key==0){
$feeTraveItem=json_encode($value['feeTraveItem']);
$itinerary = new itinerary ();
$itinerary->rid=$rid;
$itinerary->sid=$this->staff [0] ['sid'];
$itinerary->itineraryDate=$value['departuredate'];
$itinerary->itineraryCity=$value['departurecity'];
$itinerary->feeTraveItem='';
$itinerary->itineraryIndex=0;
$itinerary->insert ();
$itinerary = new itinerary ();
$itinerary->rid=$rid;
$itinerary->sid=$this->staff [0] ['sid'];
$itinerary->itineraryDate=substr($value['arrivalsdate'],1);
$itinerary->itineraryCity=substr($value['arrivalscity'],1);
$itinerary->feeTraveItem=$feeTraveItem;
$itinerary->itineraryIndex=1;
$itinerary->insert ();
}else{
$feeTraveItem=json_encode($value['feeTraveItem']);
$itinerary = new itinerary ();
$itinerary->rid=$rid;
$itinerary->sid=$this->staff [0] ['sid'];
$itinerary->itineraryDate=substr($value['arrivalsdate'],1);
$itinerary->itineraryCity=substr($value['arrivalscity'],1);
$itinerary->feeTraveItem=$feeTraveItem;
$itinerary->itineraryIndex=$key+1;
$itinerary->insert ();
}
}
}else{
die ( '行程单版本不正确' );
}
}
private function _verificationItinerary($itinerary){
Doo::loadModel ( 'itinerary' );
$itineraryObj = new itinerary ();
if(empty($itinerary)){
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写行程单' );
}
$itineraryJson=json_decode($itinerary,true);
$itineraryDate=array();$sql=array();
foreach ($itineraryJson as $k=>$v){
foreach ($v as $kk=>$vv){
foreach ($vv as $key=>$value){
if(empty($value['departuredate'])||empty($value['arrivalsdate'])){
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '有行程的日期未设置' );
}
if($key==0){
array_push($itineraryDate, $value['departuredate']);
array_push($itineraryDate, substr($value['arrivalsdate'],1));
array_push($sql,'?');array_push($sql,'?');
}else{
array_push($itineraryDate, substr($value['arrivalsdate'],1));
array_push($sql,'?');
}
}
}
}
array_push($itineraryDate, $this->staff [0] ['sid']);
$sql=implode(',',$sql);
// $itineraryDate=array();$sql=array();
// foreach ($itineraryJson as $key=>$value){
// if($key==0){
// array_push($itineraryDate, $value['departuredate']);
// array_push($itineraryDate, substr($value['arrivalsdate'],1));
// array_push($sql,'?');array_push($sql,'?');
// }else{
// array_push($itineraryDate, substr($value['arrivalsdate'],1));
// array_push($sql,'?');
// }
// }
// array_push($itineraryDate, $this->staff [0] ['sid']);
// $sql=implode(',',$sql);
if(empty($sql)){
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写行程单-2' );
}
$qualification=array(
'where' => 'itineraryDate in ('.$sql.') and sid=? ',
'param' => $itineraryDate,
'asArray' => TRUE);
$itDateList=$itineraryObj->find($qualification);
if(empty($itDateList)){
return false;
}else{
return true;
}
}
private function _buildFeeData($receiptClass=1,$itinerary=''){
$agency = $this->get_args ( 'agency' );
$travel = $this->get_args ( 'travel' );
$train = $this->get_args ( 'train' );
$other = $this->get_args ( 'other' );
$inttrain = $this->get_args ( 'inttrain' );
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
if($receiptClass==2){
//TODO 日期检测
if($this->_verificationItinerary($itinerary)){
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '已申请过类此日期的行程' );
}
}
$itinerary=str_replace('\n','
',$itinerary);
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'enclosur' );
Doo::loadModel ( 'execute' );
$execute = new execute ();
$executeDetail = $execute->getOne ( array (
'where' => 'mold="报销单执行人"',
'asArray' => true
) );
$aItem = $accountItem->find ( array (
'asArray' => true
) );
$accountJson [$this->AGENCY]=$accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
$ag = $tr = $ta = $ot= $it = 0;
$sum = $agencySum = $travelSum = $trainSum =$inttrainSum= $otherSum = 0;
foreach ( $aItem as $key => $value ) {
if ($value ['category'] == $this->AGENCY) {
if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
array_push ( $accountJson [$this->AGENCY], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $agency [$ag], 2, '.', '' )
) );
$sum += $agency [$ag];
$agencySum += $agency [$ag];
}
$ag ++;
}
if ($value ['category'] == $this->TRAVEL) {
if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {
array_push ( $accountJson [$this->TRAVEL], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $travel [$tr], 2, '.', '' )
) );
$sum += $travel [$tr];
$travelSum += $travel [$tr];
}
$tr ++;
}
if ($value ['category'] == $this->TRAIN) {
if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {
array_push ( $accountJson [$this->TRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $train [$ta], 2, '.', '' )
) );
$sum += $train [$ta];
$trainSum += $train [$ta];
}
$ta ++;
}
if ($value ['category'] == $this->INTTRAIN) {
if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) {
array_push ( $accountJson [$this->INTTRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $inttrain [$it], 2, '.', '' )
) );
$sum += $inttrain [$it];
$inttrainSum += $inttrain [$it];
}
$it ++;
}
if ($value ['category'] == $this->OTHER) {
if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {
array_push ( $accountJson [$this->OTHER], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $other [$ot], 2, '.', '' )
) );
$sum += $other [$ot];
$otherSum += $other [$ot];
}
$ot ++;
}
}
$accountJson ['cSum'] = array (
'agencySum' => number_format ( $agencySum, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'inttrainSum'=>number_format ( $inttrainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 报销单
$receipt->accountItem = json_encode ( $accountJson );
$receipt->staff = $this->staff [0] ['sid'];
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->date = date ( "Y-m-d" );
$receipt->cid = $cid;
$receipt->status = 5;
// 修改审批流程加入角色
$receipt->verify = $verify;
$receipt->executeCopy = $executeDetail ['staff'];
$receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$explanation = str_replace ( $order, $replace, $explanation );
$receipt->explanation = $explanation;
$receipt->receiptClass = $receiptClass;
$receipt->itinerary2=$itinerary;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1) {
$receipt->coupletNumber = $coupletNumber;
}
$rid = $receipt->insert ();
//记录行程单
$this->_storageItinerary($itinerary,$rid);
// 附件
if (! empty ( $enclosurName )) {
$enclosurArray = explode ( '-', $enclosurName );
foreach ( $enclosurArray as $value ) {
$enclosur = new enclosur ();
$enclosur->name = $value;
$enclosur->rid = $rid;
$enclosur->insert ();
}
}
// 报销详情
foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->AGENCY;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->TRAVEL;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->TRAIN] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->TRAIN;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
// 内训
foreach ( $accountJson [$this->INTTRAIN] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->INTTRAIN;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->OTHER] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->OTHER;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
return true;
} else
return false;
}
function addReceipt() {
// include Doo::conf()->BASE_PATH.'diagnostic/debug.php';
if ($this->_buildFeeData(1)) {
return "/saeaBorad";
} else{
die ( 'illegal request' );
}
}
function addFeeTravel(){
$itinerary = $_POST['itinerary'] ? $_POST['itinerary'] : "";
$itineraryList=json_decode($itinerary,true);
// foreach ($itineraryList as $key=>$value){
// if(empty($value['departuredate'])||empty($value['departurecity'])){
// header ( 'Content-Type:text/html;charset=utf-8' );
// die ( '请设置出发地和出发日期' );
// }
// }
if ($this->_buildFeeData(2,$itinerary)) {
return "/saeaBorad?travel=success";
} else{
die ( 'illegal request' );
}
}
function addFeeInternalTrain(){
if ($this->_buildFeeData(3)) {
return "/saeaBorad";
} else{
die ( 'illegal request' );
}
}
function referReceipt() {
// $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0;
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'verify' );
$verify = new verify ();
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( "role" );
$role = new role ();
$receiptDetail = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and status=5 ',
'asArray' => true
) );
if (empty ( $receiptDetail ))
return "/addReceipt";
foreach ( $receiptDetail as $key => $value ) {
$receiptDetail [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$veList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$v = json_decode ( $veList ['staff'] );
array_push ( $v [0], $veList ['description'] );
foreach ( $v as $n => $m ) {
if ($m ['1'] == 'ROLE') {
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $m [0],
'asArray' => true
) );
$v [$n] [1] = $roleInfo ['name'];
}
}
$receiptDetail [$key] ['staff'] = $v;
$category = $lCategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptDetail [$key] ['category'] = $category ['title'];
}
// print_r($receiptDetail);
$data ['receiptDetail'] = $receiptDetail;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaCreate';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saea_confirm", $data );
}
function editReceipt() {
// edit status 4
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (empty ( $rid )) {
die ( 'illegal request-id' );
}
// echo $rid.'sd';
Doo::loadModel ( 'accountItem' );
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$verify = new verify ();
$accountItem = new accountItem ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( "role" );
$role = new role ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)',
'asArray' => true
) );
if (empty ( $receiptDetail )) {
die ( 'illegal request-emptyData' );
}
$enclosurList = $enclosur->getEnclosurByRid ( $receiptDetail ['rid'] );
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->getVerifyBySubordinate ( 'RECEIPT' );
// 配置编辑信息
$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );
foreach ( $acItem as $key => $value ) {
foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
// 内训
foreach ( $accountItemList [$this->INTTRAIN] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->INTTRAIN && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->OTHER] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
}
//$receiptDetail['itinerary']=str_replace('\n','
',$receiptDetail['itinerary']);
//nl2br($receiptDetail['explanation']);
$receiptDetail['explanation']= str_replace('
',"\n",$receiptDetail['explanation']);
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['cSum'] = $accountItemList ['cSum'];
$data ['sum'] = $receiptDetail ['sum'];
$data ['enclosurList'] = $enclosurList;
$data ['receiptDetail'] = $receiptDetail;
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verify'] = $receiptDetail ['verify'];
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data ['rid'] = $ridKey;
if($receiptDetail['receiptClass']==1){
$this->render ( "/receipt/feeAgencyEdi", $data );
}elseif($receiptDetail['receiptClass']==2){
if(!empty($receiptDetail['itinerary2'])){
//TODO 报销说明
$this->render ( "/receipt/feeTravelEdi2", $data );
}else{
$this->render ( "/receipt/feeTravelEdi", $data );
}
}elseif($receiptDetail['receiptClass']==3){
$this->render ( "/receipt/feeInternalTrainEdi", $data );
}else{
$this->render ( "/admin/saea_edit", $data );
//die ( 'illegal request-renderHtml' );
}
}
function updateReceipt() {
$agency = $this->get_args ( 'agency' );
$travel = $this->get_args ( 'travel' );
$train = $this->get_args ( 'train' );
$other = $this->get_args ( 'other' );
$inttrain = $this->get_args ( 'inttrain' );
$receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : "";
$itinerary = $_POST['itinerary'];
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0;
$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! empty ( $rid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'enclosur' );
Doo::loadModel ( 'execute' );
$execute = new execute ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=7 or status=4)',
'asArray' => true
) );
if (empty ( $receiptDetail )) {
return "/saeaBorad";
}
//TODO 存储行程单-兼容旧版本的行程单
$itinerary=str_replace('\n','
',$itinerary);
if(!empty($receiptDetail['itinerary2'])){
$this->_storageItinerary($itinerary,$rid);
}else{
$this->_storageItinerary($itinerary,$rid,1);
}
if ($receiptDetail ['Rtype'] == 1) {
$executeDetail = $execute->getOne ( array (
'where' => 'mold="借款费用执行人"',
'asArray' => true
) );
} else {
$executeDetail = $execute->getOne ( array (
'where' => 'mold="报销单执行人"',
'asArray' => true
) );
}
$aItem = $accountItem->find ( array (
'asArray' => true
) );
$accountJson [$this->AGENCY] = $accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
$ag = $tr = $ta = $ot = $it = 0;
$sum = $agencySum = $travelSum = $trainSum = $inttrainSum = $otherSum = 0;
foreach ( $aItem as $key => $value ) {
if ($value ['category'] == $this->AGENCY) {
if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
array_push ( $accountJson [$this->AGENCY], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $agency [$ag], 2, '.', '' )
) );
$sum += $agency [$ag];
$agencySum += $agency [$ag];
}
$ag ++;
}
if ($value ['category'] == $this->TRAVEL) {
if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {
array_push ( $accountJson [$this->TRAVEL], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $travel [$tr], 2, '.', '' )
) );
$sum += $travel [$tr];
$travelSum += $travel [$tr];
}
$tr ++;
}
if ($value ['category'] == $this->TRAIN) {
if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {
array_push ( $accountJson [$this->TRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $train [$ta], 2, '.', '' )
) );
$sum += $train [$ta];
$trainSum += $train [$ta];
}
$ta ++;
}
if ($value ['category'] == $this->INTTRAIN) {
if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) {
array_push ( $accountJson [$this->INTTRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $inttrain [$it], 2, '.', '' )
) );
$sum += $inttrain [$it];
$inttrainSum += $inttrain [$it];
}
$it ++;
}
if ($value ['category'] == $this->OTHER) {
if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {
array_push ( $accountJson [$this->OTHER], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $other [$ot], 2, '.', '' )
) );
$sum += $other [$ot];
$otherSum += $other [$ot];
}
$ot ++;
}
}
$accountJson ['cSum'] = array (
'agencySum' => number_format ( $agencySum, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'inttrainSum' => number_format ( $inttrainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 报销单
$rid = $receipt->rid = $receiptDetail ['rid'];
$receipt->accountItem = json_encode ( $accountJson );
$receipt->staff = $this->staff [0] ['sid'];
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->date = date ( "Y-m-d" );
$receipt->cid = $cid;
if (($receiptDetail ['status'] != 4)) {
if ($receiptDetail ['Rtype'] == 1) {
$receipt->status = 7;
} else {
$receipt->status = 5;
}
}
if ($receiptDetail != 4 && ! empty ( $verify ))
$receipt->verify = $verify;
$receipt->executeCopy = $executeDetail ['staff'];
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$explanation = str_replace ( $order, $replace, $explanation );
$receipt->explanation = $explanation;
if($receiptClass=='trave'){
if(!empty($receiptDetail['itinerary2'])){//行程单版本
$receipt->itinerary2=$itinerary;
}else{
$receipt->itinerary=$itinerary;
}
}
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$receipt->update ();
$receiptDetail = new receiptDetail ();
$receiptDetail->delete ( array (
'where' => 'rid=' . $rid
) );
// 报销详情
foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->AGENCY;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->TRAVEL;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->TRAIN] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->TRAIN;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
// 内训
foreach ( $accountJson [$this->INTTRAIN] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->INTTRAIN;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->OTHER] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->OTHER;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
// 附件
if (! empty ( $enclosurName )) {
$enclosurArray = explode ( '-', $enclosurName );
foreach ( $enclosurArray as $value ) {
$enclosur = new enclosur ();
$enclosur->name = $value;
$enclosur->rid = $rid;
$enclosur->insert ();
}
}
// return "/referReceipt/".$rid;
}
return "/saeaBorad";
}
function remitAdd() {
Doo::loadModel ( 'accountItem' );
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$receipt = new receipt ();
$verify = new verify ();
$accountItem = new accountItem ();
Doo::loadModel ( "role" );
$role = new role ();
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->getVerifyBySubordinate('REMIT');
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/remitAdd", $data );
}
function remitAddDo() {
$agency = $this->get_args ( 'agency' );
$travel = $this->get_args ( 'travel' );
$train = $this->get_args ( 'train' );
$other = $this->get_args ( 'other' );
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
// print_r($agency);die;
if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'enclosur' );
Doo::loadModel ( 'execute' );
$execute = new execute ();
$executeDetail = $execute->getOne ( array (
'where' => 'mold="对公汇款执行人"',
'asArray' => true
) );
// $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true));
$aItem = $accountItem->find ( array (
'where' => '(name like "办公费用" or name like "服务器费用" or name like "邮寄费" or name like "其他费用" or name like "公积金" or name like "社保") and category like "'.$this->AGENCY.'"',
'asArray' => true
) );
$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
$ag = $tr = $ta = $ot = 0;
$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
print_r($aItem);
foreach ( $aItem as $key => $value ) {
if ($value ['category'] == $this->AGENCY) {
if (isset ( $agency [$ag] )) {
if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
array_push ( $accountJson [$this->AGENCY], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $agency [$ag], 2, '.', '' )
) );
$sum += $agency [$ag];
$agencySum += $agency [$ag];
}
}
$ag ++;
}
}
$accountJson ['cSum'] = array (
'agencySum' => number_format ( $agencySum, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
//die;
// 报销单
$receipt->accountItem = json_encode ( $accountJson );
$receipt->staff = $this->staff [0] ['sid'];
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->date = date ( "Y-m-d" );
$receipt->cid = $cid;
$receipt->status = 5;
$receipt->Rtype = 2;
// 修改审批流程加入角色
$receipt->verify = $verify;
$receipt->executeCopy = $executeDetail ['staff'];
$receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$explanation = str_replace ( $order, $replace, $explanation );
$receipt->explanation = $explanation;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$rid = $receipt->insert ();
// 附件
if (! empty ( $enclosurName )) {
$enclosurArray = explode ( '-', $enclosurName );
foreach ( $enclosurArray as $value ) {
$enclosur = new enclosur ();
$enclosur->name = $value;
$enclosur->rid = $rid;
$enclosur->insert ();
}
// print_r($enclosurArray);die;
}
// 报销详情
foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->AGENCY;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
return "/saeaBorad";
} else
die ( 'illegal request' );
}
function remitEdit() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'accountItem' );
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$verify = new verify ();
$accountItem = new accountItem ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( "role" );
$role = new role ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)',
'asArray' => true
) );
if (empty ( $receiptDetail ))
return "/saeaCreate";
$enclosurList = $enclosur->getEnclosurByRid ( $receiptDetail ['rid'] );
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->getVerifyBySubordinate('REMIT');
// 配置编辑信息
$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );
foreach ( $acItem as $key => $value ) {
foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->OTHER] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
}
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['enclosurList'] = $enclosurList;
$data ['cSum'] = $accountItemList ['cSum'];
$data ['sum'] = $receiptDetail ['sum'];
$data ['receiptDetail'] = $receiptDetail;
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verify'] = $receiptDetail ['verify'];
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data ['rid'] = $rid;
$data ['ridKey'] = $ridKey;
$this->render ( "/admin/remitEdit", $data );
}
function remitEdiDo() {
$agency = $this->get_args ( 'agency' );
$travel = $this->get_args ( 'travel' );
$train = $this->get_args ( 'train' );
$other = $this->get_args ( 'other' );
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0;
$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! empty ( $rid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
Doo::loadModel ( 'execute' );
$execute = new execute ();
$executeDetail = $execute->getOne ( array (
'where' => 'mold="对公汇款执行人"',
'asArray' => true
) );
$receiptDetail = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=7 or status=4)',
'asArray' => true
) );
if (empty ( $receiptDetail ))
return "/saeaBorad";
$aItem = $accountItem->find ( array (
'where' => '(name like "办公费用" or name like "服务器费用" or name like "邮寄费" or name like "其他费用" or name like "公积金" or name like "社保") and category like "'.$this->AGENCY.'"',
'asArray' => true
) );
$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
$ag = $tr = $ta = $ot = 0;
$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
foreach ( $aItem as $key => $value ) {
if ($value ['category'] == $this->AGENCY) {
if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
array_push ( $accountJson [$this->AGENCY], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $agency [$ag], 2, '.', '' )
) );
$sum += $agency [$ag];
$agencySum += $agency [$ag];
}
$ag ++;
}
}
$accountJson ['cSum'] = array (
'agencySum' => number_format ( $agencySum, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 报销单
$rid = $receipt->rid = $receiptDetail ['rid'];
$receipt->accountItem = json_encode ( $accountJson );
$receipt->staff = $this->staff [0] ['sid'];
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->date = date ( "Y-m-d" );
$receipt->cid = $cid;
if ($receiptDetail ['Rtype'] == 1)
$receipt->status = 7;
else
$receipt->status = 5;
if ($receiptDetail ['status'] != 4 && ! empty ( $verify ))
$receipt->verify = $verify;
$receipt->executeCopy = $executeDetail ['staff'];
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$explanation = str_replace ( $order, $replace, $explanation );
$receipt->explanation = $explanation;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$receipt->update ();
$receiptDetail = new receiptDetail ();
$receiptDetail->delete ( array (
'where' => 'rid=' . $rid
) );
// 报销详情
foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->AGENCY;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
// 附件
if (! empty ( $enclosurName )) {
$enclosurArray = explode ( '-', $enclosurName );
foreach ( $enclosurArray as $value ) {
$enclosur = new enclosur ();
$enclosur->name = $value;
$enclosur->rid = $rid;
$enclosur->insert ();
}
}
}
return "/saeaBorad";
}
function remitApproval() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receipt = new receipt ();
$verify = new verify ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
// user verify ID
$verifyDetail = $verify->find ( array (
'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$ap = "";
if ($status == 4) {
$ap = 4;
$status = 2;
}
// get Receipt By verifyID status 2
$receiptList = $receipt->find ( array (
'where' => 'rid =' . $rid . ' and status=2',
'desc' => 'rid',
'asArray' => true
) );
if (empty ( $receiptList )) {
die ( 'illegal request' );
}
$Locate = 0;
$roleId = 0;
if ($ap == 4)
$status = 4;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
// print_r($verifyList);
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff']) {
$roleId = $v [0];
}
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
// print_r($roleArray);
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$button = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
$endKey = key ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {
$button = 4;
$verifyList [$k] ['status'] = 4;
}
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );
}
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
// 获取审批日志
Doo::loadModel ( 'receiptLog' );
$receiptLog = new receiptLog ();
$rlList = array ();
$rlInfo = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=4',
'asArray' => true
) );
$tijdate = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2',
'asc' => 'rlid',
'asArray' => true
) );
if (! empty ( $rlInfo )) {
$rlList = $receiptLog->find ( array (
'where' => 'rid=' . $rid,
'asc' => 'rlid',
'asArray' => true
) );
}
$receiptList [0] ['rlList'] = $rlList;
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
// print_r($receiptList);
$data ['enclosurHtml'] = $enclosurHtml;
$data ['rolename'] = $rolename ['name'];
$data ['datetij'] = $tijdate ['date'];
$data ['mothHtml'] = $mothHtml;
$data ['rid'] = $rid;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $receiptList );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
$data ['ap'] = $ap;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approvalExpenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/remitApproval", $data );
}
function saeaLoanAdd() {
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( "role" );
$role = new role ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$veList = $verify->getVerifyBySubordinate('LOAN');
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['veList'] = $veList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saeaLoanAdd", $data );
}
function saeaLoanAddDo() {
$agency = $this->get_args ( 'agency' );
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
// die;
if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
Doo::loadModel ( 'execute' );
$execute = new execute ();
Doo::loadModel ( 'enclosur' );
$executeDetail = $execute->getOne ( array (
'where' => 'mold="借款执行人"',
'asArray' => true
) );
$aItem = $accountItem->find ( array (
'asArray' => true
) );
$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = $accountJson ['借款费用'] = array ();
$ag = $tr = $ta = $ot = 0;
$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
array_push ( $accountJson ['借款费用'], array (
'aid' => 0,
'name' => '申请金额',
'price' => number_format ( $agency, 2, '.', '' )
) );
$sum += $agency;
$agencySum += $agency;
$accountJson ['cSum'] = array (
'loanSum' => number_format ( $agencySum, 2, '.', '' ),
'agencySum' => number_format ( 0, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 借款数据备份
$loanReceipt->loanItem = json_encode ( $accountJson );
$loanReceipt->staff = $this->staff [0] ['sid'];
$loanReceipt->sum = number_format ( $sum, 2, '.', '' );
$loanReceipt->date = date ( "Y-m-d" );
$loanReceipt->cid = $cid;
$loanReceipt->receiptOrder = "#J" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$loanReceipt->status = 5;
$loanReceipt->Rtype = 1;
$loanReceipt->verify = $verify;
$receipt->receiptOrder = $receipt->receiptOrder;
// 添加HTML换行符
// var_dump($explanation);
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$explanation = str_replace ( $order, $replace, $explanation );
// $explanation=str_replace('\r',"
",$explanation);
// $explanation=str_replace('\r\n',"
",$explanation);
$loanReceipt->explanation = $explanation;
$loanRid = $loanReceipt->insert ();
// 报销单
$receipt->loanItem = json_encode ( $accountJson );
$receipt->staff = $this->staff [0] ['sid'];
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->date = date ( "Y-m-d" );
$receipt->cid = $cid;
// 特殊状态
$receipt->status = 5;
$receipt->Rtype = 1;
$receipt->loanRid = $loanRid;
// 修改审批流程加入角色
$receipt->verify = $verify;
$receipt->executeCopy = $executeDetail ['staff'];
$receipt->receiptOrder = $loanReceipt->receiptOrder;
$receipt->explanation = $explanation;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$rid = $receipt->insert ();
return "/saeaBorad";
} else
die ( 'illegal request' );
}
function saeaLoanEdi() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( "role" );
$role = new role ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptInfo = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$veList = $verify->find ( array (
'where'=>'subordinate like "%LOAN%"',
'asArray' => true
) );
foreach ( $veList as $key => $value ) {
$v = json_decode ( $value ['staff'] );
$list = array ();
foreach ( $v as $n => $m ) {
if ($m ['1'] == 'ROLE') {
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $m [0],
'asArray' => true
) );
$v [$n] [1] = $roleInfo ['name'];
array_push ( $list, $roleInfo ['name'] );
} else {
array_push ( $list, $v [$n] [1] );
}
}
$veList [$key] ['staff'] = implode ( '>', $list );
}
$receiptInfo ['loanItem'] = json_decode ( $receiptInfo ['loanItem'], true );
// print_r($receiptInfo);
$data ['receiptInfo'] = $receiptInfo;
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['veList'] = $veList;
$data ['ridKey'] = $ridKey;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saeaLoanEdi", $data );
}
function saeaLoanEdiDo() {
$ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0;
$agency = $this->get_args ( 'agency' );
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
// die;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
Doo::loadModel ( 'enclosur' );
Doo::loadModel ( 'execute' );
$execute = new execute ();
$executeDetail = $execute->getOne ( array (
'where' => 'mold="借款执行人"',
'asArray' => true
) );
$receiptDetail = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=5 or status=4) and rid=' . $rid,
'asArray' => true
) );
if (empty ( $receiptDetail ))
die ( '参数错误' );
$aItem = $accountItem->find ( array (
'asArray' => true
) );
$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = $accountJson ['借款费用'] = array ();
$ag = $tr = $ta = $ot = 0;
$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
array_push ( $accountJson ['借款费用'], array (
'aid' => 0,
'name' => '申请金额',
'price' => number_format ( $agency, 2, '.', '' )
) );
$sum += $agency;
$agencySum += $agency;
$accountJson ['cSum'] = array (
'loanSum' => number_format ( $agencySum, 2, '.', '' ),
'agencySum' => number_format ( 0, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 报销单
$receipt->loanItem = json_encode ( $accountJson );
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->cid = $cid;
// 特殊状态
// 修改审批流程加入角色
if ($receiptDetail ['status'] != 4)
$receipt->verify = $verify;
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$explanation = str_replace ( $order, $replace, $explanation );
$receipt->explanation = $explanation;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
// 借款数据更新
$loanReceipt->loanItem = json_encode ( $accountJson );
$loanReceipt->sum = number_format ( $sum, 2, '.', '' );
$loanReceipt->cid = $cid;
if ($receiptDetail ['status'] != 4)
$loanReceipt->verify = $verify;
$loanReceipt->explanation = $explanation;
$receipt->executeCopy = $executeDetail ['staff'];
$loanReceipt->update ( array (
'where' => 'rid=' . $receiptDetail ['loanRid']
) );
}
return "/saeaBorad";
}
function saeaLoanReceiptAdd() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : "";
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'desc' => 'rid',
'asArray' => true
) );
$receiptList = $loanReceipt->find ( array (
'where' => 'rid=' . $receiptDetail ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
//
// $receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']);
$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );
}
$data ['receiptList'] = $receiptList;
$data ['receiptDetail'] = $receiptDetail;
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->getVerifyBySubordinate('RECEIPT','LOAN');
$data ['rid'] = $rid;
$data ['category'] = $lCategory->find ( array (
'asArray' => true
) );
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data['itineraryDate']=$this->_itineraryDateMin();
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data['receiptClass']=$receiptClass;
if($receiptClass=='trave'){
$this->render ( "/receipt/feeLoanReceiptTrave", $data );
}else{
$this->render ( "/receipt/feeLoanReceipt", $data );
}
}
function saeaLoanReceiptAddDo() {
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
$agency = $this->get_args ( 'agency' );
$travel = $this->get_args ( 'travel' );
$train = $this->get_args ( 'train' );
$other = $this->get_args ( 'other' );
$inttrain = $this->get_args ( 'inttrain' );
$itinerary = $_POST['itinerary'];//$this->get_args ( 'itinerary' ) ? $this->get_args ( 'itinerary' ) : "";
$receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : "";
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";
$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
if($receiptClass=='agency'){
$receiptClass=1;
}elseif($receiptClass=='trave'){
$receiptClass=2;
if($this->_verificationItinerary($itinerary)){
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '已申请过类此日期的行程' );
}
}elseif($receiptClass=='internalTrain'){
$receiptClass=3;
}else{
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '借款报销单分类不正确' );
}
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receipt = new receipt ();
Doo::loadModel ( 'enclosur' );
Doo::loadModel ( 'execute' );
$execute = new execute ();
$executeDetail = $execute->getOne ( array (
'where' => 'mold="借款费用执行人"',
'asArray' => true
) );
$receiptDet = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
// if(!empty($receiptDetail))
// return "/referReceipt/".$receiptDetail['rid'];
$aItem = $accountItem->find ( array (
'asArray' => true
) );
$accountJson [$this->AGENCY]=$accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
$ag = $tr = $ta = $ot =$it = 0;
$sum = $agencySum = $travelSum = $trainSum =$inttrainSum= $otherSum = 0;
foreach ( $aItem as $key => $value ) {
if ($value ['category'] == $this->AGENCY) {
if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {
array_push ( $accountJson [$this->AGENCY], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $agency [$ag], 2, '.', '' )
) );
$sum += $agency [$ag];
$agencySum += $agency [$ag];
}
$ag ++;
}
if ($value ['category'] == $this->TRAVEL) {
if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {
array_push ( $accountJson [$this->TRAVEL], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $travel [$tr], 2, '.', '' )
) );
$sum += $travel [$tr];
$travelSum += $travel [$tr];
}
$tr ++;
}
if ($value ['category'] == $this->INTTRAIN) {
if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) {
array_push ( $accountJson [$this->INTTRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $inttrain [$it], 2, '.', '' )
) );
$sum += $inttrain [$it];
$inttrainSum += $inttrain [$it];
}
$it ++;
}
if ($value ['category'] == $this->TRAIN) {
if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {
array_push ( $accountJson [$this->TRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $train [$ta], 2, '.', '' )
) );
$sum += $train [$ta];
$trainSum += $train [$ta];
}
$ta ++;
}
if ($value ['category'] == $this->OTHER) {
if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {
array_push ( $accountJson [$this->OTHER], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $other [$ot], 2, '.', '' )
) );
$sum += $other [$ot];
$otherSum += $other [$ot];
}
$ot ++;
}
}
$accountJson ['cSum'] = array (
'agencySum' => number_format ( $agencySum, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'inttrainSum'=>number_format ( $inttrainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 报销单
$receipt->accountItem = json_encode ( $accountJson );
$receipt->staff = $this->staff [0] ['sid'];
$receipt->loanSum = $receiptDet ['sum'];
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->date = date ( "Y-m-d" );
$receipt->pastDate = '0000-00-00';
$receipt->cid = $cid;
$receipt->status = 7;
$receipt->receiptClass=$receiptClass;
if($receiptClass==2){
$receipt->itinerary=$itinerary;
$this->_storageItinerary($itinerary, $rid);
}
// 修改审批流程加入角色
$receipt->verify = $verify;
$receipt->verifyStaff = '';
$receipt->executeStaff = '';
$receipt->executeCopy = $executeDetail ['staff'];
// $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999);
$receipt->explanation = $explanation;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
// 附件
if (! empty ( $enclosurName )) {
$enclosurArray = explode ( '-', $enclosurName );
foreach ( $enclosurArray as $value ) {
$enclosur = new enclosur ();
$enclosur->name = $value;
$enclosur->rid = $rid;
$enclosur->insert ();
}
// print_r($enclosurArray);die;
}
// 报销详情
foreach ( $accountJson [$this->AGENCY] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->AGENCY;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->TRAVEL;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->TRAIN] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->TRAIN;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
//内训
foreach ( $accountJson [$this->INTTRAIN] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->INTTRAIN;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
foreach ( $accountJson [$this->OTHER] as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $this->staff [0] ['sid'];
$receiptDetail->item = $value ['name'];
$receiptDetail->itemCategory = $this->OTHER;
$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $cid;
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
}
return "/saeaBorad";
}
return "/saeaLoanReceiptAdd/" . $rid;
}
function saeaLoanReceiptEdi() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'accountItem' );
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$verify = new verify ();
$accountItem = new accountItem ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( "role" );
$role = new role ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=4 or status=7) and rid=' . $rid,
'asArray' => true
) );
if (empty ( $receiptDetail ))
return "/saeaBorad";
$receiptList = $loanReceipt->find ( array (
'where' => 'rid=' . $receiptDetail ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
//
// $receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']);
$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );
}
$data ['receiptList'] = $receiptList;
$acItem = $accountItem->find ( array (
'asArray' => true
) );
$veList = $verify->find ( array (
'asArray' => true
) );
foreach ( $veList as $key => $value ) {
$v = json_decode ( $value ['staff'] );
$list = array ();
foreach ( $v as $n => $m ) {
if ($m ['1'] == 'ROLE') {
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $m [0],
'asArray' => true
) );
$v [$n] [1] = $roleInfo ['name'];
array_push ( $list, $roleInfo ['name'] );
} else {
array_push ( $list, $v [$n] [1] );
}
}
$veList [$key] ['staff'] = implode ( '>', $list );
}
// 配置编辑信息
$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );
foreach ( $acItem as $key => $value ) {
foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
//内训
foreach ( $accountItemList [$this->INTTRAIN] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->INTTRAIN && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
foreach ( $accountItemList [$this->OTHER] as $k => $v ) {
if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {
$acItem [$key] ['price'] = $v ['price'];
}
}
}
$data ['category'] = $Lcategory->find ( array (
'asArray' => true
) );
$data ['ridKey'] = $ridKey;
$data ['cSum'] = $accountItemList ['cSum'];
$data ['sum'] = $receiptDetail ['sum'];
$data ['receiptDetail'] = $receiptDetail;
$data ['veList'] = $veList;
$data ['acItem'] = $acItem;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verify'] = $receiptDetail ['verify'];
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data ['rid'] = $rid;
if($receiptDetail['receiptClass']==1){
$this->render ( "/receipt/feeLoanReceiptAgencyEdi", $data );
}elseif($receiptDetail['receiptClass']==2){
$this->render ( "/receipt/feeLoanReceiptTraveEdi", $data );
}elseif($receiptDetail['receiptClass']==3){
$this->render ( "/receipt/feeLoanReceiptITEdi", $data );
}else{
$this->render ( "/admin/saeaLoanEdiReceipt", $data );
}
}
/**
* 培训班结算
*/
function receiptTrainAdd() {
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$acItem = $accountItem->find ( array (
'asArray' => true
) );
// 审批组
Doo::loadModel ( 'verify' );
$verify = new verify ();
$veList = $verify->getVerifyBySubordinate('TRAIN');
// 办事处
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$data ['category'] = $lCategory->getCategory ();
$data ['veList'] = $veList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['acItem'] = $acItem;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptTrainAdd", $data );
}
/**
* 添加培训班结算
*/
function receiptTrainAddDo() {//include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
// 培训班信息
$trainName = $this->get_args ( 'trainName' ) ? $this->get_args ( 'trainName' ) : "";
$trainStartDate = $this->get_args ( 'trainStartDate' ) ? $this->get_args ( 'trainStartDate' ) : "";
$trainEndDate = $this->get_args ( 'trainEndDate' ) ? $this->get_args ( 'trainEndDate' ) : "";
$participants = $this->get_args ( 'participants' ) && is_numeric ( $this->get_args ( 'participants' ) ) ? $this->get_args ( 'participants' ) : 0;
$freeParticipants = $this->get_args ( 'freeParticipants' ) && is_numeric ( $this->get_args ( 'freeParticipants' ) ) ? $this->get_args ( 'freeParticipants' ) : 0;
$trainAddress = $this->get_args ( 'trainAddress' ) ? $this->get_args ( 'trainAddress' ) : "";
$trainRemarks = $this->get_args ( 'trainRemarks' ) ? $this->get_args ( 'trainRemarks' ) : "";
// 发票信息
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
//&&! empty ( $participants )
if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber ) && ! empty ( $trainName ) && ! empty ( $trainStartDate ) && ! empty ( $trainEndDate ) && ! empty ( $trainAddress )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadModel ( 'execute' );
$execute = new execute ();
$executeDetail = $execute->getOne ( array (
'where' => 'mold="培训班结算"',
'asArray' => true
) );
if (empty ( $executeDetail )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '未设置执行人' );
}
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$cid = $XDeode->decode ( $cid );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
// 创建费用培训班
$item = array (
'cid' => $this->staff [0] ['cid'],
'categoryName' => $this->staff [0] ['category'],
'trainName' => $trainName,
'trainStartDate' => $trainStartDate,
'trainEndDate' => $trainEndDate,
'participants' => $participants,
'freeParticipants'=>$freeParticipants,
'trainAddress' => $trainAddress,
'trainRemarks' => $trainRemarks,
'creator' => $this->staff [0] ['sid'],
'creatorDate' => date ( "Y-m-d H:i:s" )
);
$irid = $receiptTraining->addReceiptTraining ( $item );
// 报销单
$receipt->status = 5;
$receipt->trainId = $irid;
$receipt->Rtype = 3;
$receipt->staff = $this->staff [0] ['sid'];
$receipt->cid = $cid;
$receipt->verify = $verify;
$receipt->date = date ( "Y-m-d" );
$receipt->executeCopy = $executeDetail ['staff'];
$receipt->receiptOrder = "#P" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$rid = $receipt->insert ();
$XDeode = new XDeode ( 7 );
return "/receiptTrainEdi/" . $XDeode->encode ( $rid ) . ".html";
} else
die ( 'illegal request' );
}
/**
* 培训班编辑
*/
function receiptTrainEdi() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
$trainEdiType = $this->get_args ( 'trainEdiType' ) ? $this->get_args ( 'trainEdiType' ) : "INFO";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)){
die ('illegal request--status');
}
//如有已入账已收款的发票,自动取消办事处已收款
// Doo::loadModel ( 'RIExtend' );
// $RIExtend = new RIExtend ();
// $RIExtendList=$RIExtend->getRIExtendByRid($rid);
// if (!empty($RIExtendList)){
// foreach ($RIExtendList as $key=>$value){
// $RIExtend = new RIExtend ();
// $RIExtend->delete(array (
// 'where' => 'iid=' . $value['iid'],
// 'limit' => 1
// ));
// }
// }
$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );
// 汇总表合计
// 收入合计--加入开票合计
Doo::loadModel ( 'invoiceTraining' );
$invoiceTraining = new invoiceTraining ();
$invoiceTrainingDetail = array (
'invoiceArriveAmount' => 0,
'RIAmount' => 0,
'invoiceTotalAmount' => 0,
'invoiceCompanyAmount'=>0
);
if ($receiptDetail ['invoiceTrainId'] != 0) {
$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $receiptDetail ['invoiceTrainId'] );
}
// print_r($invoiceTrainingDetail);
$invoiceArriveAmount = $RIAmount = 0;
if (! empty ( $invoiceTrainingDetail )) {
$invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount'];
$RIAmount = $invoiceTrainingDetail ['RIAmount'];
}
$data ['invoiceTrainingDetail'] = $invoiceTrainingDetail;
//print_r($invoiceTrainingDetail);
// 支出项目
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
// 项目金额合计
Doo::loadModel ( 'RItem' );
$RItem = new RItem ();
// 讲师获得
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
$RItemList = $RItem->getRItemByRid ( $rid );
$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );
// 支出项金额详情
$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount );
// print_r($aiData);
// 利润
$profit=$invoiceArriveAmount - $aiData ['total'];
$companyProfit=$profit * 0.6;
$categoryProfit=$profit * 0.4;
$data ['profit'] = sprintf("%.2f",$profit);
$data ['companyProfit'] = sprintf("%.2f",$companyProfit);
$data ['categoryProfit'] = sprintf("%.2f",$categoryProfit);
//发票利润
$data ['invoiceProfit'] = $invoiceTrainingDetail ['invoiceTotalAmount'] - $aiData ['total'];
//发票公司利润
$invoiceCompanyProfit=$data ['invoiceProfit'] * 0.6;
$data ['invoiceCompanyProfit'] = sprintf("%.2f",$invoiceCompanyProfit);
//办事处利润
$invoiceCategoryProfit=$data ['invoiceProfit'] * 0.4;
$data ['invoiceCategoryProfit'] = sprintf("%.2f",$invoiceCategoryProfit);
// print_r($aiData['dataList']);
$categoryActualExpenditure= $aiData ['total'] - $aiData ['categoryActualExpenditure'];
$data ['categoryActualExpenditure'] = sprintf("%.2f",$categoryActualExpenditure);
// 备用金
$sum = 0;
$data ['receiptLoanDetail'] = array (
'sum' => '0.00'
);
if (! empty ( $receiptDetail ['trainLoanRid'] )) {
//$data ['receiptLoanDetail'] = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] );
$receiptLoanList = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] );
$sum=0;
foreach ($receiptLoanList as $key=>$value){
$sum+=$value['sum'];
}
$data ['receiptLoanDetail'] = array (
'sum' => $sum
);
//$sum = $data ['receiptLoanDetail'] ['sum'];
}
$payment=$sum + $RIAmount - $categoryActualExpenditure;
$data ['payment'] = sprintf("%.2f",$payment);
$data ['total'] = sprintf("%.2f",$aiData ['total']);
$data ['aiCount'] = count ( $aiData ['dataList'] ) + 5;
$data ['aiList'] = $aiData ['dataList'];
// 占比计算
if ($invoiceArriveAmount != 0) {
$data ['totalProportion'] = sprintf("%.2f",$aiData ['total'] / $invoiceArriveAmount* 100) ;
$data ['profitProportion'] = sprintf("%.2f",$profit / $invoiceArriveAmount*100) ; //number_format ( $profit / $invoiceArriveAmount, 2, '.', '' ) * 100;
$data ['sumProportion'] = sprintf("%.2f",$sum / $invoiceArriveAmount*100) ; //number_format ( $sum / $invoiceArriveAmount, 2, '.', '' ) * 100;
$data ['invoiceTotalAmountProportion'] = sprintf("%.2f",$data ['invoiceTrainingDetail'] ['invoiceCompanyAmount'] / $invoiceArriveAmount*100) ;
$data ['RIAmountProportion'] = sprintf("%.2f",$data ['invoiceTrainingDetail'] ['RIAmount'] / $invoiceArriveAmount*100) ;
$data ['companyProfitProportion'] = sprintf("%.2f",$companyProfit / $invoiceArriveAmount*100) ;
$data ['categoryProportion'] = sprintf("%.2f",$categoryProfit / $invoiceArriveAmount*100) ;
$data ['categoryActualExpenditureProportion'] = sprintf("%.2f",$categoryActualExpenditure / $invoiceArriveAmount*100) ;
$data ['paymentProportion'] = sprintf("%.2f",$payment / $invoiceArriveAmount*100) ;
} else {
$data ['totalProportion'] = $data ['profitProportion'] = $data ['sumProportion'] = $data ['invoiceTotalAmountProportion'] = $data ['RIAmountProportion'] = $data ['companyProfitProportion'] = $data ['categoryActualExpenditureProportion'] = $data ['paymentProportion'] = $data ['categoryProportion'] = 0;
}
//发票金额占比计算
if ($invoiceTrainingDetail ['invoiceTotalAmount'] != 0) {
//支出
$data ['invoicetotalProportion'] = sprintf("%.2f",$aiData ['total'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//利润
$data ['invoiceprofitProportion'] = sprintf("%.2f",$data ['invoiceProfit'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//公司利润
$data ['invoicecompanyProfitProportion'] = sprintf("%.2f", $invoiceCompanyProfit / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//办事处利润
$data ['invoicecategoryProportion'] = sprintf("%.2f", $invoiceCategoryProfit / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//公司收款
$data ['invoiceTotalAmountProportionB'] = sprintf("%.2f", $data ['invoiceTrainingDetail'] ['invoiceCompanyAmount'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//备用金
$data ['invoicesumProportion'] = sprintf("%.2f", $sum / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//办事处收款
$data ['invoiceRIAmountProportion'] = sprintf("%.2f", $data ['invoiceTrainingDetail'] ['RIAmount'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//办事处实际支出
$data ['ICAEP'] = sprintf("%.2f", $categoryActualExpenditure / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
//付总部款
$data ['invoicepaymentProportion'] = sprintf("%.2f", $payment / $invoiceTrainingDetail ['invoiceTotalAmount']* 100) ;
}else{
$data ['invoiceprofitProportion'] =$data ['invoiceRIAmountProportion'] =$data ['invoicetotalProportion'] =$data ['invoiceTotalAmountProportionB'] =$data ['invoicesumProportion'] =$data ['ICAEP'] =$data ['invoicepaymentProportion'] =$data ['invoicecompanyProfitProportion'] =$data ['invoicecategoryProportion'] =0;
}
//讲师人数
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );
$data['lectureCount']=count($RILecturerList);
// 审批组
Doo::loadModel ( 'verify' );
$verify = new verify ();
$veList = $verify->getVerifyBySubordinate('TRAIN');
// 办事处
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$data ['category'] = $lCategory->getCategory ();
$data ['receiptTrainingDetail'] = $receiptTrainingDetail;
$data ['receiptDetail'] = $receiptDetail;
$data ['veList'] = $veList;
$data ['trainEdiType'] = $trainEdiType;
$data ['ridKey'] = $ridKey;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptTrainEdi", $data );
}
/**
* 培训班借款编辑
*/
function receiptTrainLoanEdi() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
Doo::loadModel ( 'verify' );
$verify = new verify ();
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4))
die ();
$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );
// 借款详情HTML
// 获得借款信息
$receiptLoanHtml = '';
if (! empty ( $receiptDetail ['trainLoanRid'] )) {
$receiptLoanList = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] );
foreach ($receiptLoanList as $key=>$value){
// 获得某费用单审批信息
$verifylist = $verify->getVerifyByRid ( $value ['rid'] );
Doo::loadClass ( 'receipt.func' );
$extendHtml = '移除借款
';
$receiptLoanHtml .= _getReceiptLoanHtml ( $value, $verifylist, $extendHtml );
}
}
$data ['receiptLoanHtml'] = $receiptLoanHtml;
$data ['receiptTrainingDetail'] = $receiptTrainingDetail;
$data ['receiptDetail'] = $receiptDetail;
$data ['trainEdiType'] = "LOAN";
$data ['ridKey'] = $ridKey;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptTrainLoanEdi", $data );
}
/**
* 更新培训班结算基本信息
*/
function receiptTrainInfoEdiDo() {
$rid = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : "";
$rtid = $this->get_args ( 'rtid' ) ? $this->get_args ( 'rtid' ) : "";
// 培训班信息
$trainName = $this->get_args ( 'trainName' ) ? $this->get_args ( 'trainName' ) : "";
$trainStartDate = $this->get_args ( 'trainStartDate' ) ? $this->get_args ( 'trainStartDate' ) : "";
$trainEndDate = $this->get_args ( 'trainEndDate' ) ? $this->get_args ( 'trainEndDate' ) : "";
$participants = $this->get_args ( 'participants' ) && is_numeric ( $this->get_args ( 'participants' ) ) ? $this->get_args ( 'participants' ) : 0;
$freeParticipants = $this->get_args ( 'freeParticipants' ) && is_numeric ( $this->get_args ( 'freeParticipants' ) ) ? $this->get_args ( 'freeParticipants' ) : 0;
$trainAddress = $this->get_args ( 'trainAddress' ) ? $this->get_args ( 'trainAddress' ) : "";
$trainRemarks = $this->get_args ( 'trainRemarks' ) ? $this->get_args ( 'trainRemarks' ) : "";
// 发票信息
$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";
$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";
$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";
$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";
$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;
//&& ! empty ( $participants )
if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber ) && ! empty ( $trainName ) && ! empty ( $trainStartDate ) && ! empty ( $trainEndDate ) && ! empty ( $trainAddress )) {
if ($remittanceBankType == 1 && empty ( $coupletNumber )) {
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '请填写联行号' );
}
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$cid = $XDeode->decode ( $cid );
$rtid = $XDeode->decode ( $rtid );
$rid = $XDeode->decode ( $rid );
if (! is_numeric ( $rtid ) || ! is_numeric ( $rid )) {
die ( 'illegal request-IdError' );
}
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
// 更新费用培训班
$item = array (
'rtid' => $rtid,
'trainName' => $trainName,
'trainStartDate' => $trainStartDate,
'trainEndDate' => $trainEndDate,
'participants' => $participants,
'freeParticipants'=>$freeParticipants,
'trainAddress' => $trainAddress,
'trainRemarks' => $trainRemarks
);
$irid = $receiptTraining->setReceiptTrainByCondition ( $item );
// 报销单
$receipt->rid = $rid;
$receipt->cid = $cid;
$receipt->verify = $verify;
$receipt->remittanceName = $remittanceName;
$receipt->bankName = $bankName;
$receipt->bankNumber = $bankNumber;
$receipt->remittanceBankType = $remittanceBankType;
if ($remittanceBankType == 1)
$receipt->coupletNumber = $coupletNumber;
$receipt->update ();
$XDeode = new XDeode ( 7 );
return "/receiptTrainEdi/" . $XDeode->encode ( $rid ) . ".html?trainEdiType=INFO";
} else
die ( 'illegal request' );
}
/**
* 编辑培训班结算---更新借款
*/
function receiptTrainLoanEdiDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";
$ridLoanKey = $this->get_args ( 'ridLoanKey' ) ? $this->get_args ( 'ridLoanKey' ) : "";
if (! empty ( $ridKey ) && ! empty ( $ridLoanKey )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $ridKey );
$ridLoan = $XDeode->decode ( $ridLoanKey );
if (! is_numeric ( $rid ) || ! is_numeric ( $ridLoan ))
die ( 'illegal request-ridError' );
$receiptDetail = $receipt->getReceiptByRid ( $rid );
$receiptLoanDetail = $receipt->getReceiptByRid ( $ridLoan );
// 不合法的数据if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4))
if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) {
die ( 'illegal request-receiptError' );
}
if ($receiptLoanDetail ['status'] != 8 || $receiptLoanDetail ['Rtype'] != 1) {
die ( 'illegal request-receipLoantError' );
}
// 培训班结算挂钩借款
$receipt = new receipt ();
$trainLoanRid=$ridLoan;
if (!empty($receiptDetail['trainLoanRid'])){
$trainLoanRid=$receiptDetail['trainLoanRid'].','.$ridLoan;
}
$item = array (
'rid' => $rid,
'trainLoanRid' => $trainLoanRid
);
$receipt->setReceiptByCondition ( $item );
// 更新借款状态变成已挂钩
$receipt = new receipt ();
$item = array (
'rid' => $ridLoan,
'status' => 10,
'statusTrain' => 1
);
$receipt->setReceiptByCondition ( $item );
$XDeode = new XDeode ( 7 );
return "/receiptTrainLoanEdi/" . $XDeode->encode ( $rid ) . ".html";
} else
die ( 'illegal request' );
}
/**
* 编辑培训班结算--移除借款
*/
function receiptTrainLoanRemoveDo() {
$ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : 0;
$ridLoanKey = isset ( $this->params ['ridLoanKey'] ) ? $this->params ['ridLoanKey'] : 0;
if (! empty ( $ridKey ) || ! empty ( $ridLoanKey )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $ridKey );
$ridLoan = $XDeode->decode ( $ridLoanKey );
if (! is_numeric ( $rid ) || ! is_numeric ( $ridLoan ))
die ( 'illegal request-ridError' );
$receiptDetail = $receipt->getReceiptByRid ( $rid );
$receiptLoanDetail = $receipt->getReceiptByRid ( $ridLoan );
// 不合法的数据 !($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)
if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) {
die ( 'illegal request-receiptError' );
}
if ($receiptLoanDetail ['status'] != 10 || $receiptLoanDetail ['Rtype'] != 1) {
die ( 'illegal request-receipLoantError' );
}
// 培训班结算挂钩借款
$receipt = new receipt ();
$trainLoanRidArray=explode(",", $receiptDetail['trainLoanRid']);
foreach ($trainLoanRidArray as $key=>$value){
if($value==$ridLoan){
unset($trainLoanRidArray[$key]);
}
}
$trainLoanRidString=implode(",", $trainLoanRidArray);
$item = array (
'rid' => $rid,
'trainLoanRid' => $trainLoanRidString
);
$receipt->setReceiptByCondition ( $item );
// 更新借款状态变成已挂钩
$receipt = new receipt ();
$item = array (
'rid' => $ridLoan,
'status' => 8,
'statusTrain' => 0
);
$receipt->setReceiptByCondition ( $item );
$XDeode = new XDeode ( 7 );
return "/receiptTrainLoanEdi/" . $XDeode->encode ( $rid ) . ".html";
} else
die ( 'illegal request' );
}
/**
* 编辑培训班结算 ---开票
*/
function receiptTrainInvoiceEdi() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceTraining' );
$invoiceTraining = new invoiceTraining ();
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4))
die ();
$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );
$invoiceList = $invoiceTrainingDetail = array ();
if ($receiptDetail ['invoiceTrainId'] != 0) {
$invoiceList = $invoice->getInvoicePrintedByItid ( $receiptDetail ['invoiceTrainId'] );
$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $receiptDetail ['invoiceTrainId'] );
}
//print_r($invoiceList);
$data ['invoiceList'] = $invoiceList;
$data ['invoiceTrainingDetail'] = $invoiceTrainingDetail;
$data ['receiptTrainingDetail'] = $receiptTrainingDetail;
$data ['receiptDetail'] = $receiptDetail;
$data ['trainEdiType'] = "INVOICE";
$data ['ridKey'] = $ridKey;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptTrainInvoiceEdi", $data );
}
/**
* 编辑培训班结算---更新开票
*/
function receiptTrainInvoiceEdiDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";
$itidKey = $this->get_args ( 'itidKey' ) ? $this->get_args ( 'itidKey' ) : "";
if (! empty ( $ridKey ) && ! empty ( $itidKey )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'invoiceTraining' );
$invoiceTraining = new invoiceTraining ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $ridKey );
$itid = $XDeode->decode ( $itidKey );
if (! is_numeric ( $rid ) || ! is_numeric ( $itid ))
die ( 'illegal request-idError' );
$receiptDetail = $receipt->getReceiptByRid ( $rid );
$invoiceTrainDetail = $invoiceTraining->getInvoiceTrainingByItid ( $itid );
// 不合法的数据
if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) {
die ( 'illegal request-receiptError' );
}
if (empty ( $invoiceTrainDetail ) || $invoiceTrainDetail ['bindReceipt'] == 1) {
die ( 'illegal request-receipLoantError' );
}
// 培训班结算挂钩借款
$receipt = new receipt ();
$item = array (
'rid' => $rid,
'invoiceTrainId' => $itid
);
$receipt->setReceiptByCondition ( $item );
$invoiceTraining = new invoiceTraining ();
$item = array (
'bindReceipt' => 1,
'itid' => $itid
);
$invoiceTraining->setInvoiceTrainByCondition ( $item );
$XDeode = new XDeode ( 7 );
return "/receiptTrainInvoiceEdi/" . $XDeode->encode ( $rid ) . ".html";
} else
die ( 'illegal request' );
}
/**
* 更新培训班结算 收款和取消收款
*/
function receiptTrainReceivables() {
$doType = isset ( $this->params ['doType'] ) ? $this->params ['doType'] : '';
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";
$iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $ridKey );
$iid = $XDeode->decode ( $iidKey );
if (! is_numeric ( $rid ) || ! is_numeric ( $iid ))
die ( 'illegal request-iid' );
Doo::loadModel ( 'RIExtend' );
$RIExtend = new RIExtend ();
if ($doType == 'CONFIRM') {
$RIExtend->rid = $rid;
$RIExtend->iid = $iid;
$RIExtend->RIstatus = 1;
$RIExtend->insert ();
echo json_encode ( array (
'status' => 1,
) );
die ( );
} elseif ($doType == 'CANCEL') {
$RIExtend->delete ( array (
'where' => 'rid=' . $rid . ' and iid=' . $iid,
'limit' => 1
) );
echo json_encode ( array (
'status' => 1,
) );
die ( );
} else {
echo json_encode ( array (
'status' => 2,
) );
die ( );
}
}
/**
* 移除挂钩的培训班发票
*/
function receiptTrainReceivablesDelDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 费用 培训班结算
$itidKey = $this->get_args ( 'itidKey' ) ? $this->get_args ( 'itidKey' ) : ""; // 发票培训班
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'RIExtend' );
$RIExtend = new RIExtend ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $ridKey );
$itid = $XDeode->decode ( $itidKey );
if (is_numeric ( $rid ) && is_numeric ( $itid )) {
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)){
die ( 'illegal request-status' );
}
$receipt = new receipt ();
$receipt->rid = $rid;
$receipt->invoiceTrainId = 0;
$receipt->update ();
Doo::loadModel ( 'invoiceTraining' );
$invoiceTraining = new invoiceTraining ();
$item = array (
'bindReceipt' => 0,
'itid' => $itid
);
$invoiceTraining->setInvoiceTrainByCondition ( $item );
$RIExtend->delete ( array (
'where' => 'rid=' . $rid
) );
$XDeode = new XDeode ( 7 );
return '/receiptTrainInvoiceEdi/' . $XDeode->encode ( $rid ) . '.html';
} else
die ( 'illegal request-iid' );
}
/**
* 编辑培训班结算
*/
function receiptTrainItemEdi() {
//include Doo::conf()->BASE_PATH.'diagnostic/debug.php';
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
$name = $this->get_args ( 'name' ) ? $this->get_args ( 'name' ) : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
Doo::loadModel ( 'RItem' );
$RItem = new RItem ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4))
die ();
$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );
$RItemList = $RItem->getRItemByRid ( $rid,$name );
$aiList = $accountItem->getAccountBookByCategory ( '培训班费用' );//print_r($aiList);
// foreach ($aiList as $key=>$value){//不需要添加税款,在添加收入时自动添加
// if($value['name']=='税款'){
// unset($aiList[$key]);break;
// }
// }
//print_r($RItemList);
$data ['name'] = $name;
$data ['RItemList'] = $RItemList;
$data ['aiList'] = $aiList;
$data ['receiptTrainingDetail'] = $receiptTrainingDetail;
$data ['receiptDetail'] = $receiptDetail;
$data ['trainEdiType'] = "ITEM";
$data ['ridKey'] = $ridKey;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptTrainItemEdi", $data );
}
/**
* 添加支出项 需要修改 费用金额合计
*/
function receiptTrainItemAddDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";
$rtidKey = $this->get_args ( 'rtidKey' ) ? $this->get_args ( 'rtidKey' ) : "";
// 支出项信息
$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";
$price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : 0;
$date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
$inputer = $this->get_args ( 'inputer' ) ? $this->get_args ( 'inputer' ) : "";
$describe = $this->get_args ( 'describe' ) ? $this->get_args ( 'describe' ) : "";
//$identifyingTotal = $this->get_args ( 'identifyingTotal' )&&is_numeric($this->get_args ( 'identifyingTotal' )) ? $this->get_args ( 'identifyingTotal' ) : 0;
$payType = isset ( $this->params ['payType'] ) ? $this->params ['payType'] : '';
if (! empty ( $ridKey ) && ! empty ( $item ) && is_numeric( $price ) && ! empty ( $date ) && ! empty ( $inputer )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'RItem' );
$RItem = new RItem ();
$rid = $XDeode->decode ( $ridKey );
$rtid= $XDeode->decode ( $rtidKey );
if (! is_numeric ( $rid )){
die ( 'illegal request' );
}
Doo::loadModel ( 'receiptDetail' );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
$rtDetail=$receiptTraining->getReceiptTrainingByRtid($rtid);
$identifyingTotal=$rtDetail['identifyingTotal']+1;
$order = array (
"\r\n",
"\n",
"\r"
);
$replace = '
';
$describe = str_replace ( $order, $replace, $describe );
$itemData = array (
'rid' => $rid,
'item' => $item,
'price' => $price,
'date' => $date,
'inputer' => $inputer,
'describe' => $describe,
'creater' => $this->staff['0']['username'],
'createrId' => $this->staff['0']['sid'],
'creatDate' => date ( "Y-m-d H:i:s" ),
'identifying'=>$identifyingTotal
);
if($payType=='company'){
$itemData += array (
'payType' => 1
);
}
$RItem->addRItem($itemData, $receipt, $receiptDetail, $rid, $item, $price, $payType);
//更新支出项标识总数
$itemData = array (
'rtid'=>$rtid,
'identifyingTotal'=>$identifyingTotal
);
$receiptTraining->setReceiptTrainByCondition($itemData);
$XDeode = new XDeode ( 7 );
if($payType=='company'){
return '/receiptTrainItem/approval/' . $XDeode->encode ( $rid ) . '.html';
}else{
return '/receiptTrainItemEdi/' . $XDeode->encode ( $rid ) . '.html';
}
} else
die ( 'illegal request-dataError' );
}
/**
* 培训班结算-讲师
*/
function receiptTrainLecturerEdi() {
$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptTraining' );
$receiptTraining = new receiptTraining ();
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
Doo::loadModel ( 'lecturer' );
$lecturer = new lecturer ();
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4))
die ();
$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );
$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );
$lecturerList = $lecturer->getLecturerAll ();
$INSIDEhtml = $OUTSIDEhtml = '';
foreach ( $lecturerList as $key => $value ) {
if ($value ['ltype'] == 'INSIDE') {
$INSIDEhtml .= '';
} elseif ($value ['ltype'] == 'OUTSIDE') {
$OUTSIDEhtml .= '';
}
}
$data ['INSIDEhtml'] = $INSIDEhtml;
$data ['OUTSIDEhtml'] = $OUTSIDEhtml;
// print_r($RItemList);
$data ['RILecturerList'] = $RILecturerList;
$data ['receiptTrainingDetail'] = $receiptTrainingDetail;
$data ['receiptDetail'] = $receiptDetail;
$data ['trainEdiType'] = "LECTURER";
$data ['ridKey'] = $ridKey;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'saeaBorad';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/receipt/receiptTrainLecturerEdi", $data );
}
/**
* 添加讲师
*/
function receiptTrainLecturerAddDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";
// 支出项信息
$ltype = $this->get_args ( 'ltype' ) ? $this->get_args ( 'ltype' ) : "";
$lecturerName = $this->get_args ( 'lecturerName' ) ? $this->get_args ( 'lecturerName' ) : "";
$schoolDay = $this->get_args ( 'schoolDay' ) ? $this->get_args ( 'schoolDay' ) : "";
$price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : "";
$taxation = $this->get_args ( 'taxation' ) ? $this->get_args ( 'taxation' ) : "";
$fees = $this->get_args ( 'fees' ) ? $this->get_args ( 'fees' ) : "";
if (! empty ( $ridKey ) && ! empty ( $ltype ) && ! empty ( $lecturerName ) && ! empty ( $schoolDay ) && ! empty ( $price )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
$rid = $XDeode->decode ( $ridKey );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
if ($ltype == 'OUTSIDE' && empty ( $taxation ))
die ( 'illegal request-taxationError' );
$RILecturer->rid = $rid;
$RILecturer->ltype = $ltype;
if ($ltype == 'OUTSIDE') {
if ($taxation == 'TAXATION') {
$RILecturer->taxation = 1;
} elseif ($taxation == 'NOTAXATION') {
$RILecturer->taxation = 0;
}
}
$RILecturer->lecturerName = $lecturerName;
$RILecturer->schoolDay = $schoolDay;
$RILecturer->price = $price;
$RILecturer->fees=$fees;
$RILecturer->insert ();
// 添加公司汇总
// 报销详情
Doo::loadModel ( 'receiptDetail' );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
// 金额总计
$price = $price * $schoolDay;
$rInfo = $receipt->getReceiptByRid ( $rid );
$rdInfo = $receiptDetail->getReceiptDetailByRIC ( $rid, '讲课费', '培训班费用' );
if (empty ( $rdInfo )) {
$receiptDetail = new receiptDetail ();
$receiptDetail->staff = $rInfo ['staff'];
$receiptDetail->item = '讲课费';
$receiptDetail->itemCategory = '培训班费用';
$receiptDetail->price = number_format ( $fees, 2, '.', '' );
$receiptDetail->date = date ( "Y-m-d" );
$receiptDetail->cid = $rInfo ['cid'];
$receiptDetail->rid = $rid;
$receiptDetail->status = 4;
$receiptDetail->insert ();
} else {
$receiptDetail = new receiptDetail ();
$rdInfo ['price'] += $fees;
$receiptDetail->price = $rdInfo ['price'];
$receiptDetail->update ( array (
'where' => 'rid=' . $rid . ' and item like "' . '讲课费' . '" and itemCategory like "培训班费用"'
) );
}
$receipt = new receipt ();
$receipt->sum=$rInfo['sum']+$fees;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
$XDeode = new XDeode ( 7 );
return '/receiptTrainLecturerEdi/' . $XDeode->encode ( $rid ) . '.html';
} else
die ( 'illegal request' );
}
/**
* 移除讲师
*/
function receiptTrainLecturerDelDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 费用 培训班结算
$rlidKey = $this->get_args ( 'rlidKey' ) ? $this->get_args ( 'rlidKey' ) : ""; // 发票培训班
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $ridKey );
$rlid = $XDeode->decode ( $rlidKey );
if (is_numeric ( $rid ) && is_numeric ( $rlid )) {
$receiptDetail = $receipt->getReceiptByRid ( $rid );
if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)){
die ( 'illegal request-status' );
}
$detail=$RILecturer->getRILecturerByRlid($rlid);
if (empty($detail)){
die ( 'illegal request-data' );
}
$RILecturer->delete ( array (
'where' => 'rid=' . $rid . ' and rlid=' . $rlid
) );
//更新费用合计金额
$rInfo = $receipt->getReceiptByRid ( $rid );
$receipt = new receipt ();
$receipt->sum= $receiptDetail['sum']-$detail['price'];
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
Doo::loadModel ( 'receiptDetail' );
$receiptDetail = new receiptDetail ();
$rdInfo = $receiptDetail->getReceiptDetailByRIC ( $rid, '讲课费', '培训班费用' );
$receiptDetail = new receiptDetail ();
$rdInfo ['price'] -= number_format ( $detail['price'], 2, '.', '' );
$receiptDetail->price = $rdInfo ['price'];
$receiptDetail->update ( array (
'where' => 'rid=' . $rid . ' and item like "' . '讲课费' . '" and itemCategory like "培训班费用"'
) );
$XDeode = new XDeode ( 7 );
return '/receiptTrainLecturerEdi/' . $XDeode->encode ( $rid ) . '.html';
} else
die ( 'illegal request-iid' );
}
/**
* 培训班提交审批
*/
function receiptTrainDo() {
$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rid = $XDeode->decode ( $ridKey );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'receiptDetail' );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( "verify" );
$verify = new verify ();
// 审批状态的判定
$receiptDetailList = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=4 or status=5 or status=7)',
'asArray' => true
) );
if (empty ( $receiptDetailList ))
return "/saeaBorad";
$verifyDetail = $verify->getOne ( array (
'where' => ' vid =' . $receiptDetailList ['verify'],
'asArray' => true
) );
$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
if (empty ( $receiptDetailList ['nowStaff'] )) {
$nowStaff = "";
$nowStaffList = array ();
if ($verifyDetail [0] [1] == 'ROLE') {
$vStaffString = json_decode ( $verifyDetail [0] [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
} else {
$nowStaff = $verifyDetail [0] [0];
}
$receipt->nowStaff = $nowStaff;
}
// echo $nowStaff;
// print_r($verifyDetail);die;
$receipt->rid = $receiptDetailList ['rid'];
$receipt->date = date ( "Y-m-d" );
$receipt->status = 2;
$receipt->update ();
$receiptDetail->status = 2;
$receiptDetail->update ( array (
'where' => 'rid=' . $receiptDetailList ['rid']
) );
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
Doo::loadModel ( "verify" );
$verify = new verify ();
$vr = $verify->getOne ( array (
'where' => 'vid=' . $receiptDetailList ['verify'],
'asArray' => true
) );
$jd = json_decode ( $vr ['staff'] );
$roleId = 0;
foreach ( $jd as $key => $value ) {
if ($value [1] == 'ROLE') {
$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
if ($pos !== false) {
$roleId = $value [0];
}
}
}
// 审批日志
// echo $roleId;die;
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
// $receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = '提交审批';
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 2;
$receiptLog->rid = $rid;
$receiptLog->insert ();
// 写入列表项
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$aItem = $accountItem->getAccountBookByCategory ( '培训班费用' );
// 项目金额合计
Doo::loadModel ( 'RItem' );
$RItem = new RItem ();
// 讲师获得
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
$RItemList = $RItem->getRItemByRid ( $rid );
$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );
// 支出项金额详情
$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, 0 );
// print_r($aItem);
// print_r($aiData);
$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();
$ag = $tr = $ta = $ot = 0;
$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;
foreach ( $aItem as $key => $value ) {
if ($value ['category'] == $this->TRAIN) {
foreach ( $aiData ['dataList'] as $k => $v ) {
if ($value ['name'] == $v ['name']) {
array_push ( $accountJson [$this->TRAIN], array (
'aid' => $value ['aid'],
'name' => $value ['name'],
'price' => number_format ( $v ['price'], 2, '.', '' )
) );
$sum += $v ['price'];
$trainSum += $v ['price'];
unset ( $aiData ['dataList'] [$k] );
break;
}
}
}
}
$accountJson ['cSum'] = array (
'agencySum' => number_format ( $agencySum, 2, '.', '' ),
'travelSum' => number_format ( $travelSum, 2, '.', '' ),
'trainSum' => number_format ( $trainSum, 2, '.', '' ),
'otherSum' => number_format ( $otherSum, 2, '.', '' )
);
// 报销单
$receipt = new receipt ();
$receipt->accountItem = json_encode ( $accountJson );
$receipt->sum = number_format ( $sum, 2, '.', '' );
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
// print_r($accountJson);
// statistics item 统计写入
$dateArray = explode ( "-", $receiptDetailList ['date'] );
$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];
$accountItem = $accountJson;
$stat = $statistics->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . $dateCondition,
'asArray' => true
) );
if (empty ( $stat )) {
$statistics->date = date ( "Y-m-d" );
$statistics->cid = $this->staff [0] ['cid'];
$statistics->staff = $this->staff [0] ['sid'];
$statistics->agPrice = 0;
$statistics->rePrice = $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];
$statistics->insert ();
} else {
$statistics->rePrice = $stat ['rePrice'] + $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];
$statistics->update ( array (
'where' => 'sid=' . $stat ['sid']
) );
}
return "/saeaBorad";
}
function confirmation() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
$receipt = new receipt ();
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'statistics' );
Doo::loadModel ( 'itemStatistics' );
$statistics = new statistics ();
$itemStatistics = new itemStatistics ();
Doo::loadModel ( "verify" );
$verify = new verify ();
$receiptDetailList = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=4 or status=5) and Rtype=1 and rid=' . $rid,
'asArray' => true
) );
if (empty ( $receiptDetailList ))
return "/saeaBorad";
$verifyDetail = $verify->getOne ( array (
'where' => ' vid =' . $receiptDetailList ['verify'],
'asArray' => true
) );
$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
if (empty ( $receiptDetailList ['nowStaff'] )) {
$nowStaff = "";
$nowStaffList = array ();
if ($verifyDetail [0] [1] == 'ROLE') {
$vStaffString = json_decode ( $verifyDetail [0] [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
} else {
$nowStaff = $verifyDetail [0] [0];
}
$receipt->nowStaff = $nowStaff;
}
// echo $nowStaff;
// print_r($verifyDetail);die;
$receipt->rid = $receiptDetailList ['rid'];
$receipt->status = 2;
$receipt->update ();
// 操作日志
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
$verify = new verify ();
$receiptInfo = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$vr = $verify->getOne ( array (
'where' => 'vid=' . $receiptInfo ['verify'],
'asArray' => true
) );
$jd = json_decode ( $vr ['staff'] );
$roleId = 0;
foreach ( $jd as $key => $value ) {
if ($value [1] == 'ROLE') {
$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
if ($pos !== false) {
$roleId = $value [0];
}
}
}
// 审批日志
// echo $roleId;die;
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
// $receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = '提交审批';
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 2;
$receiptLog->rid = $rid;
$receiptLog->insert ();
return "/expenses";
}
function expenses() {
$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";
if (empty ( $item ))
$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$condition = "";
if ($item == "expenses")
$condition = " and Rtype=1 ";
elseif ($item == "receipts")
$condition = " and Rtype=0 ";
elseif ($item == "remits")
$condition = " and Rtype=2 ";
elseif ($item == "train")
$condition = " and Rtype=3 ";
$dateCondition = " and Year(date) =" . $year;
if (! empty ( $moth )) {
$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth;
$stList = $statistics->getOne ( array (
'select' => 'rePrice ,agPrice',
'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition,
'asArray' => true
) );
} else
$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$noPassSum = $receipt->receiptByYear ( $dateCondition, $this->staff [0] ['sid'] );
if (! isset ( $noPassSum ['sum'] ))
$noPassSum ['sum'] = 0;
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($noPassSum ['sum'])
);
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . $condition . $dateCondition,
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList[$key]['balance']='';
if($value['Rtype']==1){
$receiptList[$key]['balance']=$value['sum']-=$value['loanSum'];
$receiptList[$key]['balanceABS']=abs($receiptList[$key]['balance']);
}elseif($value['Rtype']==3){
$payment=$this->_getReceiptTrainPayment($value['invoiceTrainId'],$value['trainLoanRid'],$value['rid']);
$receiptList[$key]['payment']=$payment;
$receiptList[$key]['paymentABS']=abs($payment);
}
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['ridKey'] =$XDeode->encode( $value ['rid'] );
}
// print_r($receiptList);die;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($moth == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'expenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data ['item'] = $item;
$data ['year'] = $year;
$this->render ( "/admin/expenses", $data );
}
function expensesCollect() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
$receiptList = $receipt->find ( array (//去掉
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid,
'desc' => 'rid',
'asArray' => true
) );
$loanList = $loanReceipt->find ( array (
'where' => 'rid=' . $receiptList [0] ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
/*
* $Locate=0;$roleId=0;$button=0; foreach ($loanList as $key=>$value){ $loanList[$key]['Locate']=$Locate;$Locate++; $loanList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $loanList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $loanList[$key]['accountItem']=json_decode($value['accountItem'],true); $loanList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $loanList[$key]['category']=$categoryDetil['title']; //检测编辑状态 if ($value['status']==3||$value['status']==1||$value['status']==8||$value['status']==9) $verifyList['staff']=$value['verifyBreakup']; else $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; $loanList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $loanList[$key]['button']=$button; //$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']); } $data['loanList']=$loanList;
*/
$data ['explanation'] = '';
if (! empty ( $loanList ))
$data ['explanation'] = $loanList [0] ['explanation'];
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9) {
if ($value ['status'] == 8 && $value ['Rtype'] == 1)
$verifyList ['staff'] = $loanList [0] ['verifyBreakup'];
else
$verifyList ['staff'] = $value ['verifyBreakup'];
} else
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
// 费用执行人相关数据
$executeCopy = json_decode ( $value ['executeCopy'], true );
$executeStaff = json_decode ( $value ['executeStaff'], true );
foreach ( $executeCopy as $k => $v ) {
$executeCopy [$k] ['date'] = '';
$executeCopy [$k] ['opinion'] = '';
$executeCopy [$k] ['status'] = '';
if (! empty ( $executeStaff ))
foreach ( $executeStaff as $m => $u ) {
if ($v [0] == $m) {
$executeCopy [$k] ['date'] = $u ['date'];
$executeCopy [$k] ['opinion'] = $u ['opinion'];
$executeCopy [$k] ['status'] = $u ['status'];
break;
}
}
}
$receiptList [$key] ['executeCopy'] = $executeCopy;
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );
$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );
$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );
$receiptList [$key] ['relust'] = $relust;
$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );
}
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
$receiptList[0]['itinerary']=str_replace('\n','
',$receiptList[0]['itinerary']);
$data ['enclosurHtml'] = $enclosurHtml;
//print_r($receiptList[0]['accountItem']['内部培训费用']);
$data ['receiptList'] = $receiptList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'expenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
if($receiptList[0]['receiptClass']==2){
if(!empty($receiptList[0]['itinerary2'])){
$this->render ( "/receipt/feeTraveDetail2", $data );
}else{
$this->render ( "/receipt/feeTraveDetail", $data );
}
}else{
$this->render ( "/admin/expensesCollect", $data );
}
}
function approvalExpenses() {
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : 0;
$year = $rdate = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
$receiptOrder=$this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) :"";
// echo $rdate;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
$page_size = 8;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
// user verify ID
$verifyDetail = $verify->find ( array (
'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
// if ($status==0)
// $dateCondition="";
// else
$dateCondition = " ";
// if (! empty ( $month ))
// $dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;
if ($status == 'done' || $status == 'termination') {
if (! empty ( $year )) {
$dateCondition = " and Year(pastDate) =" . $year;
if (! empty ( $month ))
$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month;
}
} elseif ($status == 'finish') {
if (! empty ( $year )) {
$dateCondition = " and Year(pastDate) =" . $year;
if (! empty ( $month ))
$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month;
}
}
// date ( 'Y-m' )
// if (! empty ( $rdate ) && $status == 'done')
// $dateCondition = " and date_format(pastDate,'%Y-%m')='" . $rdate . "' ";
// elseif (! empty ( $rdate ))
// $dateCondition = " and date_format(date,'%Y-%m')='" . $rdate . "' ";
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$cateCondition = "";
$staffCondition = "";
$approvalCondition = "";
if (! empty ( $cid )) {
$cateCondition = ' and cid=' . $cid;
}
if (! empty ( $sid )) {
$staffCondition = ' and cid=' . $cid . ' and staff=' . $sid;
$cateCondition = "";
}
$get = "?year=" . $year . "&month=" . $month . "&cid=" . $cid . "&sid=" . $sid;
if ($status == 'pendApproval') {
$approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';
}
if ($status == 'ongoing') {
$approvalCondition = ' and (status=2 or status=1 or status=6 or status=4) ';
}
if ($status == 'done') {
$approvalCondition = ' and (status=8 or status=9 ) ';
}
if ($status == 'termination') {
$approvalCondition = " and status=3";
}
if ($status == 'finish') {
$approvalCondition = " and (status=1 or status=8 or status=9 or status=10)";
}
$pageinfo ['page'] = array (
'previous' => ''
);
if(!empty($receiptOrder)){
$pageinfo = $this->get_page ( "CLD_receipt", ' and receiptOrder like "%' . $receiptOrder . '%"', $page, $page_size, "approvalExpenses/" . $status, $get, "" );
$receiptList = $receipt->find ( array ( // $dateCondition
'where' => 'receiptOrder like "%' . $receiptOrder . '%"',
'desc' => 'rid',
'asArray' => true
) );
}else{
if ($status == 'done' || $status == 'termination' || $status == 'finish') { // $dateCondition .
$pageinfo = $this->get_page ( "CLD_receipt", $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses/" . $status, $get, "" );
$receiptList = $receipt->find ( array ( // $dateCondition.
'where' => 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ')',
'limit' => $pageinfo ['lower'] . ',' . $page_size,
'desc' => 'rid',
'asArray' => true
) );
} else {
$receiptList = $receipt->find ( array ( // $dateCondition
'where' => 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ')',
'desc' => 'rid',
'asArray' => true
) );
// echo 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')';
}
}
$rLRes = $receipt->find ( array (
'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )' . $cateCondition . $staffCondition . ' and verify in (' . $vid . ')',
'desc' => 'rid',
'asArray' => true
) );
// echo 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')';
// print_r($receiptList);
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$Locate = 0;
//
$reportList = $reportCateList = array ();
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if ($v [0] == $this->staff [0] ['sid']) {
$verifyList [$k] ['status'] = 4;
$button = 4;
}
} else {
$flag = true;
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
// elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;}
// if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;}
// if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;}
}
if ($flag) { // 检测可编辑
if ($v [0] == $this->staff [0] ['sid']) {
$verifyList [$k] ['status'] = 4;
$button = 4;
}
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
array_push ( $reportList, $receiptList [$key] ['staffDetail'] ['sid'] . '-' . $receiptList [$key] ['staffDetail'] ['username'] . '-' . $receiptList [$key] ['staffDetail'] ['category'] );
array_push ( $reportCateList, $receiptList [$key] ['staffDetail'] ['cid'] . '-' . $receiptList [$key] ['staffDetail'] ['category'] );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['nowStaffArray'] = explode ( ',', $value ['nowStaff'] );
//获得培训班结算RID 借款费用--已经锁定
if($value['status']==10){
$trainRD=$receipt->getReceiptByTrainLoanRid($value['rid']);
$receiptList [$key]['trainRidKey7']=$trainRD['ridKey7'];
}
}
$reportList = array_unique ( $reportList );
$reportHtml = '';
foreach ( $reportList as $key => $value ) {
$v = explode ( "-", $value );
$reportHtml .= '';
}
// print_r($reportList)
$data ['reportHtml'] = $reportHtml;
$reportCateList = array_unique ( $reportCateList );
$reportCateHtml = '';
foreach ( $reportCateList as $key => $value ) {
$v = explode ( "-", $value );
$reportCateHtml .= '';
}
// $reportHtml.='';
$data ['reportCateHtml'] = $reportCateHtml;
// print_r($receiptList);die;
// $data['verifyDetail']=$verifyDetail;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['mothHtml'] = $mothHtml;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['page'] = $pageinfo;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $rLRes );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['month'] = $month;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
// print_r($receiptList);
$data['receiptOrder']=$receiptOrder;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approvalExpenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/approvalExpenses", $data );
}
private function _expensesDoc(){
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
if (! empty ( $rid ) && ! is_numeric ( $rid ))
$rid = $XDeode->decode ( $rid );
if (! is_numeric ( $rid ))
die ( 'illegal request' );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
$receiptList = $receipt->find ( array (
'where' => ' rid=' . $rid,
'desc' => 'rid',
'asArray' => true
) );
$loanList = array ();
if (! empty ( $receiptList ))
$loanList = $loanReceipt->find ( array (
'where' => 'rid=' . $receiptList [0] ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $loanList as $key => $value ) {
$loanList [$key] ['Locate'] = $Locate;
$Locate ++;
$loanList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$loanList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9)
$verifyList ['staff'] = $value ['verifyBreakup'];
else
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$loanList [$key] ['verifyList'] = $verifyList;
$loanList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$loanList [$key] ['button'] = $button;
//$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']);
}
$data ['loanList'] = $loanList;
//print_r($loanList);
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 9) {
$verifyList ['staff'] = $value ['verifyBreakup'];
} else
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
if ($verifyList == NULL)
$verifyList = array ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$FC = @$rolename ['name'];
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
// 费用执行人相关数据
$executeCopy = json_decode ( $value ['executeCopy'], true );
$executeStaff = json_decode ( $value ['executeStaff'], true );
foreach ( $executeCopy as $k => $v ) {
$executeCopy [$k] ['date'] = '';
$executeCopy [$k] ['opinion'] = '';
$executeCopy [$k] ['status'] = '';
if (! empty ( $executeStaff ))
foreach ( $executeStaff as $m => $u ) {
if ($v [0] == $m) {
$executeCopy [$k] ['date'] = $u ['date'];
$executeCopy [$k] ['opinion'] = $u ['opinion'];
$executeCopy [$k] ['status'] = $u ['status'];
break;
}
}
}
$receiptList [$key] ['executeCopy'] = $executeCopy;
// print_r($verifyList);
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );
$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );
$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );
$receiptList [$key] ['relust'] = $relust;
$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );
}
// print_r($receiptList);
// 获取审批日志
Doo::loadModel ( 'receiptLog' );
$receiptLog = new receiptLog ();
$rlList = array ();
$rlInfo = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=4',
'asArray' => true
) );
// $tijdate = $receiptLog->getOne ( array (
// 'where' => 'rid=' . $rid . ' and status=2',
// 'asc' => 'rlid',
// 'asArray' => true
// ) );
if (! empty ( $rlInfo )) {
$rlList = $receiptLog->find ( array (
'where' => 'rid=' . $rid,
'asc' => 'rlid',
'asArray' => true
) );
}
$RN=array();
if (!empty( $rolename ['staff'])){
$RN = @json_decode ( $rolename ['staff'] );
}
//
foreach ( $rlList as $key => $value ) {
$rlList [$key] ['rolename'] = '';
foreach ( $RN as $k => $v ) {
$id = explode ( "_", $v );
if ($id [0] == $value ['uid']) {
$rlList [$key] ['rolename'] = $FC;
break;
}
}
}
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
$data ['enclosurHtml'] = $enclosurHtml;
$receiptList [0] ['rlList'] = $rlList;
$data ['receiptList'] = $receiptList;
$data ['receiptList'][0]['itinerary']=str_replace('\n','
',$receiptList[0]['itinerary']);
// print_r($receiptList);
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approvalExpenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
return $data;
}
function expensesDoc() {
$data=$this->_expensesDoc();
if(!empty($data['receiptList'][0]['itinerary2'])){
$this->render ( "/receipt/feeTraveView", $data );
}else{
$this->render ( "/admin/expensesDoc", $data );
}
}
function expensesDocPrint(){
$data=$this->_expensesDoc();
$this->render ( "/receipt/expensesDocPrint", $data );
}
function expensesEdi() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receipt = new receipt ();
$verify = new verify ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
// user verify ID
$verifyDetail = $verify->find ( array (
'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$ap = "";
if ($status == 4) {
$ap = 4;
$status = 2;
}
// get Receipt By verifyID status 2
$receiptList = $receipt->find ( array (
'where' => 'rid =' . $rid . ' and status=2',
'desc' => 'rid',
'asArray' => true
) );
if (empty ( $receiptList )) {
die ( 'illegal request' );
}
$Locate = 0;
$roleId = 0;
if ($ap == 4)
$status = 4;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
// print_r($verifyList);
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff']) {
$roleId = $v [0];
}
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
// print_r($roleArray);
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$button = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
$endKey = key ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {
$button = 4;
$verifyList [$k] ['status'] = 4;
}
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
// print_r($roleArrayCopy);
// echo $roleKey;
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );
}
// $data['verifyDetail']=$verifyDetail;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
// 获取审批日志
Doo::loadModel ( 'receiptLog' );
$receiptLog = new receiptLog ();
$rlList = array ();
$rlInfo = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=4',
'asArray' => true
) );
$tijdate = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2',
'asc' => 'rlid',
'asArray' => true
) );
if (! empty ( $rlInfo )) {
$rlList = $receiptLog->find ( array (
'where' => 'rid=' . $rid,
'asc' => 'rlid',
'asArray' => true
) );
}
$receiptList [0] ['rlList'] = $rlList;
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
// print_r($receiptList);
$data ['rid'] = $rid;
$data ['enclosurHtml'] = $enclosurHtml;
$data ['rolename'] = $rolename ['name'];
$data ['datetij'] = $tijdate ['date'];
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $receiptList );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
$data ['ap'] = $ap;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approvalExpenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/expensesEdi", $data );
}
function expensesDefray() {
$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
$Locate = $this->get_args ( 'Locate' ) && is_numeric ( $this->get_args ( 'Locate' ) ) ? $this->get_args ( 'Locate' ) : 0;
$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : 0;
if (! empty ( $rid )) {
Doo::loadModel ( "verify" );
$verify = new verify ();
Doo::loadModel ( "receiptDetail" );
$receiptDetailObj = new receiptDetail ();
Doo::loadModel ( "itemStatistics" );
Doo::loadModel ( "statistics" );
$statistics = new statistics ();
$itemStatistics = new itemStatistics ();
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
Doo::loadModel ( "loanReceipt" );
$loanReceipt = new loanReceipt ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2 ',
'asArray' => true
) );
$nslist = explode ( ',', $receiptDetail ['nowStaff'] );
$nsflag = true;
foreach ( $nslist as $value ) {
if ($value == $this->staff ['0'] ['sid']) {
$nsflag = false;
break;
}
}
// print_r($nslist);die;
if (empty ( $receiptDetail ) || $nsflag)
return "/approvalExpenses/pendApproval";
$verifyDetail = $verify->getOne ( array (
'where' => ' vid =' . $receiptDetail ['verify'],
'asArray' => true
) );
$verifyString = $verifyDetail ['staff'];
$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
$verifyStaff = json_decode ( $receiptDetail ['verifyStaff'], true );
if (empty ( $opinion )) {
if ($status == 3)
$opinion = "终止";
else
$opinion = "同意支付";
}
$nowStaff = 0;
$nowStaffList = array ();
if (empty ( $verifyStaff )) {
// 还需加入是否已经进入角色审批
if ($verifyDetail [0] [1] == 'ROLE') {
// print_r($verifyDetail);echo "ddd";
$vStaffString = json_decode ( $verifyDetail [0] [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
if ($staffK [0] != $this->staff [0] ['sid'])
array_push ( $nowStaffList, $staffK [0] );
}
// print_r($verifyDetail);
// die;
if (! empty ( $nowStaffList )) {
$nowStaff = implode ( ',', $nowStaffList );
$verifyStaff = array (
$this->staff [0] ['sid'] . "_R" => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [0] [0],
'ROLE' => 1
)
);
} else {
$nowStaff = $verifyDetail [1] [0];
$verifyStaff = array (
$this->staff [0] ['sid'] . "_R" => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [1] [0]
)
);
}
} else {
if ($verifyDetail [1] [1] == 'ROLE') {
$vStaffString = json_decode ( $verifyDetail [1] [3] );
// echo "dd";
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
$verifyStaff = array (
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [1] [0],
'ROLE' => 1
)
);
} else {
$nowStaff = $verifyDetail [1] [0];
$verifyStaff = array (
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [1] [0]
)
);
}
}
if ($status == 3)
$verifyStaff = array (
'final' => $status,
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status
)
);
$vStaffString = json_encode ( $verifyStaff );
$receipt->nowStaff = $nowStaff;
$receipt->verifyStaff = $vStaffString;
$loanReceipt->nowStaff = $nowStaff;
$loanReceipt->verifyStaff = $vStaffString;
} else {
$VS = end ( $verifyStaff );
// 非角色审批
if (! array_key_exists ( $this->staff [0] ['sid'], $verifyStaff ) && ! isset ( $VS ['ROLE'] )) {
$nextStaff = 0;
$roleSTF = false;
foreach ( $verifyDetail as $key => $value ) {
if ($value [0] == $this->staff [0] ['sid'] && $value [1] != 'ROLE') {
if (isset ( $verifyDetail [$key + 1] )) {
$nextStaff = $verifyDetail [$key + 1] [0];
if ($verifyDetail [$key + 1] [1] == 'ROLE')
$roleSTF = true;
}
break;
}
}
if (! $roleSTF) {
$nowStaff = $nextStaff;
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff
);
} else {
// 获取角色下的所有用户ID
$nowStaffList = array ();
foreach ( $verifyDetail as $vfk ) {
if ($vfk [1] == 'ROLE') {
$vStaffString = json_decode ( $vfk [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
}
}
$nowStaff = implode ( ',', $nowStaffList );
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff,
'ROLE' => 0
);
}
if ($status == 3) {
$verifyStaff ['final'] = $status;
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status
);
}
$vStaffString = json_encode ( $verifyStaff );
$receipt->nowStaff = $nowStaff;
$receipt->verifyStaff = $vStaffString;
$loanReceipt->nowStaff = $nowStaff;
$loanReceipt->verifyStaff = $vStaffString;
}
// 角色审批
if (isset ( $VS ['ROLE'] )) {
// 找出角色人 当前审批角色组
$verifyJSStaff = array ();
$nowStaffList2 = array ();
foreach ( $verifyDetail as $key => $value ) {
if ($value [1] == 'ROLE' && $value [0] == $VS ['nextStaff']) {
$verifyJSStaff = json_decode ( $value [3] );
foreach ( $verifyJSStaff as $m ) {
$staffK = explode ( "_", $m );
array_push ( $nowStaffList2, $staffK [0] );
}
// print_r($nowStaffList2);
}
}
$RoleVerifyStaff = array ();
foreach ( $verifyStaff as $key => $value ) {
if (isset ( $value ['ROLE'] ) && $value ['ROLE'] == 1 && $VS ['nextStaff'] == $value ['nextStaff']) {
foreach ( $nowStaffList2 as $m ) {
if ($key == $m . "_R")
$RoleVerifyStaff [$key] = $value;
}
}
}
$jsCount = count ( $verifyJSStaff ) - 1; // echo $jsCount;die;
if ($jsCount == count ( $RoleVerifyStaff )) { // 或者
// 下一个审批人ID
$nextStaff = 0;
$falg = false;
foreach ( $verifyDetail as $key => $value ) {
if ($value [0] == $VS ['nextStaff'] && $value [1] == 'ROLE') {
if (isset ( $verifyDetail [$key + 1] ) && $verifyDetail [$key + 1] [1] == 'ROLE') {
$falg = true;
$vStaffString = json_decode ( $verifyDetail [$key + 1] [3] );
$nowStaffList = array ();
foreach ( $vStaffString as $v ) {
$staffK = explode ( "_", $v );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
$nextStaff = $verifyDetail [$key + 1] [0];
} elseif (isset ( $verifyDetail [$key + 1] )) {
$nextStaff = $verifyDetail [$key + 1] [0];
$nowStaff = $nextStaff;
} else
$nowStaff = '';
break;
}
}
if ($falg)
$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff,
'ROLE' => 1
);
else
$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff
);
// print_r($verifyStaff);
// echo $nowStaff;die;
} else { // 进入下一个角色或者审批人
$nowStaff = str_replace ( $this->staff [0] ['sid'], '', $receiptDetail ['nowStaff'] );
$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $VS ['nextStaff'],
'ROLE' => 1
);
}
if ($status == 3) {
$verifyStaff ['final'] = $status;
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status
);
}
$vStaffString = json_encode ( $verifyStaff );
$receipt->verifyStaff = $vStaffString;
$receipt->nowStaff = $nowStaff;
$loanReceipt->nowStaff = $nowStaff;
$loanReceipt->verifyStaff = $vStaffString;
}
// print_r($verifyStaff);die;
}
$roleKey = 0;
$roleId = 0;
$verifyDetailCopy = array ();
foreach ( $verifyDetail as $k => $v ) {
if ($v [1] == 'ROLE') {
$roleId = $v [0];
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$exp = array (
0 => $staffID [0],
1 => $staffID [1]
);
array_push ( $roleArray, $exp );
}
$verifyDetailCopy [$v [0]] = $roleArray;
}
}
// print_r($verifyDetail);
foreach ( $verifyDetailCopy as $k => $v ) {
foreach ( $verifyDetail as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyDetail, $m, 1, $v );
}
}
}
// 审批日志
if (! isset ( $verifyStaff ['final'] )) {
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
$receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = $opinion;
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 1;
$receiptLog->rid = $rid;
$receiptLog->insert ();
}
if (isset ( $verifyStaff ['final'] )) { // rDetail
$receipt->status = 3;
$receipt->verifyBreakup = $verifyString;
$receiptDetailObj->status = 3;
$receiptDetailObj->update ( array (
'where' => 'rid=' . $rid
) );
// 微信企业号通知
$this->setWXMsg ( $rid, 3 );
} elseif (count ( $verifyStaff ) == count ( $verifyDetail )) { // 要修改 角色的数量
$receipt->status = 6;
$receipt->pastDate = date ( "Y-m-d" );
$receipt->isBK = 1;
$loanReceipt->verifyBreakup = $verifyString;
$loanReceipt->status = 1;
$loanReceipt->pastDate = date ( "Y-m-d" );
//生成流水后 不更新汇款金额
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$wbDetail = $wasteBook->getWateBookByAD ( 1, $rid );
if (empty($wbDetail)){
$loanReceipt->amount = $receiptDetail ['amount'];
}
$loanReceipt->update ( array (
'where' => ' rid = ' . $receiptDetail ['loanRid']
) );
// 微信企业号通知
$this->setWXMsg ( $rid, 1 );
}
$receipt->amount = $receiptDetail['sum'];
$receipt->update ( array (
'where' => ' rid = ' . $rid
) );
// 进入下一条审批费用新加需求
$vidList = array ();
$verifyDetail = $verify->find ( array (
'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';
$receipt = new receipt ();
$rd = $receipt->getOne ( array (
'where' => 'status!=5 ' . $approvalCondition . ' and verify in(' . $vid . ')',
'asc' => 'rid',
'asArray' => true
) );
if (empty ( $rd )) {
return '/approvalExpenses/pendApproval';
}
if ($rd ['Rtype'] == 1) {
if ($rd ['isBK'] == 1) {
return '/receiptburEdi/' . $rd ['rid'];
} else {
return '/expensesEdi/' . $rd ['rid'];
}
} elseif ($rd ['Rtype'] == 2) {
return '/remitApproval/' . $rd ['rid'];
} else {
return '/receiptburEdi/' . $rd ['rid'];
}
// return "/approvalExpenses/pendApproval";
}
}
function ajaxExamineExe() {
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
if (! empty ( $rid )) {
$rLRes = $receipt->find ( array (
'where' => 'executeCopy like \'%["' . $this->staff [0] ['sid'] . '%\' and executeStaff not like \'%{"' . $this->staff [0] ['sid'] . '%\' and (status=1 or status=6) and rid!=' . $rid,
'asArray' => true
) );
$rLRes [0] ['ridKey'] = $XDeode->encode ( $rLRes [0] ['rid'] );
echo json_encode ( array (
'status' => 1,
'receipt' => $rLRes [0]
) );
die ();
}
echo json_encode ( array (
'status' => 0,
'receipt' => array ()
) );
die ();
}
function implement() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$Rtype = isset ( $this->params ['Rtype'] ) ? $this->params ['Rtype'] : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( "execute" );
$execute = new execute ();
$rid = $XDeode->decode ( $rid );
$receiptList = $receipt->find ( array (
'where' => 'executeCopy like \'%["' . $this->staff [0] ['sid'] . '%\' and (status=1 or status=6) and rid=' . $rid,
'desc' => 'rid',
'asArray' => true
) );
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
// print_r($receiptList);
$loanList = array ();
if (! isset ( $receiptList ))
$loanList = $loanReceipt->find ( array (
'where' => 'rid=' . $receiptList [0] ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $loanList as $key => $value ) {
$loanList [$key] ['Locate'] = $Locate;
$Locate ++;
$loanList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$loanList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$loanList [$key] ['verifyList'] = $verifyList;
$loanList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
}
$data ['loanList'] = $loanList;
$Locate = 0;
$roleId = 0;
$button = 0;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
foreach ( $receiptList as $key => $value ) {
$receiptList[$key]['ridKey']=$XDeode->encode ( $value['rid'] );
$button2 = 0;
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
$executeList = json_decode ( $value ['executeCopy'], true );
$executeStaff = array ();
if (! empty ( $value ['executeStaff'] ))
$executeStaff = json_decode ( $value ['executeStaff'], true );
if (isset ( $executeList )) {
foreach ( $executeList as $op => $lo ) {
$executeList [$op] ['date'] = "";
$executeList [$op] ['opinion'] = "";
$executeList [$op] ['status'] = "";
foreach ( $executeStaff as $m => $u ) {
if ($lo [0] == $m) {
$executeList [$op] ['date'] = $u ['date'];
$executeList [$op] ['opinion'] = $u ['opinion'];
$executeList [$op] ['status'] = $u ['status'];
break;
}
}
if ($this->staff [0] ['sid'] == $lo [0] && empty ( $executeList [$op] ['status'] )) {
$button2 = 1;
$executeList [$op] ['status'] = 4;
}
}
}
// 检测编辑状态
if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 9) {
$verifyList ['staff'] = $value ['verifyBreakup'];
} else
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
if ($verifyList == NULL)
$verifyList = array ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['executeList'] = $executeList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button2'] = $button2;
$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );
$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );
$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );
$receiptList [$key] ['relust'] = $relust;
$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( $relust );
$receiptList [$key] ['amountABS'] = abs ( $value ['amount'] );
}
//执行人是否是最后一位
$executeCopy = json_decode ( $receiptList [0] ['executeCopy'], true );
$executeStaff = json_decode ( $receiptList [0] ['executeStaff'], true );
$executePrimary=count($executeCopy)-1;
$lastOne=true;
if($executePrimary!=count($executeStaff)){
$lastOne=false;
}
$data['lastOne']=$lastOne;
// 是否写入过流水
$accountType = 0;
if ($receiptList [0] ['Rtype'] == 0) {
$accountType = 3;
} elseif ($receiptList [0] ['Rtype'] == 1) {
if (!empty($receiptList [0]['accountItem']) )
$accountType = 2;
else
$accountType = 1;
} elseif ($receiptList [0] ['Rtype'] == 2) {
$accountType = 4;
} elseif ($receiptList [0] ['Rtype'] == 3) {
$accountType = 12;
}
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$wbDetail = $wasteBook->getWateBookByAD ( $accountType, $receiptList [0] ['rid'] );
$data ['wbDetail'] = $wbDetail;
$wbDetailLoan=array();
if ($accountType==2){
$wbDetailLoan = $wasteBook->getWateBookByAD ( 1, $receiptList [0] ['rid'] );
}
$data ['wbDetailLoan'] = $wbDetailLoan;
$data['inputDate']=date ( "Y-m-d H:i:s" );
//print_r($wbDetail);
$data ['receiptList'] = $receiptList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'implement';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
if ($Rtype=="loan"){
$this->render ( "/receipt/receiptImplementLoan", $data );
}elseif($Rtype=="receipt"){
if($receiptList[0]['receiptClass']==2){
//TODO 费用执行行程单2.0
if(!empty($receiptList[0]['itinerary2'])){
$this->render ( "/receipt/receiptImplementTrave2", $data );
}else{
$this->render ( "/receipt/receiptImplementTrave", $data );
}
}else{
$this->render ( "/receipt/receiptImplement", $data );
}
}elseif($Rtype=="public"){
$this->render ( "/receipt/receiptImplementPublic", $data );
}else{
//$this->render ( "/admin/implement", $data );
}
}
function implementDo() {
$rid = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : "";
$implementOpinions = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
// $amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : '';
// $accountBank = $this->get_args ( 'accountBank' ) ? $this->get_args ( 'accountBank' ) : "";
// $ab = '';
// if ($accountBank == 'CGBDeposit')
// $ab = '纵横广发';
// elseif ($accountBank == 'ICBCDeposit')
// $ab = '纵横工行';
// elseif ($accountBank == 'HUADeposit')
// $ab = '华润银行';
// elseif ($accountBank == 'PersonalDeposit')
// $ab = '个人广发';
// if (empty ( $ab ))
// die ( 'illegal request--22' );
if (! empty ( $rid )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid=$XDeode->decode($rid);
if (!is_numeric($rid)){
die;
}
// $rinfo = $receipt->getOne ( array (
// 'where' => 'rid=' . $rid,
// 'asArray' => true
// ) );
$rinfo = $receipt->getReceiptByRid ( $rid );
// $accountType = '';
// if ($rinfo ['Rtype'] == 1) {
// if ($rinfo ['loanRid'] != 0)//判断有问题
// $accountType = 2;
// else
// $accountType = 1;
// } elseif ($rinfo ['Rtype'] == 2) {
// $accountType = 4;
// } elseif ($rinfo ['Rtype'] == 0)
// $accountType = 3;
// if (empty ( $accountType ))
// die ( 'illegal request' );
$executeCopy = json_decode ( $rinfo ['executeCopy'], true );
$executeStaff = json_decode ( $rinfo ['executeStaff'], true );
if (empty ( $executeStaff )) {
$executeStaff = array (
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $implementOpinions,
'status' => 1
)
);
} else {
$executeStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $implementOpinions,
'status' => 1
);
}
if (count ( $executeStaff ) == count ( $executeCopy )) {
$receipt->executeStaff = json_encode ( $executeStaff );
$receipt->status = 8;
if ($rinfo ['Rtype'] == 1 && $rinfo ['isBK'] == 1 && $rinfo ['status'] == 1)
$receipt->status = 9;
if ($rinfo ['status'] == 6) {
$receipt->loanDate = date ( "Y-m-d" );
}
$receipt->executeDate = date ( "Y-m-d" );
} else {
$receipt->executeStaff = json_encode ( $executeStaff );
}
//$receipt->amount = $amount;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
// 公司流水记录
// Doo::loadModel ( 'wasteBook' );
// $wasteBook = new wasteBook ();
// $abDetail = $wasteBook->getAccountBookByAid ( 2, $accountType, $rid );
// // 银行
// if (empty ( $abDetail ) && ! empty ( $amount )) {
// $item = array (
// 'dataID' => $rid,
// 'expensesType' => 2,
// 'accountType' => $accountType,
// 'accountPriceShow' => $amount,
// 'accountPrice' => - $amount,
// 'accountBank' => $accountBank,
// 'category' => $rinfo ['category'] [0] ['title'],
// 'cid' => $rinfo ['category'] [0] ['cid'],
// 'name' => $rinfo ['staffDetail'] ['username'],
// 'sid' => $rinfo ['staffDetail'] ['sid'],
// 'inputDate' => date ( "Y-m-d H:i:s" )
// );
// $wasteBook->setAccountBookStatistics ( $item );
// }
}
//$ridKey = $XDeode->encode ( $rid );
return "/hisImplement";
// return "/implement/" . $ridKey . ".html";
}
function receiptburEdi() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receipt = new receipt ();
$verify = new verify ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
// user verify ID
$verifyDetail = $verify->find ( array (
'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$ap = "";
if ($status == 4) {
$ap = 4;
$status = 2;
}
// get Receipt By verifyID status 2
$receiptList = $receipt->find ( array (
'where' => 'rid =' . $rid . ' and status=2',
'desc' => 'rid',
'asArray' => true
) );
if (empty ( $receiptList )) {
die ( 'illegal request' );
}
$loanList = $loanReceipt->find ( array (
'where' => 'rid=' . $receiptList [0] ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
$data ['explanation'] = '';
if (! empty ( $loanList ))
$data ['explanation'] = $loanList [0] ['explanation'];
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $loanList as $key => $value ) {
$loanList [$key] ['Locate'] = $Locate;
$Locate ++;
$loanList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$loanList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$loanList [$key] ['verifyList'] = $verifyList;
}
$htmlLoan = '';
$data ['loanReceiptDate'] = '';
if (isset ( $loanList [0] )) {
foreach ( $loanList [0] ['verifyList'] as $key => $value ) {
if ($value ['status'] == 1)
$htmlLoan .= '';
elseif ($value ['status'] == 3)
$htmlLoan .= '';
$htmlLoan .= '';
$htmlLoan .= '';
}
$data ['loanDate'] = $loanList [0] ['date'];
} else {
$data ['loanReceiptDate'] = ''; // $loanList [0] ['date'];
}
$data ['htmlLoan'] = $htmlLoan;
// $data ['LoanReceipt']=$loanList[0];
// print_r($loanList);
$Locate = 0;
$roleId = 0;
$button = 0;
if ($ap == 4)
$status = 4;
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
// 调整金额 代码调整
if (! empty ( $value ['reviseDetail'] )) {
$reviseDetail = json_decode ( $value ['reviseDetail'], true );
foreach ( $reviseDetail as $ry => $re ) {
$reviseDetail [$ry] ['sidKey'] = $XDeode->encode ( $re ['sid'] );
$reviseDetail [$ry] ['reviseKey'] = $XDeode->encode ( $ry );
}
$receiptList [$key] ['reviseDetail'] = $reviseDetail;
// print_r($reviseDetail);
}
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
// print_r($verifyList);
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff']) {
$roleId = $v [0];
}
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
// print_r($roleArray);
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$button = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
$endKey = key ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {
$button = 4;
$verifyList [$k] ['status'] = 4;
}
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
// print_r($verifyList);
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );
$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );
$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );
$receiptList [$key] ['relust'] = $relust;
$receiptList [$key] ['relustABS'] = abs ( $relust );
$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );
}
//print_r($receiptList);die;
// $data['verifyDetail']=$verifyDetail;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
// 获取审批日志
Doo::loadModel ( 'receiptLog' );
$receiptLog = new receiptLog ();
$rlList = array ();
$rlInfo = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=4',
'asArray' => true
) );
$tijdate = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2',
'asc' => 'rlid',
'asArray' => true
) );
if (! empty ( $rlInfo )) {
$rlList = $receiptLog->find ( array (
'where' => 'rid=' . $rid,
'asc' => 'rlid',
'asArray' => true
) );
}
// echo $rid;
// print_r($receiptList);
$receiptList [0] ['rlList'] = $rlList;
// print_r($receiptList);
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
$data ['enclosurHtml'] = $enclosurHtml;
$data ['rolename'] = $rolename ['name'];
$data ['mothHtml'] = $mothHtml;
$receiptList[0]['itinerary']=str_replace('\n','
',$receiptList[0]['itinerary']);
$data ['rid'] = $rid;
$data ['tijdate'] = $tijdate ['date'];
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $receiptList );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
$data ['ap'] = $ap;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approvalExpenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
if($receiptList[0]['receiptClass']==1){
$this->render ( "/receipt/feeAgencyApproval", $data );
}elseif($receiptList[0]['receiptClass']==2){
//TODO 行程单2.0
if(!empty($receiptList[0]['itinerary2'])){
$this->render ( "/receipt/feeTraveApproval2", $data );
}else{
$this->render ( "/receipt/feeTraveApproval", $data );
}
}elseif($receiptList[0]['receiptClass']==3){
$this->render ( "/receipt/feeInternalTrainApproval", $data );
}else{
$this->render ( "/admin/receiptburEdi", $data );
}
}
function hisImplement() {
$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";
if (empty ( $item ))
$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "expenses";
$rdate = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : 'MONTH';
$day = $this->get_args ( 'day' ) ? $this->get_args ( 'day' ) : 'DAY';
$sop = $this->get_args ( 'sop' ) ? $this->get_args ( 'sop' ) : 'SOP';
$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 'pendImplement';
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : 'ALL';
$receiptOrder=$this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) :"";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$XDeode7 = new XDeode ( 7 );
$cid = $XDeode->decode ( $cidKey );
$condition = "";
if ($item == "expenses")
$condition = " and Rtype=1 ";
elseif ($item == "receipts")
$condition = " and Rtype=0 ";
elseif ($item == "remits")
$condition = " and Rtype=2 ";
elseif($item == "train")
$condition = " and Rtype=3 ";
$statusCon = '(status=8 or status=9 or status=1 or status=6 )';
$sopString = $cidString = "";
$lastYear = date ( "Y", strtotime ( "-1 year" ) );
if (empty ( $rdate ))
$dateCondition = " and (Year(date) =" . $year . " or Year(date) = " . $lastYear . ") ";
else
$dateCondition = " and date_format(date,'%Y-%m-%d')='" . $rdate . "' ";
if ($status == 'pendImplement') {
$condition .= ' and (status=1 or status=6) and (executeCopy like "%[\"' . $this->staff [0] ['sid'] . '\"%" and (executeStaff not like "%{\"' . $this->staff [0] ['sid'] . '\"%" or executeStaff is null ) ) ';
} elseif ($status == 'alerpts') {
$statusCon = '(status=8 or status=9 )';
if (empty ( $rdate )){
$dateCondition = " and Year(date) =" . $year;
}else{
$dateCondition = " and date_format(executeDate,'%Y-%m-%d')='" . $rdate . "' ";
}
}
if ($sop != 'SOP')
$sopString = " and staff=" . $sop;
if ($cidKey != 'ALL')
$cidString = " and cid=" . $cid;
//汇款信息需要提取出来
if(!empty($receiptOrder)){
$receiptList = $receipt->find ( array (
'where' => $statusCon.' and receiptOrder like "%' . $receiptOrder . '%"',
'desc' => 'rid',
'asArray' => true
) );
// 员工筛选
$receiptList2 = $receipt->find ( array (
'where' => $statusCon.' and receiptOrder like "%' . $receiptOrder . '%"',
'desc' => 'rid',
'asArray' => true
) );
}else{
$receiptList = $receipt->find ( array (
'where' => $statusCon . $condition . $dateCondition . $sopString . $cidString,
'desc' => 'rid',
'asArray' => true
) );
// 员工筛选
$receiptList2 = $receipt->find ( array (
'where' => $statusCon . $condition . $dateCondition,
'desc' => 'rid',
'asArray' => true
) );
}
$sopStaff = array ();
foreach ( $receiptList2 as $key => $value ) {
$staffDetail = $staff->getOne ( array (
'select' => 'username',
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$sopStaff [$value ['staff']] = $staffDetail ['username'];
}
// 办事处筛选
$categoryScreen = array ();
$categorList = $Lcategory->getCategory ();
foreach ( $receiptList2 as $key => $value ) {
foreach ( $categorList as $k => $v ) {
if ($value ['cid'] == $v ['cid']) {
$categoryScreen [$v ['cidKey']] = $v ['title'];
break;
}
}
}
$categoryScreenHtml = "";
foreach ( $categoryScreen as $key => $value ) {
if ($cidKey == $key)
$categoryScreenHtml .= '';
else
$categoryScreenHtml .= '';
}
$data ['categoryScreenHtml'] = $categoryScreenHtml;
$data ['cidKey'] = $cidKey;
$Locate = 0;
$roleId = 0;
$button = 0;
$staffBatchNumber = 100001;
$remittanceList = array ();
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['ridKey7'] = $XDeode7->encode ( $value ['rid'] );
$receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );
$receiptList [$key] ['Texe'] = 'false';
if (strstr ( $value ['executeCopy'], '["' . $this->staff [0] ['sid'] . '"' ) != false) {
$receiptList [$key] ['Texe'] = 'true';
}
$receiptList [$key] ['TRexe'] = 'true';
if (strstr ( $value ['executeStaff'], '{"' . $this->staff [0] ['sid'] . '"' ) != false) {
$receiptList [$key] ['TRexe'] = 'false';
}
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$staffDetail = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['staffDetail'] = $staffDetail;
$receiptList [$key] ['button'] = $button;
if ($value['Rtype']==1){
$receiptList [$key] ['relust'] = $value['sum']-$value['loanSum'];
$receiptList [$key] ['relustABS'] = abs($receiptList [$key] ['relust']);
}elseif($value['Rtype']==3){
// 收入合计
Doo::loadModel ( 'invoiceTraining' );
$invoiceTraining = new invoiceTraining ();
$invoiceTrainingDetail = array (
'invoiceArriveAmount' => '0.00',
'RIAmount' => '0.00',
'invoiceTotalAmount' => '0.00',
'invoiceCompanyAmount' => '0.00',
'invoiceArriveAmountM'=>'0.00',
'invoiceCompanyAmountM'=>'0.00'
);
if ($value ['invoiceTrainId'] != 0) {
$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $value['invoiceTrainId'] );
}
$invoiceArriveAmount = $RIAmount = 0;
if (! empty ( $invoiceTrainingDetail )) {
$invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount'];
$RIAmount = $invoiceTrainingDetail ['RIAmount'];
}
// 备用金
$sum = 0;
if (! empty ( $value ['trainLoanRid'] )) {
$receiptLoanList = $receipt->getReceiptInRid ( $value ['trainLoanRid'] );
foreach ($receiptLoanList as $kll=>$vll){
$sum+=$vll['sum'];
}
// $receiptLoanDetailBak = $receipt->getReceiptByRid ( $value ['trainLoanRid'] );
// $sum = $receiptLoanDetailBak ['sum'];
}
// 支出项金额详情
// 项目金额合计
Doo::loadModel ( 'RItem' );
$RItem = new RItem ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
// 讲师获得
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
$RItemList = $RItem->getRItemByRid ( $value['rid'] );
$RILecturerList = $RILecturer->getRILecturerByRid ( $value['rid'] );
// 支出项金额详情
$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount );
$categoryActualExpenditure = $aiData ['total'] - $aiData ['categoryActualExpenditure'];
$payment = $sum + $RIAmount - $categoryActualExpenditure;
$receiptList [$key] ['payment'] =$payment;
$receiptList [$key] ['paymentABS'] =sprintf("%.2f",abs($payment));
}
// 设置导出汇款execl
if (! empty ( $value ['remittanceName'] ) && ! empty ( $value ['bankName'] ) && ! empty ( $value ['bankNumber'] )) {
$remittanceDetail = array (
$staffBatchNumber,
$value ['remittanceName'],
$value ['bankNumber'],
$value ['bankName'],
$value ['remittanceBankType'],
$value ['coupletNumber'],
$value ['sum']
);
array_push ( $remittanceList, $remittanceDetail );
$staffBatchNumber ++;
}
}
$data ['remittanceList'] = json_encode ( $remittanceList );
// print_r($receiptList);
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($moth == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$dayHtml = "";
if ($day != "DAY" || $moth != "MONTH") {
for($i = 1; $i <= 31; $i ++) {
if ($day == $i)
$dayHtml .= '';
else
$dayHtml .= '';
}
}
$sopHtml = "";
foreach ( $sopStaff as $key => $value ) {
if ($sop == $key)
$sopHtml .= '';
else
$sopHtml .= '';
}
$data ['status'] = $status;
$data ['rdate'] = $rdate;
$data ['sopHtml'] = $sopHtml;
$data ['dayHtml'] = $dayHtml;
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'implement';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data ['item'] = $item;
$data ['year'] = $year;
$data ['moth'] = $moth;
$data['receiptOrder']=$receiptOrder;
$data ['day'] = $day;
$data ['sop'] = $sop;
$this->render ( "/admin/hisImplement", $data );
}
/**
* 导出汇款信息的exelc
*/
function exportRemittance() {
$remittanceInfo = $_POST ['remittanceInfo']; // $this->get_args ( 'remittanceInfo' ) ? $this->get_args ( 'remittanceInfo' ) : '';
if (empty ( $remittanceInfo ))
die ( 'illegal request' );
$title = array (
'员工编号',
'姓名',
'员工账号',
'员工账户开户行',
'转账类型',
'联行号',
'金额'
);
$data = json_decode ( $remittanceInfo, true );
if (empty ( $data ))
die ( 'illegal request' );
Doo::loadClass ( 'receipt.func' );
exportExcel ( $title, $data, '批量日常报销-公司账号', './', true );
header ( 'Content-Type:text/html;charset=utf-8' );
die ( '导出' . count ( $data ) . '条数据,返回' );
}
function ajaxExamine() {
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
if (! empty ( $rid )) {
$rLRes = $receipt->find ( array (
'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) and rid!=' . $rid,
'asArray' => true
) );
if(!empty($rLRes)){
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 7 );
$rLRes [0]['ridKey'] = $XDeode->encode( $rLRes [0]['rid'] );
echo json_encode ( array (
'status' => 1,
'receipt' => $rLRes [0]
) );
die ();
}else{
echo json_encode ( array (
'status' => 1,
'receipt' => array ()
) );
die ();
}
}
echo json_encode ( array (
'status' => 0,
'receipt' => array ()
) );
die ();
}
/*
* 废弃
*/
function myReceipt() {
// all approval past withdraw
$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";
if (empty ( $item ))
$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
// pre-loaded
if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) {
// have cache
$path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . ".htmls";
if (! empty ( $moth )) // yearPage
$path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . "_" . $moth . ".htmls";
$this->showCache ( $path );
}
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$condition = " and status!=0 ";
if ($item == "approval")
$condition = " and status=2 ";
elseif ($item == "withdraw")
$condition = " and status=3 ";
elseif ($item == "past")
$condition = " and status=1 ";
elseif ($item == "whdw")
$condition = " and status=4 ";
$dateCondition = " and Year(date) =" . $year;
if (! empty ( $moth )) {
$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth;
$stList = $statistics->getOne ( array (
'select' => 'rePrice ,agPrice',
'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition,
'asArray' => true
) );
} else
$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$noPassSum = $receipt->receiptByYear ( $year, $this->staff [0] ['sid'] );
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'] - $noPassSum ['sum'])
);
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . $condition . $dateCondition,
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
// if ($v[0]==$endStaffArray['nextStaff']){
// $roleId=$v[0];
// }
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
// $endKey=key($verifyStaff);
// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){
// $button=4;
// $verifyList[$k]['status']=4;
// }
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
}
// print_r($receiptList);die;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($moth == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'receipt';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$data ['item'] = $item;
$data ['year'] = $year;
if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) {
// sufficient condition to generate cache
if (empty ( $moth ) && ($year < date ( "Y" ))) {
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year,
'asArray' => true
) );
if (empty ( $receiptList )) { // generated files
ob_start ();
$this->render ( "/admin/saea_myList", $data );
$this->cacheFile ( $path );
die ();
// $content = ob_get_contents();
// $fp = fopen($path, "w");
// fwrite($fp, $content);
// fclose($fp);
}
} elseif (! empty ( $moth ) && ($year <= date ( "Y" )) && ($moth < date ( "m" ))) {
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year . ' and Month(date) =' . $moth,
'asArray' => true
) );
if (empty ( $receiptList )) { // generated files
ob_start ();
$this->render ( "/admin/saea_myList", $data );
$this->cacheFile ( $path );
die ();
}
}
}
$this->render ( "/admin/saea_myList", $data );
}
function approvedReceipt() {
$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'receiptDetail' );
$receipt = new receipt ();
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'statistics' );
Doo::loadModel ( 'itemStatistics' );
$statistics = new statistics ();
$itemStatistics = new itemStatistics ();
Doo::loadModel ( "verify" );
$verify = new verify ();
// 审批状态的判定
$receiptDetailList = $receipt->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=4 or status=5 or status=7)',
'asArray' => true
) );
if (empty ( $receiptDetailList ))
return "/saeaBorad";
$verifyDetail = $verify->getOne ( array (
'where' => ' vid =' . $receiptDetailList ['verify'],
'asArray' => true
) );
$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
if (empty ( $receiptDetailList ['nowStaff'] )) {
$nowStaff = "";
$nowStaffList = array ();
if ($verifyDetail [0] [1] == 'ROLE') {
$vStaffString = json_decode ( $verifyDetail [0] [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
} else {
$nowStaff = $verifyDetail [0] [0];
}
$receipt->nowStaff = $nowStaff;
}
// echo $nowStaff;
// print_r($verifyDetail);die;
$receipt->rid = $receiptDetailList ['rid'];
$receipt->date = date ( "Y-m-d" );
$receipt->status = 2;
$receipt->update ();
$receiptDetail->status = 2;
$receiptDetail->update ( array (
'where' => 'rid=' . $receiptDetailList ['rid']
) );
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
Doo::loadModel ( "verify" );
$verify = new verify ();
$receiptInfo = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$vr = $verify->getOne ( array (
'where' => 'vid=' . $receiptInfo ['verify'],
'asArray' => true
) );
$jd = json_decode ( $vr ['staff'] );
$roleId = 0;
foreach ( $jd as $key => $value ) {
if ($value [1] == 'ROLE') {
$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
if ($pos !== false) {
$roleId = $value [0];
}
}
}
// 审批日志
// echo $roleId;die;
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
// $receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = '提交审批';
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 2;
$receiptLog->rid = $rid;
$receiptLog->insert ();
// statistics item
$dateArray = explode ( "-", $receiptDetailList ['date'] );
$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];
$accountItem = json_decode ( $receiptDetailList ['accountItem'], true );
$stat = $statistics->getOne ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . $dateCondition,
'asArray' => true
) );
if (empty ( $stat )) {
$statistics->date = date ( "Y-m-d" );
$statistics->cid = $this->staff [0] ['cid'];
$statistics->staff = $this->staff [0] ['sid'];
$statistics->agPrice = 0;
$statistics->rePrice = $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];
$statistics->insert ();
} else {
$statistics->rePrice = $stat ['rePrice'] + $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];
$statistics->update ( array (
'where' => 'sid=' . $stat ['sid']
) );
}
return "/expenses";
}
function approval() {
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
// user verify ID
$verifyDetail = $verify->find ( array (
'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
/*
*/
$dateCondition = " and Year(date) =" . $year;
if (! empty ( $month ))
$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$cateCondition = "";
$staffCondition = "";
$approvalCondition = "";
if (! empty ( $cid ))
$cateCondition = ' and cid=' . $cid;
if (! empty ( $sid )) {
$staffCondition = ' and staff=' . $sid;
$cateCondition = "";
}
// elseif($status==1){
// $approvalCondition=' and staff='.$this->staff[0]['sid'];
// }
if ($status == 2) {
// 查找角色审批人
$approvalCondition = ' and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) ';
}
$ap = "";
if ($status == 4) {
$ap = 4;
$status = 2;
$approvalCondition = ' and verifyStaff like "%\"' . $this->staff [0] ['sid'] . '\":{%" ';
}
if ($status == 5) {
$status = 4;
$ap = 5;
}
// echo $vid;
// get Receipt By verifyID status 2 .$approvalCondition
// $receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition,'desc'=>'rid','asArray'=>true));
$receiptList = $receipt->find ( array (
'where' => ' status=' . $status . $dateCondition . $cateCondition . $staffCondition . $approvalCondition,
'desc' => 'rid',
'asArray' => true
) );
// echo ' status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition;
$Locate = 0;
if ($ap == 4)
$status = 4;
elseif ($ap == 5)
$status = 5;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if ($v [0] == $this->staff [0] ['sid']) {
$verifyList [$k] ['status'] = 4;
$button = 4;
}
} else {
$flag = true;
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
// elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;}
// if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;}
// if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;}
}
if ($flag) { // 检测可编辑
if ($v [0] == $this->staff [0] ['sid']) {
$verifyList [$k] ['status'] = 4;
$button = 4;
}
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
}
// print_r($receiptList);die;
// $data['verifyDetail']=$verifyDetail;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $receiptList );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
$data ['ap'] = $ap;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approval';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saea_reportList", $data );
}
function approvalDetails() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
$vidList = array ();
$verifyDetail = $verify->find ( array (
'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$ap = 0;
$receiptList = $receipt->find ( array (
'where' => 'rid =' . $rid,
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
$button = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
// print_r($verifyList);
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff']) {
$roleId = $v [0];
}
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
// print_r($roleArray);
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$button = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
$endKey = key ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {
$button = 4;
$verifyList [$k] ['status'] = 4;
}
}
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
}
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
// 获取审批日志
Doo::loadModel ( 'receiptLog' );
$receiptLog = new receiptLog ();
$rlList = array ();
$rlInfo = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=4',
'asArray' => true
) );
$tijdate = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2',
'asc' => 'rlid',
'asArray' => true
) );
if (! empty ( $rlInfo )) {
$rlList = $receiptLog->find ( array (
'where' => 'rid=' . $rid,
'asc' => 'rlid',
'asArray' => true
) );
}
$receiptList [0] ['rlList'] = $rlList;
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
$data ['enclosurHtml'] = $enclosurHtml;
$data ['rolename'] = $rolename ['name'];
$data ['datetij'] = $tijdate ['date'];
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $receiptList );
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
$data ['status'] = 0;
if ($receiptList [0] ['status'] != 1 && $receiptList [0] ['status'] != 3) {
$ap = 4;
} else
$data ['status'] = $receiptList [0] ['status'];
if ($receiptList [0] ['status'] == 4) {
$data ['status'] = 5;
$ap = 0;
}
$data ['ap'] = $ap;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approval';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saeaReportListReport", $data );
}
function approvalEdi() {
$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
Doo::loadModel ( 'receipt' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receipt = new receipt ();
$verify = new verify ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
// user verify ID
$verifyDetail = $verify->find ( array (
'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$ap = "";
if ($status == 4) {
$ap = 4;
$status = 2;
}
// get Receipt By verifyID status 2
$receiptList = $receipt->find ( array (
'where' => 'rid =' . $rid,
'desc' => 'rid',
'asArray' => true
) );
$Locate = 0;
$roleId = 0;
if ($ap == 4)
$status = 4;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
// 检测编辑状态
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
// print_r($verifyList);
//
// if (empty($verifyStaff)){
// if ($this->staff[0]['sid']==$verifyStaff[0][0]){
// $verifyList[0]['status']=4;$button=4;
// }
//
// }else{
//
// }
// die;
// $a=array("a"=>"red","b"=>"green","c"=>"blue");
// echo array_search("green",$a);
//
Doo::loadModel ( 'role' );
$role = new role ();
// print_r($verifyList);
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff']) {
$roleId = $v [0];
}
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
// print_r($roleArray);
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$button = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
if (isset ( $endStaffArray ['ROLE'] )) {
} else {
$endKey = key ( $verifyStaff );
if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {
$button = 4;
$verifyList [$k] ['status'] = 4;
}
}
// print_r($endStaffArray);die;
// if (empty($verifyStaff)){
// if ($this->staff[0]['sid']==$verifyStaff[0][0]){
// $verifyList[$k]['status']=4;$button=4;
// }
//
// }else{
//
// }
// if($flag){//检测可编辑
// if($v[0]==$this->staff[0]['sid']){
// $verifyList[$k]['status']=4;$button=4;
// }
// }
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
// print_r($roleArrayCopy);
// echo $roleKey;
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
// if ($KOP)
// array_splice($verifyList,$roleKey,1,$roleArray);
// print_r($verifyList);
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
}
// $data['verifyDetail']=$verifyDetail;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
// 获取审批日志
Doo::loadModel ( 'receiptLog' );
$receiptLog = new receiptLog ();
$rlList = array ();
$rlInfo = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=4',
'asArray' => true
) );
$tijdate = $receiptLog->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2',
'asc' => 'rlid',
'asArray' => true
) );
if (! empty ( $rlInfo )) {
$rlList = $receiptLog->find ( array (
'where' => 'rid=' . $rid,
'asc' => 'rlid',
'asArray' => true
) );
}
$receiptList [0] ['rlList'] = $rlList;
$enclosurList = $enclosur->find ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$enclosurHtml = '';
foreach ( $enclosurList as $value ) {
$enclosurHtml .= '' . $value ['name'] . '';
}
$data ['enclosurHtml'] = $enclosurHtml;
$data ['rolename'] = $rolename ['name'];
$data ['datetij'] = $tijdate ['date'];
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $receiptList );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
$data ['ap'] = $ap;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approval';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saeaReportListReport", $data );
}
function remittanceHky() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : date ( "m" );
$day = $this->get_args ( 'day' ) ? $this->get_args ( 'day' ) : 'DAY';
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$page_size = 15;
$get = "?year=" . $year . "&moth=" . $moth . "&day=" . $day;
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$dateCondition = " and Year(executeDate) =" . $year;
if ($moth != 'MONTH')
$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth;
if ($day != 'DAY' && $moth != 'MONTH')
$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth . " and day(executeDate)=" . $day;
$sql = ' (status =8 or status=9 ) and amount>0 ' . $dateCondition;
$table = '(SELECT count(*) FROM CLD_receipt WHERE ' . $sql . ' group by executeDate ) a ';
$pageinfo = $this->get_page ( $table, ' ', $page, $page_size, "remittanceHky", $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$dayList = $receipt->find ( array (
'select' => 'executeDate,sum(amount) as amount',
'where' => $sql,
'desc' => 'executeDate',
'groupby' => 'executeDate',
'limit' => $limit,
'asArray' => true
) );
// print_r($dayList);
foreach ( $dayList as $key => $value ) {
$remitString = "";
$receiptList = $receipt->find ( array (
'select' => 'rid,executeDate,amount,staff,cid',
'where' => '(status =8 or status=9 ) and amount!=0 and executeDate="' . $value ['executeDate'] . '"',
'desc' => 'executeDate',
'asArray' => true
) );
foreach ( $receiptList as $k => $v ) {
$sinfo = $staff->getOne ( array (
'select' => 'username,category',
'where' => ' sid=' . $v ['staff'],
'asArray' => true
) );
$remitString .= $sinfo ['category'] . '-' . $sinfo ['username'] . '(' . $v ['amount'] . ') ';
}
$dayList [$key] ['staff'] = $remitString;
$dayList [$key] ['ridKey'] = strtotime ( $value ['executeDate'] );
}
// print_r($dayList);
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($moth == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$dayHtml = "";
if ($day != "DAY" || $moth != "MONTH") {
for($i = 1; $i <= 31; $i ++) {
if ($day == $i)
$dayHtml .= '';
else
$dayHtml .= '';
}
}
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['page'] = $pageinfo;
$data ['year'] = $year;
$data ['moth'] = $moth;
$data ['day'] = $day;
$data ['get'] = $get;
$data ['dayHtml'] = $dayHtml;
$data ['mothHtml'] = $mothHtml;
$data ['receiptList'] = $dayList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'remittanceHky';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/remittanceHky", $data );
}
function remittancep() {
$timeStamp = isset ( $this->params ['timeStamp'] ) && is_numeric ( $this->params ['timeStamp'] ) ? $this->params ['timeStamp'] : 0;
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$dateCondition = ' and executeDate="' . date ( 'Y-m-d', $timeStamp ) . '"';
$rplist = $receipt->find ( array (
'where' => ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition,
'asArray' => true
) );
$dayList = $receipt->find ( array (
'where' => ' (status =8 or status=9 ) and amount!=0 ' . $dateCondition,
'desc' => 'executeDate',
'groupby' => 'staff',
'asArray' => true
) );
$html = '';
foreach ( $dayList as $key => $value ) {
$sinfo = $staff->getOne ( array (
'select' => 'username,category',
'where' => ' sid=' . $value ['staff'],
'asArray' => true
) );
$html .= '' . $sinfo ['category'] . '-' . $sinfo ['username'] . ' |
费用单号 | 汇款金额 |
';
$au = 0;
foreach ( $rplist as $k => $v ) {
if ($value ['staff'] == $v ['staff']) {
$html .= '' . $v ['receiptOrder'] . ' | ¥' . $v ['amount'] . ' |
';
$au += $v ['amount'];
}
}
$html .= '合计 | ¥' . $au . ' |
';
}
$data ['html'] = $html;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'remittanceHky';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/remittancep", $data );
}
function ajaxGetReceiptDetails() {
$rid = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $rid );
if (empty ( $rid )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$rinfo = $receipt->getOne ( array (
'where' => 'rid= ' . $rid,
'asArray' => true
) );
$sinfo = $staff->getOne ( array (
'select' => 'username,category',
'where' => ' sid=' . $rinfo ['staff'],
'asArray' => true
) );
$rinfo ['reviseDetail'] = array ();
if (! empty ( $rinfo ['reviseDetail'] ))
$rinfo ['reviseDetail'] = json_decode ( $rinfo ['reviseDetail'], true );
$rinfo ['accountItem'] = json_decode ( $rinfo ['accountItem'], true );
$rinfo ['loanItem'] = json_decode ( $rinfo ['loanItem'], true );
$rinfo ['category'] = $sinfo ['category'];
$verifyStaff = array ();
if (! empty ( $rinfo ['verifyStaff'] ))
$verifyStaff = json_decode ( $rinfo ['verifyStaff'], true );
$relust = bcsub ( $rinfo ['sum'], $rinfo ['loanSum'], 2 );
$rinfo ['relust'] = $relust;
$rinfo ['relustCN'] = $this->num_to_rmb ( $relust );
$rinfo ['sumCN'] = $this->num_to_rmb ( $rinfo ['sum'] );
$rinfo ['loanSumCN'] = $this->num_to_rmb ( $rinfo ['loanSum'] );
$rinfo ['amountCN'] = $this->num_to_rmb ( $rinfo ['amount'] );
// 费用执行人相关数据
$executeCopy = json_decode ( $rinfo ['executeCopy'], true );
$executeStaff = json_decode ( $rinfo ['executeStaff'], true );
foreach ( $executeCopy as $k => $v ) {
$executeCopy [$k] ['date'] = '';
$executeCopy [$k] ['opinion'] = '';
$executeCopy [$k] ['status'] = '';
if (! empty ( $executeStaff ))
foreach ( $executeStaff as $m => $u ) {
if ($v [0] == $m) {
$executeCopy [$k] ['date'] = $u ['date'];
$executeCopy [$k] ['opinion'] = $u ['opinion'];
$executeCopy [$k] ['status'] = $u ['status'];
break;
}
}
}
$rinfo ['executeCopy'] = $executeCopy;
$html = '';
if ($rinfo ['Rtype'] == 1) { // 借款费用
$html .= '
借款费用 |
';
foreach ( $rinfo ['loanItem'] ['借款费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '产生费用所在办事处 |
' . $rinfo ['category'] . ' |
费用说明 |
---|
' . $rinfo ['explanation'] . ' |
(' . $rinfo ['receiptOrder'] . ')本次费用合计 |
¥' . $rinfo ['loanSum'] . ' ' . $rinfo ['loanSumCN'] . ' |
';
if ($rinfo ['loanRid'] != 0 && ! empty ( $rinfo ['accountItem'] )) {
$html .= '
';
$html .= '日常相关费用 |
';
foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . ' |
';
$html .= '差旅相关费用 |
';
foreach ( $rinfo ['accountItem'] ['差旅相关费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['travelSum'] . ' |
';
$html .= '培训班费用 |
';
foreach ( $rinfo ['accountItem'] ['培训班费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['trainSum'] . ' |
';
$html .= '其他 |
';
foreach ( $rinfo ['accountItem'] ['其他'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['otherSum'] . ' |
';
$html .= '报销金额调整 |
';
foreach ( $rinfo ['reviseDetail'] as $value ) {
$html .= '|' . $value ['name'] . ':' . $value ['description'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['revisePrice'] . ' |
';
$html .= '产生费用所在办事处 |
' . $rinfo ['category'] . ' |
报销说明 |
' . $rinfo ['explanation'] . ' |
(' . $rinfo ['receiptOrder'] . ')本次报销费用合计 |
¥' . $rinfo ['sum'] . ' ' . $rinfo ['sumCN'] . ' |
= 0) {
$html .= 'class="success"';
} else {
$html .= 'class="error"';
}
$html .= '>借款结余 |
¥' . $rinfo ['relust'] . ' ' . $rinfo ['relustCN'] . ' |
';
}
} elseif ($rinfo ['Rtype'] == 2) { // 对公汇款
$html .= '
办事处相关费用 |
';
foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . ' |
';
$html .= '产生费用所在办事处 |
' . $rinfo ['category'] . ' |
费用说明 |
---|
' . $rinfo ['explanation'] . ' |
(' . $rinfo ['receiptOrder'] . ')本次费用合计 |
¥' . $rinfo ['sum'] . ' ' . $rinfo ['sumCN'] . ' |
';
} else {
$html .= '
';
$html .= '日常相关费用 |
';
foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . ' |
';
$html .= '差旅相关费用 |
';
foreach ( $rinfo ['accountItem'] ['差旅相关费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['travelSum'] . ' |
';
$html .= '培训班费用 |
';
foreach ( $rinfo ['accountItem'] ['培训班费用'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['trainSum'] . ' |
';
$html .= '其他 |
';
foreach ( $rinfo ['accountItem'] ['其他'] as $value ) {
$html .= '' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['accountItem'] ['cSum'] ['otherSum'] . ' |
';
$html .= '报销金额调整 |
';
foreach ( $rinfo ['reviseDetail'] as $value ) {
$html .= '|' . $value ['name'] . ':' . $value ['description'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '合计 |
¥' . $rinfo ['revisePrice'] . ' |
';
$html .= '产生费用所在办事处 |
' . $rinfo ['category'] . ' |
报销说明 |
' . $rinfo ['explanation'] . ' |
(' . $rinfo ['receiptOrder'] . ')本次报销费用合计 |
¥' . $rinfo ['sum'] . ' ' . $rinfo ['sumCN'] . ' |
';
$html .= '
';
/*
*
日常相关费用 |
{{receiptList' value' value.name}} | ¥{{receiptList' value' value.price}} |
合计 | ¥{{receiptList' value.accountItem.cSum.agencySum}} |
差旅相关费用 |
{{receiptDetail' value' value.name}} | ¥{{receiptDetail' value' value.price}} |
合计 | ¥{{receiptDetail' value.accountItem.cSum.travelSum}} |
培训班费用 |
{{receiptDetail' value' value.name}} | ¥{{receiptDetail' value' value.price}} |
合计 | ¥{{receiptDetail' value.accountItem.cSum.trainSum}} |
其他 |
{{receiptDetail' value' value.name}} | ¥{{receiptDetail' value' value.price}} |
合计 | ¥{{receiptDetail' value.accountItem.cSum.otherSum}} |
报销金额调整 |
|{{receiptList' value' value.name}}:{{receiptList' value' value.description}} | ¥{{receiptList' value' value.price}} |
合计 | ¥{{receiptList' value.revisePrice}} |
产生费用所在办事处 |
{{receiptDetail' value.category}} |
报销说明 |
{{receiptDetail' value.explanation}} |
({{receiptDetail' value.receiptOrder}})本次报销费用合计 | ¥{{receiptDetail' value.sum}} {{receiptDetail' value.sumCN}} |
*/
}
// print_r($verifyStaff);die;
$html .= '
审批人 | 审批意见 |
';
foreach ( $verifyStaff as $key => $value ) {
$key = trim ( strtr ( $key, '_R', ' ' ) );
$sinfo = $staff->getOne ( array (
'select' => 'username',
'where' => ' sid=' . $key,
'asArray' => true
) );
$html .= '' . $sinfo ['username'] . ' | ' . $value ['opinion'] . ' |
';
}
$html .= '
';
$html .= '
执行人 | 执行意见 |
';
foreach ( $rinfo ['executeCopy'] as $value ) {
$html .= '' . $value [1] . ' | ' . $value ['opinion'] . ' |
';
}
$html .= '
';
$html .= '
汇款金额 |
¥' . $rinfo ['amount'] . ' ' . $rinfo ['amountCN'] . ' |
';
$html .= '
';
echo json_encode ( array (
'status' => 1,
'html' => $html
) );
die ();
}
/**
* 删除附件
*/
function ajaxRemEnclousur() {
$key = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : '';
if (empty ( $key ))
echo json_encode ( array (
'status' => 2
) );
Doo::loadModel ( 'enclosur' );
$enclosur = new enclosur ();
$enclosur->delEnclosurByEid ( $key );
echo json_encode ( array (
'status' => 1
) );
}
function remittance() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$dateCondition = " and Year(pastDate) =" . $year;
if (! empty ( $month ))
$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month;
// get Receipt By verifyID status 1
$receiptList = $receipt->find ( array (
'select' => 'sum(sum) as sum,staff,pastDate',
'where' => ' status=1' . $dateCondition,
'desc' => 'pastDate',
'groupby' => 'staff,pastDate',
'asArray' => true
) );
$dateList = $receipt->find ( array (
'select' => 'pastDate,verifyStaff',
'where' => ' status=1' . $dateCondition,
'desc' => 'pastDate',
'groupby' => 'pastDate',
'asArray' => true
) );
$dataList = array ();
foreach ( $dateList as $d => $a ) {
$dataList [$a ['pastDate']] = array ();
$daySum = 0;
foreach ( $receiptList as $key => $value ) {
if ($a ['pastDate'] == $value ['pastDate']) {
$oderList = $receipt->find ( array (
'select' => 'receiptOrder',
'where' => ' status=1 and staff=' . $value ['staff'] . ' and pastDate=\'' . $a ['pastDate'] . '\'',
'asArray' => true
) );
$list = array ();
$html = "";
foreach ( $oderList as $v ) {
array_push ( $list, $v ['receiptOrder'] );
$html .= ' ' . $v ['receiptOrder'] . '、';
}
$receiptList [$key] ['receiptOrder'] = $html;
// $receiptList[$key]['receiptOrder']=implode(",", $list);
$sinfo = $staff->getOne ( array (
'select' => 'username ',
'where' => ' sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['username'] = $sinfo ['username'];
$daySum += $value ['sum'];
array_push ( $dataList [$a ['pastDate']], $receiptList [$key] );
}
$dataList [$a ['pastDate']] ['9999999'] = number_format ( $daySum, 2 );
// $dataList[$a['pastDate']]['8888888']=json_decode($a['verifyStaff'],true);
}
}
// print_r($dataList);
$data ['dataList'] = $dataList;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['year'] = $year;
$data ['mothHtml'] = $mothHtml;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approval';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/saeaReportListPay", $data );
}
/**
* 金额调整,提高稳定性
* @return string
*/
function revocationAdjustment() {
$sidKey = isset ( $this->params ['sidKey'] ) ? $this->params ['sidKey'] : '';
$price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999;
$ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : '';
$reviseKey = isset ( $this->params ['reviseKey'] ) ? $this->params ['reviseKey'] : '';
if ((! empty ( $sidKey )) && ($price != - 99999) && (! empty ( $ridKey ) && (! empty ( $reviseKey )))) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$sid = $XDeode->decode ( $sidKey );
$rid = $XDeode->decode ( $ridKey );
$reviseKey = $XDeode->decode ( $reviseKey );
if (! is_numeric ( $sid ) && ! is_numeric ( $rid ) && ! is_numeric ( $reviseKey ))
die ( 'illegal request' );
$receiptDetail = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
if (empty ( $receiptDetail ) || empty ( $receiptDetail ['reviseDetail'] ))
die ( 'illegal request' );
$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );
if (! isset ( $reviseDetail [$reviseKey] ))
die ( 'illegal request' );
if ($reviseDetail [$reviseKey] ['sid'] == $sid && $reviseDetail [$reviseKey] ['price'] == $price)
unset ( $reviseDetail [$reviseKey] );
$revisePrice = 0;
foreach ( $reviseDetail as $key => $value ) {
$revisePrice += $value ['price'];
}
$reviseDetailString = json_encode ( $reviseDetail );
$receipt->reviseDetail = $reviseDetailString;
$receipt->sum = $receiptDetail ['sum'] - $price;
$receipt->revisePrice = $revisePrice;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
return '/receiptburEdi/' . $rid;
} else
die ( 'illegal request2' );
}
function updateApprovalReceipt() {
$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
$Locate = $this->get_args ( 'Locate' ) && is_numeric ( $this->get_args ( 'Locate' ) ) ? $this->get_args ( 'Locate' ) : 0;
$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : 0;
if (! empty ( $rid )) {
Doo::loadModel ( "verify" );
$verify = new verify ();
Doo::loadModel ( "receiptDetail" );
$receiptDetailObj = new receiptDetail ();
Doo::loadModel ( "itemStatistics" );
Doo::loadModel ( "statistics" );
$statistics = new statistics ();
$itemStatistics = new itemStatistics ();
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2 ',
'asArray' => true
) );
$nslist = explode ( ',', $receiptDetail ['nowStaff'] );
$nsflag = true;
foreach ( $nslist as $value ) {
if ($value == $this->staff ['0'] ['sid']) {
$nsflag = false;
break;
}
}
if (empty ( $receiptDetail ) || $nsflag)
return "/approvalExpenses/pendApproval";
$verifyDetail = $verify->getOne ( array (
'where' => ' vid =' . $receiptDetail ['verify'],
'asArray' => true
) );
$verifyString = $verifyDetail ['staff'];
$verifyDetail = json_decode ( $verifyDetail ['staff'], true );
$verifyStaff = json_decode ( $receiptDetail ['verifyStaff'], true );
if (empty ( $opinion )) {
if ($status == 3)
$opinion = "终止";
else
$opinion = "同意支付";
}
$nowStaff = 0;
$nowStaffList = array ();
if (empty ( $verifyStaff )) {
// 还需加入是否已经进入角色审批
if ($verifyDetail [0] [1] == 'ROLE') {
$vStaffString = json_decode ( $verifyDetail [0] [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
if ($staffK [0] != $this->staff [0] ['sid'])
array_push ( $nowStaffList, $staffK [0] );
}
// print_r($verifyDetail);
// die;
if (! empty ( $nowStaffList )) {
$nowStaff = implode ( ',', $nowStaffList );
$verifyStaff = array (
$this->staff [0] ['sid'] . "_R" => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [0] [0],
'ROLE' => 1
)
);
} else {
$nowStaff = $verifyDetail [1] [0];
$verifyStaff = array (
$this->staff [0] ['sid'] . "_R" => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [1] [0]
)
);
}
} else {
if ($verifyDetail [1] [1] == 'ROLE') {
$vStaffString = json_decode ( $verifyDetail [1] [3] );
// echo "dd";
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
$verifyStaff = array (
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [1] [0],
'ROLE' => 1
)
);
} else {
$nowStaff = $verifyDetail [1] [0];
$verifyStaff = array (
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $verifyDetail [1] [0]
)
);
}
}
if ($status == 3)
$verifyStaff = array (
'final' => $status,
$this->staff [0] ['sid'] => array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status
)
);
$vStaffString = json_encode ( $verifyStaff );
$receipt->nowStaff = $nowStaff;
$receipt->verifyStaff = $vStaffString;
} else {
$VS = end ( $verifyStaff );
// 非角色审批
if (! array_key_exists ( $this->staff [0] ['sid'], $verifyStaff ) && ! isset ( $VS ['ROLE'] )) {
$nextStaff = 0;
$roleSTF = false;
foreach ( $verifyDetail as $key => $value ) {
if ($value [0] == $this->staff [0] ['sid'] && $value [1] != 'ROLE') {
if (isset ( $verifyDetail [$key + 1] )) {
$nextStaff = $verifyDetail [$key + 1] [0];
if ($verifyDetail [$key + 1] [1] == 'ROLE')
$roleSTF = true;
}
break;
}
}
if (! $roleSTF) {
$nowStaff = $nextStaff;
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff
);
} else {
// 获取角色下的所有用户ID
$nowStaffList = array ();
foreach ( $verifyDetail as $vfk ) {
if ($vfk [1] == 'ROLE') {
$vStaffString = json_decode ( $vfk [3] );
foreach ( $vStaffString as $key => $value ) {
$staffK = explode ( "_", $value );
array_push ( $nowStaffList, $staffK [0] );
}
}
}
$nowStaff = implode ( ',', $nowStaffList );
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff,
'ROLE' => 0
);
}
if ($status == 3) {
$verifyStaff ['final'] = $status;
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status
);
}
$vStaffString = json_encode ( $verifyStaff );
$receipt->nowStaff = $nowStaff;
$receipt->verifyStaff = $vStaffString;
}
// 角色审批
if (isset ( $VS ['ROLE'] )) {
// 找出角色人 当前审批角色组
$verifyJSStaff = array ();
$nowStaffList2 = array ();
foreach ( $verifyDetail as $key => $value ) {
if ($value [1] == 'ROLE' && $value [0] == $VS ['nextStaff']) {
$verifyJSStaff = json_decode ( $value [3] );
foreach ( $verifyJSStaff as $m ) {
$staffK = explode ( "_", $m );
array_push ( $nowStaffList2, $staffK [0] );
}
// print_r($nowStaffList2);
}
}
$RoleVerifyStaff = array ();
foreach ( $verifyStaff as $key => $value ) {
if (isset ( $value ['ROLE'] ) && $value ['ROLE'] == 1 && $VS ['nextStaff'] == $value ['nextStaff']) {
foreach ( $nowStaffList2 as $m ) {
if ($key == $m . "_R")
$RoleVerifyStaff [$key] = $value;
}
}
}
// print_r($verifyStaff);
// print_r($nowStaffList2);
// print_r($RoleVerifyStaff);
// if (!array_key_exists($this->staff[0]['sid'],$RoleVerifyStaff)){
// print_r($verifyJSStaff);
$jsCount = count ( $verifyJSStaff ) - 1; // echo $jsCount;die;
if ($jsCount == count ( $RoleVerifyStaff )) { // 或者
// 下一个审批人ID
$nextStaff = 0;
$falg = false;
foreach ( $verifyDetail as $key => $value ) {
if ($value [0] == $VS ['nextStaff'] && $value [1] == 'ROLE') {
if (isset ( $verifyDetail [$key + 1] ) && $verifyDetail [$key + 1] [1] == 'ROLE') {
$falg = true;
$vStaffString = json_decode ( $verifyDetail [$key + 1] [3] );
$nowStaffList = array ();
foreach ( $vStaffString as $v ) {
$staffK = explode ( "_", $v );
array_push ( $nowStaffList, $staffK [0] );
}
$nowStaff = implode ( ',', $nowStaffList );
$nextStaff = $verifyDetail [$key + 1] [0];
} elseif (isset ( $verifyDetail [$key + 1] )) {
$nextStaff = $verifyDetail [$key + 1] [0];
$nowStaff = $nextStaff;
} else
$nowStaff = '';
break;
}
}
if ($falg)
$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff,
'ROLE' => 1
);
else
$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $nextStaff
);
// print_r($verifyStaff);
// echo $nowStaff;die;
} else { // 进入下一个角色或者审批人
// echo str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']);
//
$nowStaff = str_replace ( $this->staff [0] ['sid'], '', $receiptDetail ['nowStaff'] );
$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status,
'nextStaff' => $VS ['nextStaff'],
'ROLE' => 1
);
// print_r($verifyStaff);
// die;
}
if ($status == 3) {
$verifyStaff ['final'] = $status;
$verifyStaff [$this->staff [0] ['sid']] = array (
'date' => date ( 'Y-m-d' ),
'opinion' => $opinion,
'status' => $status
);
}
$vStaffString = json_encode ( $verifyStaff );
$receipt->verifyStaff = $vStaffString;
$receipt->nowStaff = $nowStaff;
// die;
// }
// print_r($verifyStaff);
// die;
}
// print_r($verifyStaff);die;
}
// print_r($verifyDetail);
$roleKey = 0;
$roleId = 0;
$verifyDetailCopy = array ();
foreach ( $verifyDetail as $k => $v ) {
if ($v [1] == 'ROLE') {
$roleId = $v [0];
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$exp = array (
0 => $staffID [0],
1 => $staffID [1]
);
array_push ( $roleArray, $exp );
}
$verifyDetailCopy [$v [0]] = $roleArray;
}
}
// print_r($verifyDetail);
foreach ( $verifyDetailCopy as $k => $v ) {
foreach ( $verifyDetail as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyDetail, $m, 1, $v );
}
}
}
// die;
// if (!empty($roleArray))
// array_splice($verifyDetail,$roleKey,1,$roleArray);
// echo $roleId;
// print_r($verifyStaff);
// print_r($verifyDetail);
// die;
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
// 审批日志
if (! isset ( $verifyStaff ['final'] )) {
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
$receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = $opinion;
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 1;
$receiptLog->rid = $rid;
$receiptLog->insert ();
}
if (isset ( $verifyStaff ['final'] )) { // rDetail
$receipt->verifyBreakup = $verifyString;
$receipt->status = 3;
$receiptDetailObj->status = 3;
$receiptDetailObj->update ( array (
'where' => 'rid=' . $rid
) );
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
$receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = $opinion;
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 3;
$receiptLog->rid = $rid;
$receiptLog->insert ();
//删除行程单
Doo::loadModel ( 'itinerary' );
$itinerary = new itinerary ();
$itinerary->delete ( array (
'where' => 'rid="' . $rid . '"'
) );
// 微信企业号通知
$this->setWXMsg ( $rid, 3 );
} elseif (count ( $verifyStaff ) == count ( $verifyDetail )) { // 要修改 角色的数量
$receipt->status = 1;
$reviseSum = 0;
$receipt->verifyBreakup = $verifyString;
if (! empty ( $receiptDetail ['reviseDetail'] )) { // statistics item rDetail
$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );
foreach ( $reviseDetail as $key => $value ) {
$receiptDetailObj = new receiptDetail ();
$receiptDetailObj->staff = $receiptDetail ['staff']; // $this->staff[0]['sid'];
$receiptDetailObj->item = $value ['description'];
$receiptDetailObj->itemCategory = "报销金额调整";
$receiptDetailObj->price = $value ['price'];
$receiptDetailObj->date = $receiptDetail ['date'];
$receiptDetailObj->cid = $this->staff [0] ['cid'];
$receiptDetailObj->rid = $rid;
$receiptDetailObj->status = 1;
$receiptDetailObj->insert ();
$reviseSum += $value ['price'];
}
$itemStatistics = new itemStatistics ();
$itemStatistics->cid = $receiptDetail ['cid']; // $this->staff[0]['cid'];
$itemStatistics->staff = $receiptDetail ['staff']; // $this->staff[0]['sid'];
$itemStatistics->price = $reviseSum;
$itemStatistics->itemCategory = "报销金额调整";
$itemStatistics->date = $receiptDetail ['date'];
$itemStatistics->insert ();
}
$receiptDetailObj = new receiptDetail ();
$receiptDetailObj->status = 1;
$receiptDetailObj->pastDate = date ( "Y-m-d" );
$receiptDetailObj->update ( array (
'where' => 'rid=' . $rid
) );
$dateArray = explode ( "-", $receiptDetail ['date'] );
$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];
$stat = $statistics->getOne ( array (
'where' => 'staff=' . $receiptDetail ['staff'] . $dateCondition,
'asArray' => true
) );
if (empty ( $stat )) {
$statistics->date = $receiptDetail ['date'];
$statistics->cid = $receiptDetail ['cid']; // $this->staff[0]['cid'];
$statistics->staff = $receiptDetail ['staff']; // $this->staff[0]['sid'];
$statistics->agPrice = $receiptDetail ['sum'];
$statistics->rePrice = $reviseSum;
$statistics->insert ();
} else {
$statistics->agPrice = $stat ['agPrice'] + $receiptDetail ['sum'];
$statistics->rePrice = $stat ['rePrice'] + $reviseSum;
$statistics->update ( array (
'where' => 'sid=' . $stat ['sid']
) );
}
$dateArray = explode ( "-", $receiptDetail ['date'] );
$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];
$accountItem = json_decode ( $receiptDetail ['accountItem'], true );
foreach ( $accountItem ['cSum'] as $key => $value ) {
if ($key == "agencySum") {
$iStatistics = $itemStatistics->getOne ( array (
'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->AGENCY . '"' . $dateCondition,
'asArray' => true
) );
if (empty ( $iStatistics )) {
$itemStatistics->cid = $receiptDetail ['cid'];
;
$itemStatistics->staff = $receiptDetail ['staff'];
$itemStatistics->price = $value;
$itemStatistics->itemCategory = $this->AGENCY;
$itemStatistics->date = $receiptDetail ['date'];
$itemStatistics->insert ();
} else {
if (! empty ( $value )) {
$itemStatistics->price = $value + $iStatistics ['price'];
$itemStatistics->update ( array (
'where' => 'sid=' . $iStatistics ['sid']
) );
}
}
} elseif ($key == "travelSum") {
$iStatistics = $itemStatistics->getOne ( array (
'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->TRAVEL . '"' . $dateCondition,
'asArray' => true
) );
if (empty ( $iStatistics )) {
$itemStatistics->cid = $receiptDetail ['cid'];
$itemStatistics->staff = $receiptDetail ['staff'];
$itemStatistics->price = $value;
$itemStatistics->itemCategory = $this->TRAVEL;
$itemStatistics->date = $receiptDetail ['date'];
$itemStatistics->insert ();
} else {
if (! empty ( $value )) {
$itemStatistics->price = $value + $iStatistics ['price'];
$itemStatistics->update ( array (
'where' => 'sid=' . $iStatistics ['sid']
) );
}
}
} elseif ($key == "trainSum") {
$iStatistics = $itemStatistics->getOne ( array (
'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->TRAIN . '"' . $dateCondition,
'asArray' => true
) );
if (empty ( $iStatistics )) {
$itemStatistics->cid = $receiptDetail ['cid'];
$itemStatistics->staff = $receiptDetail ['staff'];
$itemStatistics->price = $value;
$itemStatistics->itemCategory = $this->TRAIN;
$itemStatistics->date = $receiptDetail ['date'];
$itemStatistics->insert ();
} else {
if (! empty ( $value )) {
$itemStatistics->price = $value + $iStatistics ['price'];
$itemStatistics->update ( array (
'where' => 'sid=' . $iStatistics ['sid']
) );
}
}
} elseif ($key == "otherSum") {
$iStatistics = $itemStatistics->getOne ( array (
'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->OTHER . '"' . $dateCondition,
'asArray' => true
) );
if (empty ( $iStatistics )) {
$itemStatistics->cid = $receiptDetail ['cid'];
$itemStatistics->staff = $receiptDetail ['staff'];
$itemStatistics->price = $value;
$itemStatistics->itemCategory = $this->OTHER;
$itemStatistics->date = $receiptDetail ['date'];
$itemStatistics->insert ();
} else {
if (! empty ( $value )) {
$itemStatistics->price = $value + $iStatistics ['price'];
$itemStatistics->update ( array (
'where' => 'sid=' . $iStatistics ['sid']
) );
}
}
}
}
$receipt->pastDate = date ( "Y-m-d" );
// 微信企业号通知
$this->setWXMsg ( $rid, 1 );
}
//是否有流水
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$accountType=3;
if ($receiptDetail['Rtype']==1){
$accountType=2;
}elseif($receiptDetail['Rtype']==2){
$accountType=4;
}
$wbDetail = $wasteBook->getWateBookByAD ( $accountType, $rid );
if (empty($wbDetail)){
$rsum=$receiptDetail['sum']-$receiptDetail['loanSum'];
$receipt->amount = $rsum;//$amount;
}
$receipt->update ( array (
'where' => ' rid = ' . $rid
) );
// 进入下一条审批费用新加需求
$vidList = array ();
$verifyDetail = $verify->find ( array (
'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',
'asArray' => true
) );
foreach ( $verifyDetail as $key => $value ) {
array_push ( $vidList, $value ['vid'] );
}
$vid = implode ( ",", $vidList );
if (empty ( $verifyDetail ))
$vid = 0;
$approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';
$receipt = new receipt ();
$rd = $receipt->getOne ( array (
'where' => 'status!=5 ' . $approvalCondition . ' and verify in(' . $vid . ') and Rtype!=3',
'asc' => 'rid',
'asArray' => true
) );
if (empty ( $rd )) {
return '/approvalExpenses/pendApproval';
}
if ($rd ['Rtype'] == 1) {
if ($rd ['isBK'] == 1) {
return '/receiptburEdi/' . $rd ['rid'];
} else {
return '/expensesEdi/' . $rd ['rid'];
}
} elseif ($rd ['Rtype'] == 2) {
return '/remitApproval/' . $rd ['rid'];
} else {
return '/receiptburEdi/' . $rd ['rid'];
}
// return "/approvalExpenses/pendApproval";
}
}
function expensesRetreats() {
$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
if (! empty ( $rid )) {
// 操作记录
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
Doo::loadModel ( "verify" );
$verify = new verify ();
$receiptInfo = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
$vr = $verify->getOne ( array (
'where' => 'vid=' . $receiptInfo ['verify'],
'asArray' => true
) );
$jd = json_decode ( $vr ['staff'] );
$roleId = 0;
foreach ( $jd as $key => $value ) {
if ($value [1] == 'ROLE') {
$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
if ($pos !== false) {
$roleId = $value [0];
}
}
}
// 审批日志
// echo $roleId;die;
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
$receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = '撤回';
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 4;
$receiptLog->rid = $rid;
$receiptLog->insert ();
$receipt->status = 4;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
// 微信企业号通知
$this->setWXMsg ( $rid, 2 );
}
// echo "ddd";
return '/approvalExpenses/pendApproval';
}
function updateCheReceipt() {
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
// $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0;
if (! empty ( $rid )) {
// 操作记录
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
Doo::loadModel ( "receiptLog" );
$receiptLog = new receiptLog ();
Doo::loadModel ( "verify" );
$verify = new verify ();
$receiptInfo = $receipt->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2',
'asArray' => true
) );
if (empty ( $receiptInfo )) {
echo json_encode ( array (
'status' => 2
) );
die ();
}
$vr = $verify->getOne ( array (
'where' => 'vid=' . $receiptInfo ['verify'],
'asArray' => true
) );
$jd = json_decode ( $vr ['staff'] );
$roleId = 0;
foreach ( $jd as $key => $value ) {
if ($value [1] == 'ROLE') {
$pos = strpos ( $value [3], $this->staff [0] ['sid'] );
if ($pos !== false) {
$roleId = $value [0];
}
}
}
// 审批日志
// echo $roleId;die;
if (! empty ( $roleId )) {
Doo::loadModel ( "role" );
$role = new role ();
$roleInfo = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
$receiptLog->rolename = $roleInfo ['name'];
}
$receiptLog->username = $this->staff [0] ['username'];
$receiptLog->uid = $this->staff [0] ['sid'];
$receiptLog->date = date ( "Y-m-d" );
$receiptLog->opinion = $opinion;
$receiptLog->img = $this->staff [0] ['avatar'];
$receiptLog->status = 4;
$receiptLog->rid = $rid;
$receiptLog->insert ();
$receipt->status = 4;
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
// 微信企业号通知
$this->setWXMsg ( $rid, 2 );
echo json_encode ( array (
'status' => 1
) );
// Header("HTTP/1.1 303 See Other");
// Header("Location: /approvalExpenses/pendApproval");
die ();
}
echo json_encode ( array (
'status' => 2
) );
die ();
// echo "ddd";
// return '/saeaBorad';
}
function revisePrice() {
$description = $this->get_args ( 'description' ) ? $this->get_args ( 'description' ) : "";
$price = $this->get_args ( 'price' ) && is_numeric ( $this->get_args ( 'price' ) ) ? $this->get_args ( 'price' ) : 0;
$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;
// echo $price;die;
if (! empty ( $rid )) {
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'rid=' . $rid . ' and status=2 ',
'asArray' => true
) );
if (empty ( $receiptDetail ))
die ( 'illegal request' );
$reviseDetail = array ();
if (empty ( $receiptDetail ['reviseDetail'] )) {
array_push ( $reviseDetail, array (
'sid' => $this->staff [0] ['sid'],
'name' => $this->staff [0] ['username'],
'description' => $description,
'price' => $price
) );
$reviseDetailString = json_encode ( $reviseDetail );
$receipt->reviseDetail = $reviseDetailString;
$receipt->revisePrice = $price;
$receipt->sum = bcadd ( $receiptDetail ['sum'], $price, 2 );
} else {
$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );
array_push ( $reviseDetail, array (
'sid' => $this->staff [0] ['sid'],
'name' => $this->staff [0] ['username'],
'description' => $description,
'price' => $price
) );
$reviseDetailString = json_encode ( $reviseDetail );
$receipt->reviseDetail = $reviseDetailString;
$receipt->revisePrice = round ( $price, 2 ) + round ( $receiptDetail ['revisePrice'], 2 );
$receipt->sum = bcadd ( $receiptDetail ['sum'], $price, 2 );
}
$receipt->update ( array (
'where' => 'rid=' . $rid
) );
if ($receiptDetail ['Rtype'] == 1) {
if ($receiptDetail ['isBK'] == 1) {
return '/receiptburEdi/' . $receiptDetail ['rid'];
}
} elseif ($receiptDetail ['Rtype'] == 2) {
} else {
return '/receiptburEdi/' . $receiptDetail ['rid'];
}
}
die ( 'illegal request' );
}
function personalCollect() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$path = SITE_PATH . $this->PERSONALCOLLECTCACHEPATH . "personalCollect_" . $year . ".htmls";
$this->showCache ( $path );
Doo::loadModel ( "receiptDetail" );
Doo::loadModel ( "itemStatistics" );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$itemStatistics = new itemStatistics ();
$receiptDetail = new receiptDetail ();
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,
'groupby' => 'itemCategory,Month(date)',
'asArray' => true
) );
$data ['itemStatisticsList'] = $itemStatistics->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'],
'asArray' => true
) );
// create collect html
$collectArray = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'培训班费用' => array (),
'其他' => array ()
);
$adjustment = array ();
$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用' );
array_push ( $collectArray ['日常相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用' );
array_push ( $collectArray ['差旅相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用' );
array_push ( $collectArray ['培训班费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '其他' );
array_push ( $collectArray ['其他'], $collectHtml );
$data ['collectArray'] = $collectArray;
// statistics html
$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
// Adjustment price html
$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );
array_push ( $adjustment, $collectHtml );
$data ['adjustment'] = $adjustment;
// total price html
$collectHtml = "";
$total = 0;
for($i = 1; $i <= 12; $i ++) {
$sumPrice = 0;
foreach ( $receiptCollectList as $key => $value ) {
if ($value ['month'] == $i) {
$sumPrice += $value ['price'];
}
}
if ($sumPrice == 0)
$collectHtml .= '- | ';
else
$collectHtml .= '¥' . $sumPrice . ' | ';
$total += $sumPrice;
}
$collectHtml .= '¥' . $total . ' | ';
$data ['totalPrice'] = $collectHtml;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['year'] = $year;
$data ['totalYear'] = $total;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'personalCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
// year staff status 2,4
if ($year < date ( "Y" )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year,
'asArray' => true
) );
if (empty ( $receiptList )) {
ob_start ();
$this->render ( "/admin/saea_slist_collect", $data );
$this->cacheFile ( $path );
die ();
}
}
$this->render ( "/admin/saea_slist_collect", $data );
}
function personalCollectDetail() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$path = SITE_PATH . $this->PERSONALCOLLECTCACHEPATH . "personalCollectDetail_" . $year . ".htmls";
$this->showCache ( $path );
Doo::loadModel ( "receiptDetail" );
Doo::loadModel ( "itemStatistics" );
Doo::loadModel ( 'statistics' );
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
$statistics = new statistics ();
$itemStatistics = new itemStatistics ();
$receiptDetail = new receiptDetail ();
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,
'groupby' => 'item,Month(date)',
'asArray' => true
) );
$accountList = $accountItem->find ( array (
'asArray' => true
) );
// create CollectDetail HTML
$collectHtml = array ();
foreach ( $accountList as $key => $value ) {
$html = "";
$asum = 0;
for($i = 1; $i <= 12; $i ++) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {
$asum += $v ['price'];
$html .= '¥' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
if ($falg)
$html .= '- | ';
}
$html .= '¥' . $asum . ' | ';
$collectHtml [$value ['category']] [$value ['name']] = $html;
}
$data ['collectHtml'] = $collectHtml;
// create Adjustment price html
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,
'groupby' => 'itemCategory,Month(date)',
'asArray' => true
) );
$adjustment = array ();
$collectArray = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'培训班费用' => array (),
'其他' => array ()
);
$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );
array_push ( $collectArray ['日常相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );
array_push ( $collectArray ['差旅相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );
array_push ( $collectArray ['培训班费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );
array_push ( $collectArray ['其他'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );
array_push ( $adjustment, $collectHtml );
// total price html
$collectHtml = "";
$total = 0;
for($i = 1; $i <= 12; $i ++) {
$sumPrice = 0;
foreach ( $receiptCollectList as $key => $value ) {
if ($value ['month'] == $i) {
$sumPrice += $value ['price'];
}
}
if ($sumPrice == 0)
$collectHtml .= '- | ';
else
$collectHtml .= '¥' . $sumPrice . ' | ';
$total += $sumPrice;
}
$collectHtml .= '¥' . $total . ' | ';
// statistics html
$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$data ['collectArray'] = $collectArray;
$data ['adjustment'] = $adjustment;
$data ['totalPrice'] = $collectHtml;
$data ['totalYear'] = $total;
$data ['year'] = $year;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'personalCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
// year staff status 2,4
if ($year < date ( "Y" )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year,
'asArray' => true
) );
if (empty ( $receiptList )) {
ob_start ();
$this->render ( "/admin/saeaCollectArticles", $data );
$this->cacheFile ( $path );
die ();
}
}
$this->render ( "/admin/saeaCollectArticles", $data );
}
function companyCategoryCollect() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$path = SITE_PATH . $this->CATEGORYCOLLECTPATH . "categoryCollect_" . $year . ".htmls";
$this->showCache ( $path );
Doo::loadModel ( 'L_category' );
Doo::loadModel ( 'itemStatistics' );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
$Lcategory = new L_category ();
$itemStatistics = new itemStatistics ();
Doo::loadModel ( "receiptAuthorityManage" );
$receiptAuthorityManage = new receiptAuthorityManage ();
$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );
$cidList = array ();
foreach ( $imcStaff as $key => $value ) {
array_push ( $cidList, $value ['cid'] );
}
$cidString = implode ( ',', $cidList );
$LcategoryList = $Lcategory->find ( array (
'where' => ' cid in (' . $cidString . ')',
'asArray' => true
) ); // 'staff='.$this->staff[0]['sid']." and
$itemStatisticsList = $itemStatistics->find ( array (
'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
'where' => " Year(date)=" . $year,
'groupby' => 'cid,Month(date)',
'asArray' => true
) );
// ceatre companyCollectHtml
foreach ( $LcategoryList as $value ) {
$html = "";
$asum = 0;
for($i = 1; $i <= 12; $i ++) {
$falg = true;
foreach ( $itemStatisticsList as $v ) {
if ($value ['cid'] == $v ['cid'] && $i == $v ['month']) {
$asum += $v ['price'];
$html .= '¥' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
if ($falg)
$html .= '- | ';
}
$html .= '¥' . $asum . ' | ';
$collectHtml [$value ['title']] = array (
'html' => $html,
'cid' => $value ['cid']
);
}
$data ['companyHtml'] = $collectHtml;
// total price html
$collectHtml = "";
$total = 0;
for($i = 1; $i <= 12; $i ++) {
$sumPrice = 0;
foreach ( $itemStatisticsList as $key => $value ) {
if ($value ['month'] == $i) {
$sumPrice += $value ['price'];
}
}
if ($sumPrice == 0)
$collectHtml .= '- | ';
else
$collectHtml .= '¥' . $sumPrice . ' | ';
$total += $sumPrice;
}
$collectHtml .= '¥' . $total . ' | ';
$data ['companyTotalHtml'] = $collectHtml;
$data ['total'] = $total;
// statistics html
// echo $cidString;
$stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'], $cidString );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$data ['year'] = $year;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
// year staff status 2,4
if ($year < date ( "Y" )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => 'Year(date) =' . $year . ' and (status=2 or status=4)',
'asArray' => true
) );
if (empty ( $receiptList )) {
ob_start ();
$this->render ( "/admin/saeaCompanyCollect", $data );
$this->cacheFile ( $path );
die ();
}
}
$this->render ( "/admin/saeaCompanyCollect", $data );
}
function categoryCollectDetail() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$cid = isset ( $this->params ['cid'] ) && is_numeric ( $this->params ['cid'] ) ? $this->params ['cid'] : 0;
/* $path = SITE_PATH . $this->CATEGORYCOLLECTPATH . "categoryCollectDetail_" . $year . "_" . $cid . ".htmls";
$this->showCache ( $path ); */
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( "receiptAuthorityManage" );
$receiptAuthorityManage = new receiptAuthorityManage ();
$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );
$cidList = array ();
foreach ( $imcStaff as $key => $value ) {
array_push ( $cidList, $value ['cid'] );
}
$cidString = implode ( ',', $cidList );
$LcategoryList = $Lcategory->find ( array (
'where' => 'cid in (' . $cidString . ')',
'asArray' => true
) );
if ($cid == 0) {
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
if ($cid == 0)
$cid = $LcategoryList [0] ['cid'];
}
$data ['LcategoryList'] = $LcategoryList;
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year,
'groupby' => 'item,Month(pastDate)',
'asArray' => true
) );
$accountList = $accountItem->find ( array (
'asArray' => true
) );
// create CollectDetail HTML
$collectHtml = array ();
foreach ( $accountList as $key => $value ) {
$html = "";
$asum = 0;
for($i = 1; $i <= 12; $i ++) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {
$asum += $v ['price'];
$html .= '¥' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
if ($falg)
$html .= '- | ';
}
$html .= '¥' . $asum . ' | ';
$collectHtml [$value ['category']] [$value ['name']] = $html;
}
$data ['collectHtml'] = $collectHtml;
// create Adjustment price html
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year,
'groupby' => 'itemCategory,Month(pastDate)',
'asArray' => true
) );
$adjustment = array ();
$collectArray = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'培训班费用' => array (),
'内部培训费用'=>array(),
'其他' => array ()
);
$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );
array_push ( $collectArray ['日常相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );
array_push ( $collectArray ['差旅相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );
array_push ( $collectArray ['培训班费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '内部培训费用', 'b' );
array_push ( $collectArray ['内部培训费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );
array_push ( $collectArray ['其他'], $collectHtml );
$data ['collectArray'] = $collectArray;
$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );
array_push ( $adjustment, $collectHtml );
$data ['adjustment'] = $adjustment;
// total price html
$collectHtml = "";
$total = 0;
for($i = 1; $i <= 12; $i ++) {
$sumPrice = 0;
foreach ( $receiptCollectList as $key => $value ) {
if ($value ['month'] == $i) {
$sumPrice += $value ['price'];
}
}
if ($sumPrice == 0)
$collectHtml .= '- | ';
else
$collectHtml .= '¥' . $sumPrice . ' | ';
$total += $sumPrice;
}
$collectHtml .= '¥' . $total . ' | ';
// statistics html
$stList = $statistics->statisticsByCid ( $year, $cid );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$data ['totalYear'] = $total;
$data ['year'] = $year;
$data ['cid'] = $cid;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
// year staff status 2,4
/* if ($year < date ( "Y" )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => 'Year(date) =' . $year . ' and cid =' . $cid . ' and (status=2 or status=4)',
'asArray' => true
) );
if (empty ( $receiptList )) {
ob_start ();
$this->render ( "/admin/saeaCategoryCollectDetail", $data );
$this->cacheFile ( $path );
die ();
}
} */
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$this->render ( "/admin/saeaCategoryCollectDetail", $data );
}
function staffCollect() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : 'ONJOB';//
$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_.htmls";
// $this->showCache($path);
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'itemStatistics' );
$itemStatistics = new itemStatistics ();
Doo::loadModel ( "receiptAuthorityManage" );
$receiptAuthorityManage = new receiptAuthorityManage ();
$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );
$cidList = array ();
foreach ( $imcStaff as $key => $value ) {
array_push ( $cidList, $value ['cid'] );
}
$cidString = implode ( ',', $cidList );
$naturecon='';
if ($nature=='ONJOB'){
$naturecon=' and (nature!=4 )';
}elseif($nature=='LEAVEJOB'){
$naturecon=' and (nature=4 )';
}else{
die ( 'illegal request--nature' );
}
// statistics html
$stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'], $cidString );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
// ---
$staffList = $staff->find ( array (
'where' => 'username !="admin" '.$naturecon,
'asArray' => true
) );
$LcategoryList = $Lcategory->find ( array (
'asArray' => true
) ); // 'staff='.$this->staff[0]['sid']." and
$itemStatisticsList = $itemStatistics->find ( array (
'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
'where' => " Year(date)=" . $year . ' and cid in (' . $cidString . ')',
'groupby' => 'staff,Month(date)',
'asArray' => true
) );
$categoryList = $staff->find ( array (
'select' => 'COUNT(*) as count,cid,category',
'where' => 'username !="admin" and cid in (' . $cidString . ') '.$naturecon,
'groupby' => 'cid',
'asArray' => true
) );
// print_r($itemStatisticsList);die;
// ceatre companyCollectHtml
foreach ( $categoryList as $vlu ) {
$count = $vlu ['count'] + 1;
$html = '' . $vlu ['category'] . ' | ';
$m1 = 0;
$m2 = 0;
$m3 = 0;
$m4 = 0;
$m5 = 0;
$m6 = 0;
$m7 = 0;
$m8 = 0;
$m9 = 0;
$m10 = 0;
$m11 = 0;
$m12 = 0;
$m13 = 0;
foreach ( $staffList as $value ) {
if ($vlu ['cid'] == $value ['cid']) {
$html .= '' . $value ['username'] . ' | ';
$asum = 0;
for($i = 1; $i <= 12; $i ++) {
$falg = true;
foreach ( $itemStatisticsList as $v ) {
if ($value ['sid'] == $v ['staff'] && $i == $v ['month']) {
if ($v ['month'] == 1)
$m1 += $v ['price'];
if ($v ['month'] == 2)
$m2 += $v ['price'];
if ($v ['month'] == 3)
$m3 += $v ['price'];
if ($v ['month'] == 4)
$m4 += $v ['price'];
if ($v ['month'] == 5)
$m5 += $v ['price'];
if ($v ['month'] == 6)
$m6 += $v ['price'];
if ($v ['month'] == 7)
$m7 += $v ['price'];
if ($v ['month'] == 8)
$m8 += $v ['price'];
if ($v ['month'] == 9)
$m9 += $v ['price'];
if ($v ['month'] == 10)
$m10 += $v ['price'];
if ($v ['month'] == 11)
$m11 += $v ['price'];
if ($v ['month'] == 12)
$m12 += $v ['price'];
$asum += $v ['price'];
$html .= '¥' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
if ($falg)
$html .= '- | ';
}
$m13 += $asum;
$html .= '¥' . $asum . ' | ';
$collectHtml [$value ['username'] . '_' . $value ['sid']] = array (
'html' => $html,
'sid' => $value ['sid']
);
$html = "";
}
}
$hl = '小计 | ¥' . $m1 . ' | ¥' . $m2 . ' | ¥' . $m3 . ' | ¥' . $m4 . ' | ¥' . $m5 . ' |
¥' . $m6 . ' | ¥' . $m7 . ' | ¥' . $m8 . ' | ¥' . $m9 . ' | ¥' . $m10 . ' | ¥' . $m11 . ' |
¥' . $m12 . ' | ¥' . $m13 . ' | ';
$collectHtml [$vlu ['cid']] = array (
'html' => $hl,
'sid' => ''
);
}
$data ['companyHtml'] = $collectHtml;
// total price html
$collectHtml = "";
$total = 0;
for($i = 1; $i <= 12; $i ++) {
$sumPrice = 0;
foreach ( $itemStatisticsList as $key => $value ) {
if ($value ['month'] == $i) {
$sumPrice += $value ['price'];
}
}
if ($sumPrice == 0)
$collectHtml .= '- | ';
else
$collectHtml .= '¥' . $sumPrice . ' | ';
$total += $sumPrice;
}
$collectHtml .= '¥' . $total . ' | ';
$data ['companyTotalHtml'] = $collectHtml;
$data ['total'] = $total;
$data ['nature'] =$nature;
$data ['year'] = $year;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
if ($year <= date ( "Y" )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => '(status=2 or status=4) and Year(date) =' . $year,
'asArray' => true
) );
if (empty ( $receiptList )) { // generated files
ob_start ();
$this->render ( "/admin/saeaStaffCollectB", $data );
$this->cacheFile ( $path );
die ();
}
}
$this->render ( "/admin/saeaStaffCollectB", $data );
}
function staffCollectBak() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : 1;
$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_" . $month . ".htmls";
$this->showCache ( $path );
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'itemStatistics' );
$itemStatistics = new itemStatistics ();
$itemStatisticsList = $itemStatistics->find ( array (
'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
'groupby' => 'staff,itemCategory,Month(date)',
'asArray' => true
) );
$itemCategoryList = $itemStatistics->find ( array (
'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
'groupby' => 'cid,itemCategory,Month(date)',
'asArray' => true
) );
$LcategoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'asArray' => true
) );
$htmlArray = array ();
foreach ( $LcategoryList as $value ) {
$htmlArray [$value ['title']] = array ();
foreach ( $staffList as $v ) {
if ($value ['cid'] == $v ['cid']) {
$html = "";
$falg = true;
$staffSumPrice = 0;
foreach ( $itemStatisticsList as $a ) {
if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "日常相关费用") {
if (empty ( $a ['price'] )) {
$html .= '- | ';
$falg = false;
break;
} else {
$staffSumPrice += $a ['price'];
$html .= '¥' . $a ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg) {
$html .= '- | ';
$falg = true;
}
$falg = true;
foreach ( $itemStatisticsList as $a ) {
if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "差旅相关费用") {
if (empty ( $a ['price'] )) {
$html .= '- | ';
$falg = false;
break;
} else {
$staffSumPrice += $a ['price'];
$html .= '¥' . $a ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg) {
$html .= '- | ';
$falg = true;
}
$falg = true;
foreach ( $itemStatisticsList as $a ) {
if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "培训班费用") {
if (empty ( $a ['price'] )) {
$html .= '- | ';
$falg = false;
break;
} else {
$staffSumPrice += $a ['price'];
$html .= '¥' . $a ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg) {
$html .= '- | ';
$falg = true;
}
$falg = true;
foreach ( $itemStatisticsList as $a ) {
if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "其他") {
if (! empty ( $a ['price'] )) {
$staffSumPrice += $a ['price'];
$html .= '¥' . $a ['price'] . ' | ';
$falg = false;
break;
} else {
$html .= '- | ';
$falg = false;
break;
}
}
}
if ($falg) {
$html .= '- | ';
$falg = true;
}
$falg = true;
foreach ( $itemStatisticsList as $a ) {
if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "报销金额调整") {
if (! empty ( $a ['price'] )) {
$staffSumPrice += $a ['price'];
$html .= '¥' . $a ['price'] . ' | ';
$falg = false;
break;
} else {
$html .= '- | ';
$falg = false;
break;
}
}
}
if ($falg) {
$html .= '- | ';
$falg = true;
}
$html .= '¥' . $staffSumPrice . ' | ';
$htmlArray [$value ['title']] [$v ['username']] = $html;
}
}
/* -- --- */
// 合计费用
$cateHtml = "";
$catePrice = 0;
$cateFalg = true;
foreach ( $itemCategoryList as $l ) {
if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "日常相关费用") {
if (empty ( $l ['price'] )) {
$cateHtml .= '- | ';
$cateFalg = false;
break;
} else {
$catePrice += $l ['price'];
$cateHtml .= '¥' . $l ['price'] . ' | ';
$cateFalg = false;
break;
}
}
}
if ($cateFalg) {
$cateHtml .= '- | ';
$cateFalg = true;
}
$cateFalg = true;
foreach ( $itemCategoryList as $l ) {
if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "差旅相关费用") {
if (empty ( $l ['price'] )) {
$cateHtml .= '- | ';
$cateFalg = false;
break;
} else {
$catePrice += $l ['price'];
$cateHtml .= '¥' . $l ['price'] . ' | ';
$cateFalg = false;
break;
}
}
}
if ($cateFalg) {
$cateHtml .= '- | ';
$cateFalg = true;
}
$cateFalg = true;
foreach ( $itemCategoryList as $l ) {
if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "培训班费用") {
if (empty ( $l ['price'] )) {
$cateHtml .= '- | ';
$cateFalg = false;
break;
} else {
$catePrice += $l ['price'];
$cateHtml .= '¥' . $l ['price'] . ' | ';
$cateFalg = false;
break;
}
}
}
if ($cateFalg) {
$cateHtml .= '- | ';
$cateFalg = true;
}
$cateFalg = true;
foreach ( $itemCategoryList as $l ) {
if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "其他") {
if (empty ( $l ['price'] )) {
$cateHtml .= '- | ';
$cateFalg = false;
break;
} else {
$catePrice += $l ['price'];
$cateHtml .= '¥' . $l ['price'] . ' | ';
$cateFalg = false;
break;
}
}
}
if ($cateFalg) {
$cateHtml .= '- | ';
$cateFalg = true;
}
$cateFalg = true;
foreach ( $itemCategoryList as $l ) {
if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "报销金额调整") {
if (empty ( $l ['price'] )) {
$cateHtml .= '- | ';
$cateFalg = false;
break;
} else {
$catePrice += $l ['price'];
$cateHtml .= '¥' . $l ['price'] . ' | ';
$cateFalg = false;
break;
}
}
}
if ($cateFalg) {
$cateHtml .= '- | ';
$cateFalg = true;
}
$cateHtml .= '¥' . $catePrice . ' | ';
$htmlArray [$value ['title']] ['合计'] = $cateHtml;
/* -- --- */
}
// print_r($htmlArray);die;
$data ['htmlArray'] = $htmlArray;
// statistics html
$stList = $statistics->getOne ( array (
'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',
'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
'groupby' => 'Month(date)',
'asArray' => true
) );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$monthHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($i == $month)
$monthHtml .= '';
else
$monthHtml .= '';
}
$data ['monthHtml'] = $monthHtml;
$data ['year'] = $year;
$data ['month'] = $month;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
if (! empty ( $month ) && ($year <= date ( "Y" )) && ($month < date ( "m" ))) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => '(status=2 or status=4) and Year(date) =' . $year . ' and Month(date) =' . $month,
'asArray' => true
) );
if (empty ( $receiptList )) { // generated files
ob_start ();
$this->render ( "/admin/saeaStaffCollect", $data );
$this->cacheFile ( $path );
die ();
}
}
$this->render ( "/admin/saeaStaffCollect", $data );
}
/**
* 日常收支
*/
function payments() {
// include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
Doo::loadModel ( "execute" );
$execute = new execute ();
if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) {
die ( 'illegal request' );
}
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
$statisticsList = $accountBookStatistics->getStatisticsByMonth ();
$list = $accountBook->getAccountBookByLimit ( 10 );
$data ['date'] = date ( "Y-m-d" );
$data ['statisticsList'] = $statisticsList;
$data ['list'] = $list;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'payments';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/payments", $data );
}
function paymentsIncomeDo() {
$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "";
$accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : "";
$receivedPrice = is_numeric ( $this->get_args ( 'receivedPrice' ) ) ? $this->get_args ( 'receivedPrice' ) : 0;
$receivedMsg = $this->get_args ( 'receivedMsg' ) ? $this->get_args ( 'receivedMsg' ) : '';
$receivedBank = $this->get_args ( 'receivedBank' ) ? $this->get_args ( 'receivedBank' ) : '';
$receivedDate = $this->get_args ( 'receivedDate' ) ? $this->get_args ( 'receivedDate' ) : '';
$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';
if (! empty ( $accountType ) && ! empty ( $receivedPrice ) && ! empty ( $receivedMsg ) && ! empty ( $receivedBank ) && ! empty ( $receivedDate )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( "accountBook" );
Doo::loadModel ( "accountBookStatistics" );
Doo::loadModel ( 'wasteBook' );
// 记录流水时银行的转换
$accountBank = '';
if ($receivedBank == '纵横广发') {
$accountBank = 'CGBDeposit';
} elseif ($receivedBank == '纵横工行') {
$accountBank = 'ICBCDeposit';
} elseif ($receivedBank == '华润银行') {
$accountBank = 'HUADeposit';
} elseif ($receivedBank == '个人广发') {
$accountBank = 'PersonalDeposit';
}
if (empty ( $accountBank ))
die ( 'illegal request-bank' );
//TODO -存款功能 提取
if($accountType == 11 || $accountType == 12){
if($accountType == 11){
$receivedBank = '纵横广发';
}elseif($accountType == 12){
$receivedBank = '纵横工行';
}
// 添加一条收入
$accountBook = new accountBook ();
$accountBook->accountType = $accountType;
$accountBook->accountMsg = $accountMsg;
$accountBook->receivedPrice = $receivedPrice;
$accountBook->receivedMsg = $receivedMsg;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $receivedDate;
$accountBook->remarks = $remarks;
$accountBook->expensesType = 1;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$inComeId = $accountBook->insert ();
// 收支汇总-添加一条收入日常汇总
$abDetail = $accountBook->getAccountBookByAid ( $inComeId );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'accountType' => $abDetail ['accountType'],
'accountMsg' => $abDetail ['accountMsg'],
'aid' => $abDetail ['aid'],
'inComePrice' => $abDetail ['receivedPrice'],
'expensesType' => $abDetail ['expensesType']
);
$accountBookStatistics->setAccountBookStatistics ( $item );
// 添加收入流水
if($accountType == 11){
$accountBank = 'CGBDeposit';
}elseif($accountType == 12){
$accountBank = 'ICBCDeposit';
}
$wasteBook = new wasteBook ();
$itemWaste = array (
'accountPriceShow' => $receivedPrice,
'accountPrice' => $receivedPrice,
'expensesType' => 1,
'accountType' => 6, // 流水类型
'dataID' => $inComeId,
'dailyIncomeType' => $accountType, // $dailyIncomeType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => $receivedDate,
'createAt'=>date ( "Y-m-d H:i:s" ),
'synPaymentDate'=>1,
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
//TODO --移除理财相关
}elseif($accountType == 7 || $accountType == 9) { // 收入为理财时特殊处理
// if ($receivedBank == '个人广发') {
// die ( '个人广发 illegal request' );
// }
// 添加一条收入
$accountBook = new accountBook ();
$accountBook->accountType = 10;
$accountBook->accountMsg = $accountMsg;
$accountBook->receivedPrice = $receivedPrice;
$accountBook->receivedMsg = $receivedMsg;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $receivedDate;
$accountBook->remarks = $remarks;
$accountBook->expensesType = 1;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$inComeId = $accountBook->insert ();
// 收支汇总-添加一条收入日常汇总
$abDetail = $accountBook->getAccountBookByAid ( $inComeId );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'accountType' => $abDetail ['accountType'],
'accountMsg' => $abDetail ['accountMsg'],
'aid' => $abDetail ['aid'],
'inComePrice' => $abDetail ['receivedPrice'],
'expensesType' => $abDetail ['expensesType']
);
$accountBookStatistics->setAccountBookStatistics ( $item );
// 添加收入流水
$wasteBook = new wasteBook ();
$itemWaste = array (
'accountPriceShow' => $receivedPrice,
'accountPrice' => $receivedPrice,
'expensesType' => 1,
'accountType' => 6, // 流水类型
'dataID' => $inComeId,
'dailyIncomeType' => $accountType, // $dailyIncomeType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
// 添加一条理财支出
$accountBank = 'CGBDeposit';
$expenditureBank = '纵横广发';
$dailyExpenditureType = 4;
if ($accountType == 9) {
$accountBank = 'ICBCDeposit';
$expenditureBank = '纵横工行';
$dailyExpenditureType = 6;
}
$accountBook = new accountBook ();
$accountBook->expensesType = 2;
$accountBook->expenditureType = $dailyExpenditureType;
$accountBook->expenditureMsg = $accountMsg;
$accountBook->expenditurePrice = $receivedPrice;
$accountBook->expenditureBank = $expenditureBank;
$accountBook->expenditureDate = $receivedDate;
$accountBook->remarks = $remarks;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
// 收支汇总-添加一条理财支出汇总
$abDetail = $accountBook->getAccountBookByAid ( $id );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'accountType' => $abDetail ['accountType'],
'accountMsg' => $abDetail ['accountMsg'],
'aid' => $abDetail ['aid'],
'financingPrice' => - $receivedPrice,
'expensesType' => 3
);
$accountBookStatistics->setAccountBookStatistics ( $item );
// 添加一条支出理财流水
$accountTypeWaste = 5;
if ($accountMsg == '公司固定') {
$accountTypeWaste = 9;
} elseif ($accountMsg == '公司活期') {
$accountTypeWaste = 10;
} elseif ($accountMsg == '个人(GR)') {
$accountBank = 'PersonalDeposit';
}
$itemWaste = array (
'expensesType' => 2,
'accountType' => $accountTypeWaste,
'accountPriceShow' => $receivedPrice,
'accountPrice' => - $receivedPrice,
'dataID' => $id,
'dailyExpenditureType' => $dailyExpenditureType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
} elseif ($accountType == 1) {
// if ($receivedBank == '个人广发')
// die ( 'illegal request--no man' );
// 添加一条收入
$accountBook = new accountBook ();
$accountBook->accountType = $accountType;
$accountBook->accountMsg = $accountMsg;
$accountBook->receivedPrice = $receivedPrice;
$accountBook->receivedMsg = $receivedMsg;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $receivedDate;
$accountBook->remarks = $remarks;
$accountBook->expensesType = 1;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
$abDetail = $accountBook->getAccountBookByAid ( $id );
// 收支汇总-添加一条收入日常汇总
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'accountType' => $abDetail ['accountType'],
'accountMsg' => $abDetail ['accountMsg'],
'aid' => $abDetail ['aid'],
'expensesType' => $abDetail ['expensesType']
);
if ($abDetail ['accountType'] == 8) {
$item += array (
'inComePrice' => $abDetail ['receivedPrice']
);
} else {
$item += array (
'inComePrice' => $abDetail ['receivedPrice']
);
}
$accountBookStatistics->setAccountBookStatistics ( $item );
// 流水存储方向
$itemWaste = array (
'accountType' => 6
); // 流水类型
// if($accountMsg=='银行存款'||$accountMsg=='固定理财收益'){
// }else
if ($accountMsg == '活期理财收益') {
$itemWaste = array (
'accountType' => 10
); // 流水类型
}
// 添加收入流水
$wasteBook = new wasteBook ();
$itemWaste += array (
'accountPrice' => $receivedPrice,
'accountPriceShow' => $receivedPrice,
'expensesType' => 1,
'dailyIncomeType' => $accountType, // $dailyIncomeType,
'dataID' => $id,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => $receivedDate,
'createAt'=>date ( "Y-m-d H:i:s" ),
'synPaymentDate'=>1,
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
} else { // 普通日常收入处理
// 添加一条收入
$accountBook = new accountBook ();
$accountBook->accountType = $accountType;
$accountBook->accountMsg = $accountMsg;
$accountBook->receivedPrice = $receivedPrice;
$accountBook->receivedMsg = $receivedMsg;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $receivedDate;
$accountBook->remarks = $remarks;
$accountBook->expensesType = 1;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
$abDetail = $accountBook->getAccountBookByAid ( $id );
// 收支汇总-添加一条收入日常汇总
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'accountType' => $abDetail ['accountType'],
'accountMsg' => $abDetail ['accountMsg'],
'aid' => $abDetail ['aid'],
'expensesType' => $abDetail ['expensesType']
);
if ($abDetail ['accountType'] == 8) {
$item += array (
'inComePrice' => $abDetail ['receivedPrice']
);
} else {
$item += array (
'inComePrice' => $abDetail ['receivedPrice']
);
}
$accountBookStatistics->setAccountBookStatistics ( $item );
// 添加收入流水
$itemWaste = array (
'accountPrice' => $receivedPrice
);
if ($receivedBank == '个人广发') {
$itemWaste = array (
'accountPrice' => - $receivedPrice
);
}
$wasteBook = new wasteBook ();
$itemWaste += array (
'accountPriceShow' => $receivedPrice,
'expensesType' => 1,
'accountType' => 6, // 流水类型
'dailyIncomeType' => $accountType, // $dailyIncomeType,
'dataID' => $id,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => $receivedDate,
'createAt'=>date ( "Y-m-d H:i:s" ),
'synPaymentDate'=>1,
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
}
}
return '/payments';
}
function paymentsExpenditureDo() {
$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";
$expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : "";
$expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0;
$expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : '';
$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';
$expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : '';
if (! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) {
// 理财支出特殊处理
Doo::loadModel ( "accountBook" );
Doo::loadModel ( "accountBookStatistics" );
Doo::loadModel ( 'wasteBook' );
$accountBank = '';
if ($expenditureBank == '纵横广发') {
$accountBank = 'CGBDeposit';
} elseif ($expenditureBank == '纵横工行') {
$accountBank = 'ICBCDeposit';
} elseif ($expenditureBank == '华润银行') {
$accountBank = 'HUADeposit';
} elseif ($expenditureBank == '个人广发') {
$accountBank = 'PersonalDeposit';
}
if (empty ( $accountBank ))
die ( 'illegal request' );
if($expenditureType == 8 || $expenditureType == 9){
if($expenditureType == 8 ){
$expenditureBank='纵横广发';
}elseif($expenditureType == 9){
$expenditureBank='纵横工行';
}
// 添加一笔日常支出
$accountBook = new accountBook ();
$accountBook->expensesType = 2;
$accountBook->expenditureType = $expenditureType;
$accountBook->expenditureMsg = $expenditureMsg;
$accountBook->expenditurePrice = $expenditurePrice;
$accountBook->expenditureBank = $expenditureBank;
$accountBook->expenditureDate = $expenditureDate;
$accountBook->remarks = $remarks;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$expenditureId = $accountBook->insert ();
// 添加日常支出汇总
$abDetail = $accountBook->getAccountBookByAid ( $expenditureId );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'expenditureType' => $abDetail ['expenditureType'],
'expenditureMsg' => $abDetail ['expenditureMsg'],
'aid' => $abDetail ['aid'],
'payPrice' => $abDetail ['expenditurePrice'],
'expensesType' => $abDetail ['expensesType']
);
$accountBookStatistics->setAccountBookStatistics ( $item );
// 公司日常支出流水
if($expenditureType == 8 ){
$accountBank = 'CGBDeposit';
}elseif($expenditureType == 9){
$accountBank = 'ICBCDeposit';
}
if($accountBank=='CGBDeposit'){
$dailyExpenditureType='8';
}elseif($accountBank=='ICBCDeposit'){
$dailyExpenditureType='9';
}elseif($accountBank=='PersonalDeposit'){
$dailyExpenditureType='10';
}elseif($accountBank=='HUADeposit'){
$dailyExpenditureType='11';
}
$wasteBook = new wasteBook ();
$itemWaste = array (
'expensesType' => 2,
'accountType' => 5,
'dailyExpenditureType' => $dailyExpenditureType,
'accountPriceShow' => $expenditurePrice,
'accountPrice' => - $expenditurePrice,
'dataID' => $expenditureId,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
// 添加一笔收入流水
// if($expenditureType==8){
// $dailyIncomeType='11';
// }elseif($expenditureType==9){
// $dailyIncomeType='12';
// }
// $wasteBook = new wasteBook ();
// $itemWaste = array (
// 'expensesType' => 1,
// 'accountType' => 6,
// 'accountPriceShow' => $expenditurePrice,
// 'accountPrice' => $expenditurePrice,
// 'dataID' => $expenditureId,
//
// 'dailyIncomeType' => $dailyIncomeType,
// 'accountBank' => $accountBank,
// 'category' => $this->staff [0] ['category'],
// 'cid' => $this->staff [0] ['cid'],
// 'name' => $this->staff [0] ['username'],
// 'sid' => $this->staff [0] ['sid'],
// 'inputDate' => date ( "Y-m-d H:i:s" )
// );
// $wasteBook->setAccountBookStatistics ( $itemWaste );
}elseif ($expenditureType == 4 || $expenditureType == 6) {
if ($expenditureBank == '个人广发') {
die ( '个人广发 illegal request' );
}
// 添加一笔日常支出
$accountBook = new accountBook ();
$accountBook->expensesType = 2;
$accountBook->expenditureType = 7;
$accountBook->expenditureMsg = $expenditureMsg;
$accountBook->expenditurePrice = $expenditurePrice;
$accountBook->expenditureBank = $expenditureBank;
$accountBook->expenditureDate = $expenditureDate;
$accountBook->remarks = $remarks;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$expenditureId = $accountBook->insert ();
// 添加日常支出汇总
$abDetail = $accountBook->getAccountBookByAid ( $expenditureId );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'expenditureType' => $abDetail ['expenditureType'],
'expenditureMsg' => $abDetail ['expenditureMsg'],
'aid' => $abDetail ['aid'],
'payPrice' => $abDetail ['expenditurePrice'],
'expensesType' => $abDetail ['expensesType']
);
$accountBookStatistics->setAccountBookStatistics ( $item );
// 公司日常支出流水
$wasteBook = new wasteBook ();
$itemWaste = array (
'accountPrice' => - $expenditurePrice
);
if ($expenditureBank == '个人广发') {
$itemWaste = array (
'accountPrice' => $expenditurePrice
);
}
$itemWaste += array (
'expensesType' => 2,
'accountType' => 5,
'dailyExpenditureType' => $expenditureType,
'accountPriceShow' => $expenditurePrice,
'accountPrice' => - $expenditurePrice,
'dataID' => $expenditureId,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
// 添加一笔理财收入
$accountBank = 'CGBDeposit';
$dailyIncomeType = 7;
$receivedBank = '纵横广发';
if ($expenditureType == 6) {
$accountBank = 'ICBCDeposit';
$receivedBank = '纵横工行';
$dailyIncomeType = 9;
}
$accountBook = new accountBook ();
$accountBook->expensesType = 1;
$accountBook->accountType = $dailyIncomeType;
$accountBook->accountMsg = $expenditureMsg;
$accountBook->receivedPrice = $expenditurePrice;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $expenditureDate;
$accountBook->remarks = $remarks;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
// 添加日常理财收入汇总
$abDetail = $accountBook->getAccountBookByAid ( $expenditureId );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'expenditureType' => $abDetail ['expenditureType'],
'expenditureMsg' => $abDetail ['expenditureMsg'],
'aid' => $abDetail ['aid'],
'financingPrice' => $expenditurePrice,
'expensesType' => 3
);
$accountBookStatistics->setAccountBookStatistics ( $item );
// 添加一笔收入流水
if ($expenditureMsg == '公司固定') {
$accountTypeWaste = 9;
} elseif ($expenditureMsg == '公司活期') {
$accountTypeWaste = 10;
} elseif ($expenditureMsg == '个人(GR)') {
$accountBank = 'PersonalDeposit';
}
$itemWaste = array (
'expensesType' => 1,
'accountType' => $accountTypeWaste,
'accountPriceShow' => $expenditurePrice,
'accountPrice' => $expenditurePrice,
'dataID' => $id,
'dailyIncomeType' => $dailyIncomeType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
} else {
// 添加一笔日常支出
$accountBook = new accountBook ();
$accountBook->expensesType = 2;
$accountBook->expenditureType = $expenditureType;
$accountBook->expenditureMsg = $expenditureMsg;
$accountBook->expenditurePrice = $expenditurePrice;
$accountBook->expenditureBank = $expenditureBank;
$accountBook->expenditureDate = $expenditureDate;
$accountBook->remarks = $remarks;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
// 添加日常支出汇总
$abDetail = $accountBook->getAccountBookByAid ( $id );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'expenditureType' => $abDetail ['expenditureType'],
'expenditureMsg' => $abDetail ['expenditureMsg'],
'aid' => $abDetail ['aid'],
'expensesType' => $abDetail ['expensesType']
);
if ($expenditureType == 5) {
$item += array (
'payPrice' => - $abDetail ['expenditurePrice']
);
} else {
$item += array (
'payPrice' => $abDetail ['expenditurePrice']
);
}
$accountBookStatistics->setAccountBookStatistics ( $item );
// 公司日常支出流水
$wasteBook = new wasteBook ();
$itemWaste = array (
'accountPrice' => - $expenditurePrice
);
if ($expenditureBank == '个人广发') {
$itemWaste = array (
'accountPrice' => $expenditurePrice
);
}
$itemWaste += array (
'expensesType' => 2,
'accountType' => 5,
'accountPriceShow' => $expenditurePrice,
'dataID' => $id,
'dailyExpenditureType' => $expenditureType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
}
}
return '/payments';
}
/**
* 添加支出
*/
function paymentsExpenditureDo_() {
$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";
$expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : "";
$expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0;
$expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : '';
$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';
$expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : '';
if (! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) {
$dailyExpenditureType = '';
$accountTypeWaste = 5;
$accountBank = '';
if ($expenditureBank == '纵横广发') {
$accountBank = 'CGBDeposit';
} elseif ($expenditureBank == '纵横工行') {
$accountBank = 'ICBCDeposit';
} elseif ($expenditureBank == '华润银行') {
$accountBank = 'HUADeposit';
} elseif ($expenditureBank == '个人广发') {
$accountBank = 'PersonalDeposit';
}
if (empty ( $accountBank ))
die ( 'illegal request' );
$itemWaste = array (
'accountPrice' => - $expenditurePrice
);
if ($expenditureBank == '个人广发') {
$itemWaste = array (
'accountPrice' => $expenditurePrice
);
}
if ($expenditureType == 4 || $expenditureType == 6) {
$dailyExpenditureType = 4;
if ($expenditureMsg == '公司固定') {
$accountTypeWaste = 9;
} elseif ($expenditureMsg == '公司活期') {
$accountTypeWaste = 10;
} elseif ($expenditureMsg == '个人(GR)') {
$accountBank = 'PersonalDeposit';
}
$itemWaste = array (
'accountPrice' => $expenditurePrice
);
} elseif ($expenditureType == 1) {
$dailyExpenditureType = 1;
} elseif ($expenditureType == 2) {
$dailyExpenditureType = 2;
} elseif ($expenditureType == 3) {
$dailyExpenditureType = 3;
} elseif ($expenditureType == 5) {
$dailyExpenditureType = 5;
}
if (empty ( $dailyExpenditureType ))
die ( 'illegal request' );
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
$accountBook->expenditureType = $expenditureType;
$accountBook->expenditureMsg = $expenditureMsg;
$accountBook->expenditurePrice = $expenditurePrice;
$accountBook->expenditureBank = $expenditureBank;
$accountBook->expenditureDate = $expenditureDate;
$accountBook->remarks = $remarks;
$accountBook->expensesType = 2;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
//
$abDetail = $accountBook->getAccountBookByAid ( $id );
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'expenditureType' => $abDetail ['expenditureType'],
'expenditureMsg' => $abDetail ['expenditureMsg'],
'aid' => $abDetail ['aid']
);
if ($abDetail ['expensesType'] == 2) {
if ($abDetail ['expenditureType'] == 4 || $abDetail ['expenditureType'] == 6) {
$item += array (
'financingPrice' => $expenditurePrice,
'expensesType' => 3
);
} elseif ($abDetail ['expenditureType'] == 5) {
$item += array (
'payPrice' => $abDetail ['expenditurePrice'],
'expensesType' => $abDetail ['expensesType']
);
} else {
$item += array (
'payPrice' => $abDetail ['expenditurePrice'],
'expensesType' => $abDetail ['expensesType']
);
}
}
$accountBookStatistics->setAccountBookStatistics ( $item );
// 公司流水记录
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$abDetail = $wasteBook->getAccountBookByAid ( 2, $accountTypeWaste, $id );
// 银行
if (empty ( $abDetail )) {
$itemWaste += array (
'accountPriceShow' => $expenditurePrice,
'dataID' => $id,
'expensesType' => 2,
'accountType' => $accountTypeWaste,
'dailyExpenditureType' => $expenditureType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
}
// 支出类型为4或者6 需要添加一笔收入和收入流水
if ($expenditureType == 4 || $expenditureType == 6) {
$accountBank = 'CGBDeposit';
$dailyIncomeType = 7;
$receivedBank = '纵横广发';
if ($expenditureType == 6) {
$accountBank = 'ICBCDeposit';
$receivedBank = '纵横工行';
$dailyIncomeType = 9;
}
// 添加一笔收入
$accountBook = new accountBook ();
$accountBook->accountType = $dailyIncomeType;
$accountBook->accountMsg = $expenditureMsg;
$accountBook->receivedPrice = $expenditurePrice;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $expenditureDate;
$accountBook->remarks = $remarks;
$accountBook->expensesType = 1;
$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$accountBook->inputDate = date ( "Y-m-d H:i:s" );
$accountBook->inputStaff = $this->staff [0] ['sid'];
$id = $accountBook->insert ();
// 添加一笔收入流水
$itemWaste = array (
'accountPriceShow' => $expenditurePrice,
'accountPrice' => - $expenditurePrice,
'dataID' => $id,
'expensesType' => 1,
'accountType' => $accountTypeWaste,
'dailyIncomeType' => $dailyIncomeType,
'accountBank' => $accountBank,
'category' => $this->staff [0] ['category'],
'cid' => $this->staff [0] ['cid'],
'name' => $this->staff [0] ['username'],
'sid' => $this->staff [0] ['sid'],
'inputDate' => date ( "Y-m-d H:i:s" )
);
$wasteBook->setAccountBookStatistics ( $itemWaste );
}
}
return '/payments';
}
/**
* 所有收支
*/
function paymentsAchieve() {
$page_size = 12;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$expensesType = isset ( $this->params ['expensesType'] ) ? $this->params ['expensesType'] : 'ALL';
$date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : "";
$price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : "";
$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "";
$accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : "";
$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";
$submitType = $this->get_args ( 'submitType' ) ? $this->get_args ( 'submitType' ) : "";
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
$statisticsList = $accountBookStatistics->getStatisticsByMonth ();
$data ['statisticsList'] = $statisticsList;
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
$con = '';
if ($expensesType == 'INCOME')
$con = ' and expensesType=1 ';
elseif ($expensesType == 'PAY')
$con = ' and expensesType=2 ';
$dateArr = explode ( ':', $date );
$D1 = $dateString = '';
$D2 = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
if (isset ( $dateArr [1] ))
$D2 = $dateArr [1];
else
$D2 = '';
$dateString = $D1 . " : " . $D2;
}
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con .= ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
elseif (! empty ( $D1 ) && empty ( $D2 ))
$con .= ' and inputDate like "%' . $D1 . '%" ';
if (! empty ( $price ))
$con .= ' and (receivedPrice=' . $price . ' or expenditurePrice=' . $price . ')';
if ($submitType == 1) {
if ($accountType != '') {
$expenditureType = '';
$con .= ' and accountType=' . $accountType;
if (! empty ( $accountMsg ))
$con .= ' and (accountType=' . $accountType . ' and accountMsg like "%' . $accountMsg . '%")';
}
} elseif ($submitType == 2) {
if ($expenditureType != '') {
$accountType = $accountMsg = '';
$con .= ' and expenditureType=' . $expenditureType;
}
} else {
$accountType = $accountMsg = $expenditureType = '';
}
$sql = "" . $con;
$action = "paymentsAchieve";
$get = '/' . $expensesType; // "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea );
$pageinfo = $this->get_page ( "CLD_accountBook", $sql, $page, $page_size, $action, $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $accountBook->getAccountBookBySql ( $limit, $sql, 'desc' );
$data ['expenditureType'] = $expenditureType;
$data ['accountMsg'] = $accountMsg;
$data ['accountType'] = $accountType;
$data ['inputDate'] = $date;
$data ['price'] = $price;
$data ['expensesType'] = $expensesType;
$data ['page'] = $pageinfo;
$data ['list'] = $list;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'payments';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/paymentsAchieve", $data );
}
function paymentsIncomeUpdateDo() {
$aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : "";
$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "";
$accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : "";
$receivedPrice = is_numeric ( $this->get_args ( 'receivedPrice' ) ) ? $this->get_args ( 'receivedPrice' ) : 0;
$receivedMsg = $this->get_args ( 'receivedMsg' ) ? $this->get_args ( 'receivedMsg' ) : '';
$receivedBank = $this->get_args ( 'receivedBank' ) ? $this->get_args ( 'receivedBank' ) : '';
$receivedDate = $this->get_args ( 'receivedDate' ) ? $this->get_args ( 'receivedDate' ) : '';
$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';
if (! empty ( $aidKey ) && ! empty ( $accountType ) && ! empty ( $receivedPrice ) && ! empty ( $receivedMsg ) && ! empty ( $receivedBank ) && ! empty ( $receivedDate )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$aid = $XDeode->decode ( $aidKey );
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
//
$abDetail = $accountBook->getAccountBookByAid ( $aid );
$price = $receivedPrice - $abDetail [inComePrice];
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
if ($abDetail ['accountType'] == 7) {
$item += array (
'date' => date ( "Y-m-d" ),
'financingPrice' => - $price,
'expensesType' => 3,
'aid' => $abDetail ['aid']
);
} elseif ($abDetail ['accountType'] == 8) {
$item += array (
'date' => date ( "Y-m-d" ),
'expensesType' => $abDetail ['expensesType'],
'inComePrice' => - $price,
'aid' => $abDetail ['aid']
);
} else {
$item = array (
'date' => date ( "Y-m-d" ),
'expensesType' => $abDetail ['expensesType'],
'inComePrice' => $price,
'aid' => $abDetail ['aid']
);
}
$accountBookStatistics->setAccountBookStatistics ( $item );
$accountBook->accountType = $accountType;
$accountBook->accountMsg = $accountMsg;
$accountBook->receivedPrice = $receivedPrice;
$accountBook->receivedMsg = $receivedMsg;
$accountBook->receivedBank = $receivedBank;
$accountBook->receivedDate = $receivedDate;
$accountBook->remarks = $remarks;
$accountBook->aid = $aid;
$accountBook->update ();
}
return '/paymentsAchieve';
}
function paymentsExpenditureEdiDo() {
$aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : "";
$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";
$expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : "";
$expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0;
$expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : '';
$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';
$expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : '';
if (! empty ( $aidKey ) && ! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$aid = $XDeode->decode ( $aidKey );
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
// 汇总信息
$abDetail = $accountBook->getAccountBookByAid ( $aid );
$price = $expenditurePrice - $abDetail [expenditurePrice];
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
if ($abDetail ['expenditureType'] == 4) {
$item += array (
'date' => date ( "Y-m-d" ),
'financingPrice' => $price,
'expensesType' => 3,
'aid' => $abDetail ['aid']
);
} elseif ($abDetail ['expenditureType'] == 5) {
$item += array (
'date' => date ( "Y-m-d" ),
'expensesType' => $abDetail ['expensesType'],
'payPrice' => $price,
'aid' => $abDetail ['aid']
);
} else {
$item = array (
'date' => date ( "Y-m-d" ),
'expensesType' => $abDetail ['expensesType'],
'payPrice' => $price,
'aid' => $abDetail ['aid']
);
}
$accountBookStatistics->setAccountBookStatistics ( $item );
//
$accountBook->expenditureType = $expenditureType;
$accountBook->expenditureMsg = $expenditureMsg;
$accountBook->expenditurePrice = $expenditurePrice;
$accountBook->expenditureBank = $expenditureBank;
$accountBook->remarks = $remarks;
$accountBook->expenditureDate = $expenditureDate;
$accountBook->aid = $aid;
$id = $accountBook->update ();
}
return '/paymentsAchieve';
}
function paymentsDelDo() {
$aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : "";
if (! empty ( $aidKey )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$aid = $XDeode->decode ( $aidKey );
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
$abDetail = $accountBook->getAccountBookByAid ( $aid );
if (empty ( $abDetail ))
die ( 'illegal request' );
// 删除收支
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
$item = array (
'date' => date ( "Y-m-d" ),
'aid' => $abDetail ['aid']
);
$accountType = '';
if ($abDetail ['expensesType'] == 1) {
$accountType = 6;
if ($abDetail ['accountType'] != 7) {
$item += array (
'expensesType' => $abDetail ['expensesType'],
'inComePrice' => - $abDetail ['receivedPrice']
);
} else {
$item += array (
'financingPrice' => $abDetail ['receivedPrice'],
'expensesType' => 3
);
}
} elseif ($abDetail ['expensesType'] == 2) {
$accountType = 5;
if ($abDetail ['accountType'] != 7) {
$item += array (
'expensesType' => $abDetail ['expensesType'],
'payPrice' => - $abDetail ['expenditurePrice']
);
} else {
$item += array (
'financingPrice' => - $abDetail ['expenditurePrice'],
'expensesType' => 3
);
}
}
if (($abDetail ['expenditureType'] == 4 || $abDetail ['expenditureType'] == 6) && $abDetail ['expensesType'] == 2) {
if ($abDetail ['expenditureMsg'] == '公司固定')
$accountType = 9;
elseif ($abDetail ['expenditureMsg'] == '公司活期')
$accountType = 10;
}
if (($abDetail ['accountType'] == 7 || $abDetail ['accountType'] == 9) && $abDetail ['expensesType'] == 1) {
if ($abDetail ['accountMsg'] == '公司固定')
$accountType = 9;
elseif ($abDetail ['accountMsg'] == '公司活期')
$accountType = 10;
}
if ($abDetail ['accountMsg'] == '活期理财收益') {
$accountType = 10;
}
$accountBookStatistics->setAccountBookStatistics ( $item );
$accountBook->delete ( array (
'where' => 'aid=' . $aid,
'limit' => 1
) );
// 删除收入流水
if (! empty ( $accountType )) {
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$wasteBook->delete ( array (
'where' => 'dataID=' . $aid . ' and accountType=' . $accountType,
'limit' => 1
) );
}
}
return '/paymentsAchieve';
}
function paymentsCollect() {
Doo::loadModel ( "execute" );
$execute = new execute ();
if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) {
die ( 'illegal request' );
}
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
Doo::loadClass ( 'receipt.func' );
$statisticsIncome = $accountBookStatistics->getStatisticsByCollect ( $year );
$html = _getPaymentsCollectByYearHtml ( $statisticsIncome );
$data ['html'] = $html ['html'];
$data ['inSum'] = $html ['sum'];
$statisticsPay = $accountBookStatistics->getStatisticsByCollect ( $year, 2 );
$html = _getPaymentsCollectPayByYearHtml ( $statisticsPay );
$data ['payHtml'] = $html ['html'];
$data ['paySum'] = $html ['sum'];
// 余额统计
// $inComePay = $accountBookStatistics->getStatisticsByBalance ( $year, 1 );
// $pay = $accountBookStatistics->getStatisticsByBalance ( $year, 2 );
include './protected/config/wasteBook.conf.php';
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$inComePay = $wasteBook->getWasteBookByStatistics ( 1, $year );
$pay = $wasteBook->getWasteBookByStatistics ( 2, $year );
// 获得年份之前所有金额
$detail = $wasteBook->getWasteBookByStatisticsYear ( $year );
// print_r($detail);
// $waste['total'];
$lastBalanceHtml = '截至上月余额 | ';
$inComeHtml = '
---|
收入 | ';
$payHtml = '
---|
支出 | ';
$BalanceHtml = '
---|
余额 | ';
$inSum = $paySum = $showInSum = $showPaySum = $balanceSum = 0;
$balanceC = $bakBC = $waste ['total'] + $detail [0] ['accountPrice'];
$limitMonth = date ( 'm' ); // 限制显示月份参数
if (date ( 'Y' ) > $year) {
$limitMonth = 12;
}
for($i = 1; $i <= 12; $i ++) {
$inComeA = $payB = 0;
$falg = true;
foreach ( $inComePay as $key => $value ) {
if ($value ['month'] == $i) {
$falg = false;
$inComeHtml .= '' . $value ['accountPriceShow'] . ' | ';
$inSum += $value ['accountPrice'];
$showInSum += $value ['accountPriceShow'];
$inComeA = $value ['accountPrice'];
break;
}
}
if ($falg)
$inComeHtml .= '- | ';
$payFalg = true;
foreach ( $pay as $key => $value ) {
if ($value ['month'] == $i) {
$payFalg = false;
$payHtml .= '' . $value ['accountPriceShow'] . ' | ';
$paySum += $value ['accountPrice'];
$showPaySum += $value ['accountPriceShow'];
$payB = $value ['accountPrice'];
break;
}
}
if ($payFalg)
$payHtml .= '- | ';
if (empty ( $balanceC ) || $limitMonth < $i)
$lastBalanceHtml .= '- | ';
else
$lastBalanceHtml .= '' . $balanceC . ' | ';
$balanceC = $balanceC + $inComeA + $payB;
$balanceSum += $balanceC;
if (empty ( $balanceC ) || $limitMonth < $i)
$BalanceHtml .= '- | ';
else
$BalanceHtml .= '' . $balanceC . ' | ';
// 余额统计
}
$inComeHtml .= '¥' . $showInSum . ' |
';
$data ['inComeHtml'] = $inComeHtml;
$payHtml .= '¥' . $showPaySum . ' | ';
$data ['payBalanceHtml'] = $payHtml;
$BalanceHtml .= '¥' . $balanceC . ' | ';
$data ['BalanceHtml'] = $BalanceHtml;
$lastBalanceHtml .= '' . $balanceC . ' | ';
$data ['lastBalanceHtml'] = $lastBalanceHtml;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($moth == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['mothHtml'] = $mothHtml;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['year'] = $year;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'paymentsCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/paymentsCollect", $data );
}
function paymentsCollectDay() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$moth = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : '';
if (empty ( $moth ))
return 'paymentsCollect';
Doo::loadModel ( "accountBookStatistics" );
$accountBookStatistics = new accountBookStatistics ();
$i = 2;
$y = 2013;
$day = date ( "t", strtotime ( "$year-$moth" ) );
Doo::loadClass ( 'receipt.func' );
$statisticsIncome = $accountBookStatistics->getStatisticsByCollectDay ( $year, 1, $moth );
$html = _getPaymentsCollectByDayHtml ( $statisticsIncome, $day );
$data ['html'] = $html ['html'];
$data ['inSum'] = $html ['sum'];
$statisticsPay = $accountBookStatistics->getStatisticsByCollectDay ( $year, 2, $moth );
$html = _getPaymentsCollectPayByDayHtml ( $statisticsPay, $day );
$data ['payHtml'] = $html ['html'];
$data ['paySum'] = $html ['sum'];
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($moth == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['mothHtml'] = $mothHtml;
$data ['year'] = $year;
// 余额
// $inComePay = $accountBookStatistics->getStatisticsByBalance ( $year, 1, $moth );
// $pay = $accountBookStatistics->getStatisticsByBalance ( $year, 2, $moth );
include './protected/config/wasteBook.conf.php';
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$inComePay = $wasteBook->getStatisticsByDay ( 1, $year, $moth );
$pay = $wasteBook->getStatisticsByDay ( 2, $year, $moth );
// 获得年份之前所有金额
$detail = $wasteBook->getWasteBookByStatisticsDay ( $year, $moth );
$lastBalanceHtml = '截至上日余额 | ';
$inComeHtml = '
---|
收入 | ';
$payHtml = '
---|
支出 | ';
$BalanceHtml = '
---|
余额 | ';
$dayHtml = '
---|
余额 | ';
$inSum = $paySum = $showPaySum = $showInSum = $balanceSum = 0;
// $balanceC = 0;
$balanceC = $bakBC = $waste ['total'] + $detail [0] ['accountPrice'];
$limitDay = date ( 'd' );
$monthLK = ( int ) date ( 'm' );
if (date ( 'Y' ) > $year) {
$limitDay = cal_days_in_month ( CAL_GREGORIAN, date ( 'm' ), date ( 'Y' ) );
} elseif (date ( 'Y' ) <= $year && $monthLK < $moth) {
$limitDay = 0;
}
for($i = 1; $i <= $day; $i ++) {
$dayHtml .= '' . $i . '日 | ';
$inComeA = $payB = 0;
$falg = true;
foreach ( $inComePay as $key => $value ) {
if ($value ['day'] == $i) {
$falg = false;
$inComeHtml .= '' . $value ['accountPriceShow'] . ' | ';
$inSum += $value ['accountPrice'];
$showInSum += $value ['accountPriceShow'];
$inComeA = $value ['accountPrice'];
break;
}
}
if ($falg)
$inComeHtml .= '- | ';
$payFalg = true;
foreach ( $pay as $key => $value ) {
if ($value ['day'] == $i) {
$payFalg = false;
$payHtml .= '' . $value ['accountPriceShow'] . ' | ';
$paySum += $value ['accountPrice'];
$showPaySum += $value ['accountPriceShow'];
$payB = $value ['accountPrice'];
break;
}
}
if ($payFalg)
$payHtml .= '- | ';
if (empty ( $balanceC ) || $limitDay < $i)
$lastBalanceHtml .= '- | ';
else
$lastBalanceHtml .= '' . $balanceC . ' | ';
$balanceC = $balanceC + $inComeA + $payB;
$balanceSum += $balanceC;
if (empty ( $balanceC ) || $limitDay < $i)
$BalanceHtml .= '- | ';
else
$BalanceHtml .= '' . $balanceC . ' | ';
}
$inComeHtml .= '¥' . $showInSum . ' |
';
$data ['inComeHtml'] = $inComeHtml;
$payHtml .= '¥' . $showPaySum . ' | ';
$data ['payBalanceHtml'] = $payHtml;
$BalanceHtml .= '¥' . $balanceC . ' | ';
$data ['BalanceHtml'] = $BalanceHtml;
$dayHtml .= '总计 | ';
$data ['dayHtml'] = $dayHtml;
$lastBalanceHtml .= '' . $balanceC . ' | ';
$data ['lastBalanceHtml'] = $lastBalanceHtml;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'paymentsCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/paymentsCollectDay", $data );
}
// 公司流水
function wasteBook() {
Doo::loadModel ( "execute" );
$execute = new execute ();
if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) {
die ( 'illegal request' );
}
include './protected/config/wasteBook.conf.php';
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
$inComeStatistics = $wasteBook->getWasteBookStatisticsByIncome ();
$waste = $this->getWasteBookStatistics ( $waste, $inComeStatistics );
//
$total = $waste ['bank'] ['CGBDeposit'] + $waste ['bank'] ['ICBCDeposit']+ $waste ['bank'] ['HUADeposit'] + $waste ['bank'] ['PersonalDeposit'] + $waste ['financial'] ['current'] ['CGBDeposit'] + $waste ['financial'] ['current'] ['ICBCDeposit'] + $waste ['financial'] ['fixed'] ['CGBDeposit'] + $waste ['financial'] ['fixed'] ['ICBCDeposit'];
$CGBDeposit_total =$waste ['bank'] ['CGBDeposit']+$waste ['bank'] ['HUADeposit'];
//$waste ['bank'] ['ICBCDeposit']=sprintf("%.2f", round($waste ['bank'] ['ICBCDeposit'], 2));
// print_r($waste);
$data ['waste'] = $waste;
$data ['total'] = $total;
$data ['CGBDeposit_total'] = $CGBDeposit_total;
$data['cashBalance']= $CGBDeposit_total+$waste ['bank'] ['ICBCDeposit']+$waste ['bank'] ['PersonalDeposit']+$waste ['financial'] ['current'] ['CGBDeposit']+$waste ['financial'] ['current'] ['ICBCDeposit'];
// 月流水数据结构
$monthStatistics = array ();
$incomeMothStatistics = array ();
$expenditureMothStatistics = array ();
for($i = 1; $i <= 12; $i ++) {
$month = date ( 'Y' ) . '-' . $i;
if ($i < 10)
$month = date ( 'Y' ) . '-0' . $i;
array_push ( $monthStatistics, $month );
}
foreach ( $monthStatistics as $value ) {
$falg = true;
foreach ( $inComeStatistics ['incomeReport'] as $k => $v ) {
if ($value == $v ['inputDate']) {
array_push ( $incomeMothStatistics, $v ['accountPrice'] );
$falg = false;
}
}
if ($falg) {
array_push ( $incomeMothStatistics, '' );
}
$falgEx = true;
foreach ( $inComeStatistics ['expenditureReport'] as $k => $v ) {
if ($value == $v ['inputDate']) {
array_push ( $expenditureMothStatistics, $v ['accountPrice'] );
$falg = false;
}
}
if ($falgEx) {
array_push ( $expenditureMothStatistics, '' );
}
}
$data ['monthStatistics'] = json_encode ( $monthStatistics );
$data ['incomeMothStatistics'] = json_encode ( $incomeMothStatistics );
$data ['expenditureMothStatistics'] = json_encode ( $expenditureMothStatistics );
$expenditureList = $wasteBook->getAccountBookByExpensesType ( 4, 2 );
$incomeList = $wasteBook->getAccountBookByExpensesType ( 4, 1 );
// print_r($incomeList);
$data ['expenditureList'] = $expenditureList;
$data ['incomeList'] = $incomeList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'wasteBook';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/wasteBook", $data );
}
function wasteBookIncome() {
$date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "ALL";
$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "ALL";
$dailyIncomeType = $this->get_args ( 'dailyIncomeType' ) ? $this->get_args ( 'dailyIncomeType' ) : "ALL";
$data ['dailyIncomeType'] = $dailyIncomeType;
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$year=date("Y");
$theDay=date("Y-m-d");
$dateArr = explode ( ':', $date );
$D1 = '';
$D2 = '';
$con = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
$D2 = $dateArr [1];
}
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con = ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
elseif (! empty ( $D1 ) && empty ( $D2 ))
$con = ' and inputDate = "' . $D1 . '"';
else{
$con = ' and DATE_FORMAT(inputDate,"%Y")= "'.$year.'" ';
}
if ($cid != 'ALL') {
$cid = $XDeode->decode ( $cid );
$con .= ' and cid = "' . $cid . '"';
}
if ($accountType != 'ALL') {
if ($accountType == 'INVOICE') {
$con .= ' and (accountType = 7 or accountType = 8)';
} elseif ($accountType == 'PAYMENTS') {
$con .= ' and (accountType = 6 or accountType = 9 or accountType = 10)';
if ($dailyIncomeType != 'ALL') {
$dailyIncomeType = $XDeode->decode ( $dailyIncomeType );
$con .= ' and dailyIncomeType = ' . $dailyIncomeType;
}
}
}
$incomeList = $wasteBook->getAccountBookByExpensesType ( 0, 1, $con );
foreach ($incomeList as $key=>$value){
if(($value['accountType']==6||$value['accountType']==9||$value['accountType']==10)&&$value['synPaymentDate']==0){
$wasteBook = new wasteBook ();
$wasteBook->wid = $value['wid'];
$wasteBook->synPaymentDate = 1;
$wasteBook->inputDate = $value['data']['receivedDate'];
$wasteBook->update();
}
}
$sum = 0;$thsDaySum=0;
foreach ( $incomeList as $key => $value ) {
$sum += $value ['accountPrice'];
if($theDay==date("Y-m-d",strtotime($value['inputDate']))){
$thsDaySum+=$value ['accountPrice'];
}
}
// print_r($incomeList);
// 获得办事和部门
$categoryList = $L_category->getCategory ();
$data ['accountType'] = $accountType;
$data ['cid'] = $cid;
$data ['categoryList'] = $categoryList;
$data ['sum'] = $sum;
$data ['incomeList'] = $incomeList;
$data ['inputDate'] = $date;
$data['year']=$year;
$data ['thsDay'] =$theDay;
$data ['thsDaySum'] =$thsDaySum;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'wasteBook';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/wasteBookIncome", $data );
}
/**
* 所有支出
*/
function wasteBookExpenditure() {
$date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "ALL";
$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "ALL";
$dailyExpenditureType = $this->get_args ( 'dailyExpenditureType' ) ? $this->get_args ( 'dailyExpenditureType' ) : "ALL";
$data ['dailyExpenditureType'] = $dailyExpenditureType;
$receiptType = $this->get_args ( 'receiptType' ) ? $this->get_args ( 'receiptType' ) : "ALL";
$data ['receiptType'] = $receiptType;
Doo::loadModel ( 'wasteBook' );
$wasteBook = new wasteBook ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$year=date("Y");
$theDay=date("Y-m-d");
$dateArr = explode ( ':', $date );
$D1 = '';
$D2 = '';
$con = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
$D2 = $dateArr [1];
}
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con = ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
elseif (! empty ( $D1 ) && empty ( $D2 ))
$con = ' and inputDate = "' . $D1 . '"';
else{
$con = ' and DATE_FORMAT(inputDate,"%Y")= "'.$year.'" ';
}
if ($cid != 'ALL') {
$cid = $XDeode->decode ( $cid );
$con .= ' and cid = "' . $cid . '"';
}
if ($accountType != 'ALL') {
if ($accountType == 'INVOICE') {
$con .= ' and accountType = 11';
} elseif ($accountType == 'PAYMENTS') {
$con .= ' and (accountType = 5 or accountType = 9 or accountType = 10)';
if ($dailyExpenditureType != 'ALL') {
$dailyExpenditureType = $XDeode->decode ( $dailyExpenditureType );
$con .= ' and dailyExpenditureType = ' . $dailyExpenditureType;
}
} elseif ($accountType == 'RECEIPT') {
if ($receiptType == 'ALL') {
$con .= ' and (accountType = 1 or accountType = 2 or accountType = 3 or accountType = 4)';
} else {
$receiptType = $XDeode->decode ( $receiptType );
echo $receiptType;
if ($receiptType == 1) {
$con .= ' and (accountType = 1 or accountType=2)';
} else {
$con .= ' and accountType = ' . $receiptType;
}
}
}
}
$incomeList = $wasteBook->getAccountBookByExpensesType ( 0, 2, $con );
foreach ($incomeList as $key=>$value){
if(($value['accountType']==5||$value['accountType']==9||$value['accountType']==10)&&$value['synPaymentDate']==0){
$wasteBook = new wasteBook ();
$wasteBook->wid = $value['wid'];
$wasteBook->synPaymentDate = 1;
$wasteBook->inputDate = $value['data']['expenditureDate'];
$wasteBook->update();
}
}
$sum = 0;$thsDaySum=0;
foreach ( $incomeList as $key => $value ) {
$sum += $value ['accountPriceShow'];
if($theDay==date("Y-m-d",strtotime($value['inputDate']))){
$thsDaySum+=$value ['accountPriceShow'];
}
}
// print_r($incomeList);
// 获得办事和部门
$categoryList = $L_category->getCategory ();
$data ['accountType'] = $accountType;
$data ['cid'] = $cid;
$data ['categoryList'] = $categoryList;
$data ['sum'] = $sum;
$data ['incomeList'] = $incomeList;
$data ['inputDate'] = $date;
$data['year']=$year;
$data ['thsDay'] =$theDay;
$data ['thsDaySum'] =$thsDaySum;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'wasteBook';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/expenses/wasteBookExpenditure", $data );
}
function ajaxGetWasteinvoiceReceivables() {
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$irid = $XDeode->decode ( $serial );
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid );
echo json_encode ( array (
'status' => 1,
'detail' => $detail
) );
}
function ajaxGetPaymentsByAid() {
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
Doo::loadModel ( "accountBook" );
$accountBook = new accountBook ();
$detail = $accountBook->getAccountBookByAid ( $serial );
echo json_encode ( array (
'status' => 1,
'detail' => $detail
) );
}
function ajaxGetWasteInvoice() {
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoice->getInvoiceByIid ( $serial );
$detailReceivables = $invoiceReceivables->getInvoiceReceivablesByIrid ( $detail ['irid'] );
$detail ['receivablesBank'] = $detailReceivables ['receivablesBank'];
echo json_encode ( array (
'status' => 1,
'detail' => $detail
) );
}
/**
*/
function ajaxGetWasteReceipt() {
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
$accountTypeKey = $this->get_args ( 'accountTypeKey' ) ? $this->get_args ( 'accountTypeKey' ) : "";
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$rid = $XDeode->decode ( $serial );
$accountType= $XDeode->decode ( $accountTypeKey );
// 获得个数据
$detail = $receipt->getReceiptByRid ( $rid );
// 初始化
$detail ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$detail ['reviseDetail'] = json_decode ( $detail ['reviseDetail'], true );
$detail ['accountItem'] = json_decode ( $detail ['accountItem'], true );
$detail ['loanItem'] = json_decode ( $detail ['loanItem'], true );
$detail ['loanSumCN'] = $this->num_to_rmb ( $detail ['loanSum'] );
$detail ['sumCN'] = $this->num_to_rmb ( $detail ['sum'] );
// 获得费用html
$html = $this->getWasteReceiptHtml ( $detail ,$accountType);
// 获得费用审批人数据
$detail = $this->getReceiptApproverHtml ( $detail );
// 审批执行
$html .= '
审批人 |
审批意见 |
';
foreach ( $detail ['verifyList'] as $key => $value ) {
$html .= '
' . $value [1] . ' |
' . $value ['opinion'] . ' |
';
}
$html .= '
';
$html .= '
执行人 |
执行意见 |
';
foreach ( $detail ['executeCopy'] as $key => $value ) {
$html .= '
' . $value [1] . ' |
' . $value ['opinion'] . ' |
';
}
$html .= '
';
if($accountType==1){
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
$loanList = $loanReceipt->getOne ( array (
'where' => 'rid=' . $detail ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
$html .= '
汇款金额 |
¥'.$loanList['amount'].' |
';
}else{
$html .= '
汇款金额 |
¥' . $detail ['amount'] . ' |
';
}
// print_r($detail['verifyList']);
// header ( 'Content-Type:text/html;charset=utf-8' );
// echo $html;
echo json_encode ( array (
'status' => 1,
'html' => $html,
'detail' => $detail
) );
}
function getReceiptApproverHtml($detail = array()) {
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
if (empty ( $detail ))
return array ();
$loanList = $loanReceipt->getOne ( array (
'where' => 'rid=' . $detail ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
if ($detail ['status'] == 3 || $detail ['status'] == 1 || $detail ['status'] == 8 || $detail ['status'] == 9) {
if ($detail ['status'] == 8 && $detail ['Rtype'] == 1)
$verifyList ['staff'] = $loanList ['verifyBreakup'];
else
$verifyList ['staff'] = $detail ['verifyBreakup'];
} else
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $detail ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true );
Doo::loadModel ( 'role' );
$role = new role ();
$roleId = 0;
$flag = true;
$roleKey = 0;
$endStaffArray = array ();
$roleArrayCopy = array ();
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
if ($v [1] == 'ROLE') {
if (! empty ( $verifyStaff )) {
$endStaffArray = end ( $verifyStaff );
}
$roleVerify = json_decode ( $v [3], true );
$roleKey = $k;
$roleArray = array ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $v [0],
'asArray' => true
) );
foreach ( $roleVerify as $o => $p ) {
$staffID = explode ( '_', $p );
$staffInfo = $staff->getOne ( array (
'where' => 'sid=' . $staffID [0],
'asArray' => true
) );
// print_r($staffID);
$exp = array (
0 => $staffInfo ['sid'],
1 => $staffID [1],
2 => $staffInfo ['avatar'],
'date' => '',
'date' => '',
'opinion' => '',
'status' => '',
'rolename' => $rolename ['name']
);
array_push ( $roleArray, $exp );
}
$roleArrayCopy [$v [0]] = $roleArray;
// $verifyList[$k]['roleArray']=$roleArray;
}
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
$verifyList [$k] ['status'] = 4;
$flag = false;
}
} else {
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
}
$endStaffArray = end ( $verifyStaff );
}
}
$rolename ['name'] = '';
if (! empty ( $roleId )) {
Doo::loadModel ( 'role' );
$role = new role ();
$rolename = $role->getOne ( array (
'where' => 'rid=' . $roleId,
'asArray' => true
) );
}
if (! empty ( $verifyStaff ))
$endStaffArray = end ( $verifyStaff );
$KOP = false;
foreach ( $roleArrayCopy as $P => $A ) {
foreach ( $A as $MKI => $AVL ) {
if (! empty ( $verifyStaff )) {
// &&$rolename['rid']==$endStaffArray['nextStaff']
if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
foreach ( $verifyStaff as $m => $u ) {
$AVLFK = $AVL [0] . '_R';
// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '
';
if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
break;
}
}
} else {
if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
$button = 4;
$roleArrayCopy [$P] [$MKI] ['status'] = 4;
}
}
// $roleArray[$MKI]['rolename']=$rolename['name'];
$KOP = true;
}
}
foreach ( $roleArrayCopy as $k => $v ) {
foreach ( $verifyList as $m => $n ) {
if ($n [0] == $k) {
array_splice ( $verifyList, $m, 1, $v );
}
}
}
// 费用执行人相关数据
$executeCopy = json_decode ( $detail ['executeCopy'], true );
$executeStaff = json_decode ( $detail ['executeStaff'], true );
foreach ( $executeCopy as $k => $v ) {
$executeCopy [$k] ['date'] = '';
$executeCopy [$k] ['opinion'] = '';
$executeCopy [$k] ['status'] = '';
if (! empty ( $executeStaff ))
foreach ( $executeStaff as $m => $u ) {
if ($v [0] == $m) {
$executeCopy [$k] ['date'] = $u ['date'];
$executeCopy [$k] ['opinion'] = $u ['opinion'];
$executeCopy [$k] ['status'] = $u ['status'];
break;
}
}
}
$detail ['executeCopy'] = $executeCopy;
$detail ['verifyList'] = $verifyList;
return $detail;
}
function getWasteReceiptHtml($detail = array(),$accountType=1) {
if (empty ( $detail ))
return '';
$html = '';
if ($detail ['Rtype'] == 0) { // 报销单
$html .= '
日常相关费用 |
';
foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . ' |
';
$html .= '
差旅相关费用 |
';
foreach ( $detail ['accountItem'] ['差旅相关费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['travelSum'] . ' |
';
if(isset($detail ['accountItem'] ['内部培训费用'])){
$html .= '
内部培训费用 |
';
foreach ( $detail ['accountItem'] ['内部培训费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['inttrainSum'] . ' |
';
}
$html .= '
其他 |
';
foreach ( $detail ['accountItem'] ['其他'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['otherSum'] . ' |
';
$html .= '
报销金额调整 |
';
foreach ( $detail ['reviseDetail'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['revisePrice'] . ' |
';
$html .= '
产生费用所在办事处 |
' . $detail ['category'] [0] ['title'] . ' |
报销说明 |
' . $detail ['explanation'] . ' |
(' . $detail ['receiptOrder'] . ')本次报销费用合计 |
¥' . $detail ['sum'] . ' ' . $detail ['sumCN'] . ' |
';
} elseif ($detail ['Rtype'] == 2) {//对公汇款
$html .= '
办事处相关费用 |
';
foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . ' |
';
$html .= '
产生费用所在办事处 |
' . $detail ['category'] [0] ['title'] . ' |
报销说明 |
' . $detail ['explanation'] . ' |
(' . $detail ['receiptOrder'] . ')本次报销费用合计 |
¥' . $detail ['sum'] . ' ' . $detail ['sumCN'] . ' |
';
} elseif ($detail ['Rtype'] == 1) {//借款 或者借款报销
Doo::loadModel ( 'loanReceipt' );
$loanReceipt = new loanReceipt ();
$loanList = $loanReceipt->getOne ( array (
'where' => 'rid=' . $detail ['loanRid'],
'desc' => 'rid',
'asArray' => true
) );
// print_r($loanList);
$loanList ['sumCN']=$this->num_to_rmb($loanList ['sum']);
$html .= '
借款费用 |
';
foreach ( $detail ['loanItem'] ['借款费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
产生费用所在办事处 |
' . $detail ['category'] [0] ['title'] . ' |
费用说明 |
' . $loanList ['explanation'] . ' |
(' . $loanList ['receiptOrder'] . ')本次费用合计 |
¥' . $loanList ['sum'] . ' ' . $loanList ['sumCN'] . ' |
';
if ( $accountType==2) {
$balance=$detail ['sum']-$loanList ['sum'];
$balanceCN=$this->num_to_rmb($balance);
$html .= '
日常相关费用 |
';
foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . ' |
';
$html .= '
差旅相关费用 |
';
foreach ( $detail ['accountItem'] ['差旅相关费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['travelSum'] . ' |
';
if(isset($detail ['accountItem'] ['内部培训费用'])){
$html .= '
内部培训费用 |
';
foreach ( $detail ['accountItem'] ['内部培训费用'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['inttrainSum'] . ' |
';
}
$html .= '
其他 |
';
foreach ( $detail ['accountItem'] ['其他'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['accountItem'] ['cSum'] ['otherSum'] . ' |
';
$html .= '
报销金额调整 |
';
foreach ( $detail ['reviseDetail'] as $key => $value ) {
$html .= '
' . $value ['name'] . ' |
¥' . $value ['price'] . ' |
';
}
$html .= '
合计 |
¥' . $detail ['revisePrice'] . ' |
';
$html .= '
产生费用所在办事处 |
' . $detail ['category'] [0] ['title'] . ' |
报销说明 |
' . $detail ['explanation'] . ' |
(' . $detail ['receiptOrder'] . ')本次报销费用合计 |
¥' . $detail ['sum'] . ' ' . $detail ['sumCN'] . ' |
借款结余 |
¥'.$balance.' '.$balanceCN.' |
';
}
}
return $html;
}
/**
* 计算流水
*/
function getWasteBookStatistics($waste = array(), $inComeStatistics) {
$bakWaste ['bank'] = array (
'CGBDeposit' => 0,
'ICBCDeposit' => 0,
'HUADeposit' => 0,
'PersonalDeposit' => 0
);
$bakWaste ['financial'] = array (
'current' => array (
'CGBDeposit' => 0,
'ICBCDeposit' => 0
),
'fixed' => array (
'CGBDeposit' => 0,
'ICBCDeposit' => 0
)
);
// 存款
foreach ( $waste ['bank'] as $key => $value ) {
// 收入
foreach ( $inComeStatistics ['incomeStatistics'] as $k => $v ) {
// 广发
if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {
$waste ['bank'] ['CGBDeposit'] = $value + $v ['accountPrice'];
}
// 工商
if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {
$waste ['bank'] ['ICBCDeposit'] = $value + $v ['accountPrice'];
}
// 华润
if ($v ['accountBank'] == 'HUADeposit' && $key == 'HUADeposit') {
$waste ['bank'] ['HUADeposit'] = $value + $v ['accountPrice'];
}
// 个人
if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {
$waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice'];
}
}
}
foreach ( $waste ['bank'] as $key => $value ) {
// 支出
foreach ( $inComeStatistics ['expenditureStatistics'] as $k => $v ) {
// 广发
if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {
$waste ['bank'] ['CGBDeposit'] = $value + $v ['accountPrice'];
}
// 工商
if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {
$waste ['bank'] ['ICBCDeposit'] = $value + $v ['accountPrice'];
}
// 华润
if ($v ['accountBank'] == 'HUADeposit' && $key == 'HUADeposit') {
$waste ['bank'] ['HUADeposit'] = $value + $v ['accountPrice'];
}
// 个人
if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {
$waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice'];
}
}
}
// 活期
foreach ( $waste ['financial'] ['current'] as $key => $value ) {
foreach ( $inComeStatistics ['currentStatistics'] as $k => $v ) {
// 广发
if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {
$waste ['financial'] ['current'] ['CGBDeposit'] = $value + $v ['accountPrice'];
}
// 工商
if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {
$waste ['financial'] ['current'] ['ICBCDeposit'] = $value + $v ['accountPrice'];
}
// 个人
if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {
$waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice'];
}
}
}
// print_r($inComeStatistics ['fixedStatistics']);
// 固期
foreach ( $waste ['financial'] ['fixed'] as $key => $value ) {
foreach ( $inComeStatistics ['fixedStatistics'] as $k => $v ) {
// 广发
if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {
$waste ['financial'] ['fixed'] ['CGBDeposit'] = $value + $v ['accountPrice'];
}
// 工商
if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {
$waste ['financial'] ['fixed'] ['ICBCDeposit'] = $value + $v ['accountPrice'];
}
// 个人
if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {
$waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice'];
}
}
}
return $waste;
}
function lyt() {
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
$receiptCollectList = $receiptDetail->find ( array (
'where' => 'status=1 ',
'asArray' => true
) );
foreach ( $receiptCollectList as $key => $value ) {
$receiptDetail = new receiptDetail ();
$receiptDetail->pastDate = $value ['date'];
$receiptDetail->update ( array (
'where' => "rdid= '" . $value ['rdid'] . "'"
) );
}
}
function staffCollectMonthDetail() {
//include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
if (! $year)
$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );
if (! $month)
$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;
$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : "";
if (! $nature){
$nature = isset ( $this->params ['nature'] ) ? $this->params ['nature'] : 'ONJOB';
}
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( "receiptAuthorityManage" );
$receiptAuthorityManage = new receiptAuthorityManage ();
$aiList=$accountItem->getAccountItem();
$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );
$cidList = array ();
foreach ( $imcStaff as $key => $value ) {
array_push ( $cidList, $value ['cid'] );
}
$cidString = implode ( ',', $cidList );
$naturecon='';
if ($nature=='ONJOB'){
$naturecon=' and (nature!=4 )';
}elseif($nature=='LEAVEJOB'){
$naturecon=' and (nature=4 )';
}else{
die ( 'illegal request--nature' );
}
$staffList = $staff->find ( array (
'where' => 'username!="admin" and cid in (' . $cidString . ')'.$naturecon,
'asArray' => true
) );
$categoryList = $staff->find ( array (
'select' => 'COUNT(*) as count,cid,category',
'where' => 'username !="admin" and cid in (' . $cidString . ')'.$naturecon,
'groupby' => 'cid',
'asArray' => true
) );
$list = array ();
foreach($aiList as $key=>$value){
foreach ($value as $v){
$subtotal[$key][$v['name']]=0;
}
}
foreach ( $categoryList as $vlu ) {
$s1 = 0;
$m1 = 0;
$subtotal[$this->AGENCY]['AGENCY']=$subtotal[$this->TRAVEL]['TRAVEL']=$subtotal[$this->INTTRAIN]['INTTRAIN']=$subtotal[$this->TRAIN]['TRAIN']=$subtotal[$this->OTHER]['OTHER']=0;
foreach ( $staffList as $value ) {
if ($vlu ['cid'] == $value ['cid']) {
// pastDate
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
'groupby' => 'item,Month(pastDate),itemCategory',
'asArray' => true
) );
if (! empty ( $receiptCollectList )) {
$receiptL = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'内部培训费用' => array (),
'培训班费用' => array (),
'其他' => array ()
);
$html = "";
$psum = 0;
foreach ( $aiList[$this->AGENCY] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '日常相关费用') {
if ($v ['item'] == $va['name']) {
$subtotal[$this->AGENCY][$va['name']]+=$v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$subtotal[$this->AGENCY]['AGENCY'] += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['日常相关费用'] = $psum . $html;
/* ----------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->TRAVEL] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '差旅相关费用') {
if ($v ['item'] == $va['name']) {
$subtotal[$this->TRAVEL][$va['name']]+=$v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$subtotal[$this->TRAVEL]['TRAVEL'] += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['差旅相关费用'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->INTTRAIN] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '内部培训费用') {
if ($v ['item'] == $va['name']) {
$subtotal[$this->INTTRAIN][$va['name']]+=$v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$subtotal[$this->INTTRAIN]['INTTRAIN'] += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['内部培训费用'] = $psum . $html;
/* ----------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->TRAIN] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '培训班费用') {
if ($v ['item'] == $va['name']) {
$subtotal[$this->TRAIN][$va['name']]+=$v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$subtotal[$this->TRAIN]['TRAIN'] += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['培训班费用'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->OTHER] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '其他') {
if (trim ( $v ['item'] ) == $va['name']) {
$subtotal[$this->OTHER][$va['name']]+=$v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$subtotal[$this->OTHER]['OTHER'] += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['其他'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '报销金额调整') {
if (! empty ( $v ['price'] )) {
$psum += $v ['price'];
}
}
}
$s1 += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['报销金额调整'] = $psum . $html;
} else {
$receiptL [$this->AGENCY] ='- | ';
foreach ( $aiList[$this->AGENCY] as $va ) {
$receiptL [$this->AGENCY] .='- | ';
}
$receiptL [$this->TRAVEL] ='- | ';
foreach ( $aiList[$this->TRAVEL] as $va ) {
$receiptL [$this->TRAVEL] .='- | ';
}
$receiptL [$this->INTTRAIN] ='- | ';
foreach ( $aiList[$this->INTTRAIN] as $va ) {
$receiptL [$this->INTTRAIN] .='- | ';
}
$receiptL [$this->TRAIN] ='- | ';
foreach ( $aiList[$this->TRAIN] as $va ) {
$receiptL [$this->TRAIN] .='- | ';
}
$receiptL [$this->OTHER] ='- | ';
foreach ( $aiList[$this->OTHER] as $va ) {
$receiptL [$this->OTHER] .='- | ';
}
$receiptL ['报销金额调整'] = '- | ';
}
$monthStaffPrice = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
'groupby' => 'Month(pastDate)',
'asArray' => true
) );
// echo 'staff='.$value['sid']." and status=1 and Year(date)=".$year.' and Month(date)='.$month;
if (! empty ( $monthStaffPrice [0] ['price'] )) {
$m1 += $monthStaffPrice [0] ['price'];
$receiptL ['monthStaffPrice'] = '¥' . $monthStaffPrice [0] ['price'] . ' | ';
} else
$receiptL ['monthStaffPrice'] = '- | ';
$receiptL ['usernameEn'] = urlencode ( $value ['username'] );
$list [$value ['username']] = $receiptL;
}
}
$receiptL [$this->AGENCY] =''.$subtotal[$this->AGENCY]['AGENCY'].' | ';
foreach ( $aiList[$this->AGENCY] as $va ) {
$receiptL [$this->AGENCY] .='' . $subtotal[$this->AGENCY][$va['name']] . ' | ';
$subtotal[$this->AGENCY][$va['name']]=0;
}
$receiptL [$this->TRAVEL] =''.$subtotal[$this->TRAVEL]['TRAVEL'].' | ';
foreach ( $aiList[$this->TRAVEL] as $va ) {
$receiptL [$this->TRAVEL] .='' . $subtotal[$this->TRAVEL][$va['name']] . ' | ';
$subtotal[$this->TRAVEL][$va['name']]=0;
}
$receiptL [$this->INTTRAIN] =''.$subtotal[$this->INTTRAIN]['INTTRAIN'].' | ';
foreach ( $aiList[$this->INTTRAIN] as $va ) {
$receiptL [$this->INTTRAIN] .='' . $subtotal[$this->INTTRAIN][$va['name']] . ' | ';
$subtotal[$this->INTTRAIN][$va['name']]=0;
}
$receiptL [$this->TRAIN] =''.$subtotal[$this->TRAIN]['TRAIN'].' | ';
foreach ( $aiList[$this->TRAIN] as $va ) {
$receiptL [$this->TRAIN] .='' . $subtotal[$this->TRAIN][$va['name']] . ' | ';
$subtotal[$this->TRAIN][$va['name']]=0;
}
$receiptL [$this->OTHER] =''.$subtotal[$this->OTHER]['OTHER'].' | ';
foreach ( $aiList[$this->OTHER] as $va ) {
$receiptL [$this->OTHER] .='' . $subtotal[$this->OTHER][$va['name']] . ' | ';
$subtotal[$this->OTHER][$va['name']]=0;
}
$receiptL ['报销金额调整'] = '' . $s1 . ' | ';
$receiptL ['monthStaffPrice'] = '¥' . $m1 . ' | ';
$receiptL ['usernameEn'] =false;
$list ['' . $vlu ['category'] . '小计'] = $receiptL;
}
$data ['list'] = $list;
// print_r($list);
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
'groupby' => 'item,Month(pastDate),itemCategory',
'asArray' => true
) );
$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList,$aiList );
// statistics html
$stList = $statistics->getOne ( array (
'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',
'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
'groupby' => 'Month(date)',
'asArray' => true
) );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$monthHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($i == $month)
$monthHtml .= '';
else
$monthHtml .= '';
}
$data ['monthHtml'] = $monthHtml;
$data ['year'] = $year;
$data ['month'] = $month;
$data ['nature'] = $nature;
$data ['aiList'] = $aiList;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/staffCollectMonthDetail", $data );
// $this->render ( "/admin/saeaStaffCollectDetail", $data );
}
function staffCollectMonthDetail2() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
if (! $year)
$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );
if (! $month)
$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$staffList = $staff->find ( array (
'where' => 'username!="admin"',
'asArray' => true
) );
$categoryList = $staff->find ( array (
'select' => 'COUNT(*) as count,cid,category',
'where' => 'username !="admin"',
'groupby' => 'cid',
'asArray' => true
) );
$list = array ();
foreach ( $categoryList as $vlu ) {
// $html=''.$v['category'].' | ';
$r1 = 0;
$r2 = 0;
$r3 = 0;
$r4 = 0;
$r5 = 0;
$r6 = 0;
$r7 = 0;
$r8 = 0;
$r9 = 0;
$r10 = 0;
$r11 = 0;
$r12 = 0;
$r13 = 0;
$r14 = 0;
$r15 = 0;
$c1 = 0;
$c2 = 0;
$c3 = 0;
$c4 = 0;
$c5 = 0;
$c6 = 0;
$p1 = 0;
$p2 = 0;
$p3 = 0;
$p4 = 0;
$p5 = 0;
$p6 = 0;
$p7 = 0;
$p8 = 0;
$p9 = 0;
$t1 = 0;
$t2 = 0;
$t3 = 0;
$t4 = 0;
$t5 = 0;
$s1 = 0;
$m1 = 0;
foreach ( $staffList as $value ) {
if ($vlu ['cid'] == $value ['cid']) {
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(date)=" . $year . ' and Month(date)=' . $month,
'groupby' => 'item,Month(date),itemCategory',
'asArray' => true
) );
if (! empty ( $receiptCollectList )) {
$receiptL = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'培训班费用' => array (),
'其他' => array ()
);
$html = "";
$psum = 0;
$item = array (
'市内交通费',
'市内出租费',
'办事处房租',
'电话费',
'水费',
'电费',
'办公费用',
'邮寄费',
'其他费用',
'车辆费用',
'广告费',
'团队建设费',
'物业管理费',
'宽带费'
);
foreach ( $item as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '日常相关费用') {
if ($v ['item'] == $va) {
if ($va == '市内交通费')
$r1 += $v ['price'];
if ($va == '市内出租费')
$r2 += $v ['price'];
if ($va == '办事处房租')
$r3 += $v ['price'];
if ($va == '电话费')
$r4 += $v ['price'];
if ($va == '水费')
$r5 += $v ['price'];
if ($va == '电费')
$r6 += $v ['price'];
if ($va == '办公费用')
$r7 += $v ['price'];
if ($va == '邮寄费')
$r8 += $v ['price'];
if ($va == '其他费用')
$r9 += $v ['price'];
if ($va == '车辆费用')
$r10 += $v ['price'];
if ($va == '广告费')
$r11 += $v ['price'];
if ($va == '团队建设费')
$r13 += $v ['price'];
if ($va == '物业管理费')
$r14 += $v ['price'];
if ($va == '宽带费')
$r15 += $v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$r12 += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['日常相关费用'] = $psum . $html;
/* ----------------------------------- */
$html = "";
$psum = 0;
$item = array (
'往来交通费',
'市内交通费',
'出差住宿费',
'出差补助',
'其他费用'
);
foreach ( $item as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '差旅相关费用') {
if ($v ['item'] == $va) {
if ($va == '往来交通费')
$c1 += $v ['price'];
if ($va == '市内交通费')
$c2 += $v ['price'];
if ($va == '出差住宿费')
$c3 += $v ['price'];
if ($va == '出差补助')
$c4 += $v ['price'];
if ($va == '其他费用')
$c5 += $v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$c6 += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['差旅相关费用'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
$item = array (
'场租费',
'薪酬',
'住宿费',
'交通费',
'餐饮费',
'办公费',
'公关费',
'其他'
);
foreach ( $item as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '培训班费用') {
if ($v ['item'] == $va) {
if ($va == '场租费')
$p1 += $v ['price'];
if ($va == '薪酬')
$p2 += $v ['price'];
if ($va == '住宿费')
$p3 += $v ['price'];
if ($va == '交通费')
$p4 += $v ['price'];
if ($va == '餐饮费')
$p5 += $v ['price'];
if ($va == '办公费')
$p6 += $v ['price'];
if ($va == '公关费')
$p7 += $v ['price'];
if ($va == '其他')
$p8 += $v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$p9 += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['培训班费用'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
$item = array (
'公关费',
'广告费',
'借款',
'可自加费用'
);
foreach ( $item as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '其他') {
if ($v ['item'] == $va) {
if ($va == '公关费')
$t1 += $v ['price'];
if ($va == '广告费')
$t2 += $v ['price'];
if ($va == '借款')
$t3 += $v ['price'];
if ($va == '可自加费用')
$t4 += $v ['price'];
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
$t5 += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['其他'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '报销金额调整') {
if (! empty ( $v ['price'] )) {
$psum += $v ['price'];
}
}
}
$s1 += $psum;
if (! empty ( $psum ))
$psum = '¥' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['报销金额调整'] = $psum . $html;
} else {
$receiptL ['日常相关费用'] = '- | - | - | - | - |
- | - | - | - | - | - | - | - | ';
$receiptL ['差旅相关费用'] = '- | - |
- | - | - | - | ';
$receiptL ['培训班费用'] = '- | - | - | - | - |
- | - | - | - | ';
$receiptL ['其他'] = '- | - | - | - | - | ';
$receiptL ['报销金额调整'] = '- | ';
}
$monthStaffPrice = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',
'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(date)=" . $year . ' and Month(date)=' . $month,
'asArray' => true
) );
if (! empty ( $monthStaffPrice [0] ['price'] )) {
$m1 += $monthStaffPrice [0] ['price'];
$receiptL ['monthStaffPrice'] = '¥' . $monthStaffPrice [0] ['price'] . ' | ';
} else
$receiptL ['monthStaffPrice'] = '- | ';
$list [$value ['username']] = $receiptL;
}
}
$receiptL ['日常相关费用'] = '' . $r12 . ' | ' . $r1 . ' | ' . $r2 . ' | ' . $r3 . ' | ' . $r4 . ' | ' . $r5 . ' |
' . $r6 . ' | ' . $r7 . ' | ' . $r8 . ' | ' . $r9 . ' | ' . $r10 . ' | ' . $r11 . ' | ' . $r13 . ' |
' . $r14 . ' | ' . $r15 . ' | ';
$receiptL ['差旅相关费用'] = '' . $c6 . ' | ' . $c1 . ' |
' . $c2 . ' | ' . $c3 . ' | ' . $c4 . ' | ' . $c5 . ' | ';
$receiptL ['培训班费用'] = '' . $p9 . ' | ' . $p1 . ' | ' . $p2 . ' | ' . $p3 . ' | ' . $p4 . ' |
' . $p5 . ' | ' . $p6 . ' | ' . $p7 . ' | ' . $p8 . ' | ';
$receiptL ['其他'] = '' . $t5 . ' | ' . $t1 . ' | ' . $t2 . ' | ' . $t3 . ' | ' . $t4 . ' | ';
$receiptL ['报销金额调整'] = '' . $s1 . ' | ';
$receiptL ['monthStaffPrice'] = '¥' . $m1 . ' | ';
$list ['' . $vlu ['category'] . '小计'] = $receiptL;
}
$data ['list'] = $list;
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',
'where' => " status=1 and Year(date)=" . $year . ' and Month(date)=' . $month,
'groupby' => 'item,Month(date),itemCategory',
'asArray' => true
) );
$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList );
// statistics html
$stList = $statistics->getOne ( array (
'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',
'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
'groupby' => 'Month(date)',
'asArray' => true
) );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$monthHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($i == $month)
$monthHtml .= '';
else
$monthHtml .= '';
}
$data ['monthHtml'] = $monthHtml;
$data ['year'] = $year;
$data ['month'] = $month;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/staffCollectMonthDetail2", $data );
// $this->render ( "/admin/saeaStaffCollectDetail", $data );
}
/**
* 用户报销单列表
*/
function receiptStatisticsStaffDetail() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$username = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : "";
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
if (! empty ( $username )) {
$username = addslashes ( urldecode ( $username ) );
$staffDetail = $staff->getStaffByName ( $username );
if (empty ( $staffDetail ))
die ( 'illegal request' );
$list = $receipt->getReceiptBySid ( $staffDetail ['sid'], $year, $month );
$itemList = $accountItem->getAccountItem ();
$itemHtml = '';
$categoryHtml = '';
$itemKeyList = array_keys ( $itemList );
$revisePrice = 0;
// 报销单内容详情
foreach ( $list as $key => $value ) {
$accountItemList = json_decode ( $value ['accountItem'], true );
$list [$key] ['accountItemList'] = $accountItemList;
$receiptItemHtml = '';
foreach ( $itemKeyList as $v ) {
if ($v == '日常相关费用')
$receiptItemHtml .= '' . $accountItemList ['cSum'] ['agencySum'] . ' | ';
elseif ($v == '差旅相关费用')
$receiptItemHtml .= '' . $accountItemList ['cSum'] ['travelSum'] . ' | ';
elseif ($v == '培训班费用')
$receiptItemHtml .= '' . $accountItemList ['cSum'] ['trainSum'] . ' | ';
elseif ($v == '内部培训费用'){
if (isset($accountItemList ['cSum'] ['inttrainSum'])){
$receiptItemHtml .= '' . $accountItemList ['cSum'] ['inttrainSum'] . ' | ';
}else{
$receiptItemHtml .= '0 | ';
}
}elseif ($v == '其他')
$receiptItemHtml .= '' . $accountItemList ['cSum'] ['otherSum'] . ' | ';
foreach ( $itemList [$v] as $ke => $va ) {
$falg = true;
if (! empty ( $accountItemList [$v] )) {
foreach ( $accountItemList [$v] as $ve ) {
if ($va ['name'] == $ve ['name']) {
$receiptItemHtml .= '' . $ve ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$receiptItemHtml .= ' | ';
}
}
// 金额调整和费用查看
$revisePrice += $value ['revisePrice'];
$receiptItemHtml .= '' . $value ['revisePrice'] . ' | ';
$receiptItemHtml .= '查看 | ';
$list [$key] ['receiptItemHtml'] = $receiptItemHtml;
}
// 报销单合计
$receiptTotalList = $receiptDetail->getReceiptTotalItem ( $staffDetail ['sid'], $year, $month );
$rtl = $receiptDetail->getReceiptTotalItemCategory ( $staffDetail ['sid'], $year, $month );
$receiptTotalHtml = '';
// 报销单项目抬头
foreach ( $itemKeyList as $value ) {
$count = count ( $itemList [$value] ) + 1;
$itemHtml .= '' . $value . ' | ';
$categoryHtml .= '合计 | ';
$sumfalg=true;
foreach ( $rtl as $rtlValue ) {
if ($rtlValue ['itemCategory'] == $value) {
$receiptTotalHtml .= '' . $rtlValue ['price'] . ' | ';
$sumfalg=false;
break;
}
}
if ($sumfalg)
$receiptTotalHtml .= ' | ';
foreach ( $itemList [$value] as $k => $v ) {
$categoryHtml .= '' . $v ['name'] . ' | ';
// 合计
$falg = true;
foreach ( $receiptTotalList as $ve ) {
if ($ve ['itemCategory'] == $value && $ve ['item'] == $v ['name']) {
$receiptTotalHtml .= '' . $ve ['price'] . ' | ';
$falg = false;
break;
}
}
if ($falg)
$receiptTotalHtml .= ' | ';
}
}
$receiptTotalHtml .= '' . $revisePrice . ' | ';
$stList = $statistics->getStatisticsBySid ( $staffDetail ['sid'], $year, $month );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$monthHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($i == $month)
$monthHtml .= '';
else
$monthHtml .= '';
}
$data ['username'] = urlencode ( $username );
$data ['usernameEN'] = $username;
$data ['monthHtml'] = $monthHtml;
$data ['receiptTotalHtml'] = $receiptTotalHtml;
$data ['list'] = $list;
$data ['categoryHtml'] = $categoryHtml;
$data ['itemHtml'] = $itemHtml;
$data ['itemList'] = $itemList;
$data ['year'] = $year;
$data ['month'] = $month;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/receiptStatisticsStaffDetail", $data );
}
die ( 'illegal request' );
}
function companyMonthCollectDetail() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
if (! $year)
$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );
if (! $month)
$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$staffList = $staff->find ( array (
'where' => 'username!="admin"',
'asArray' => true
) );
$categoryList = $lCategory->find ( array (
'asArray' => true
) );
$aiList=$accountItem->getAccountItem();
$list = array ();
foreach ( $categoryList as $value ) {
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
'groupby' => 'item,Month(pastDate),itemCategory',
'asArray' => true
) );
if (! empty ( $receiptCollectList )) {
$receiptL = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'内部培训费用' => array (),
'培训班费用' => array (),
'其他' => array ()
);
$html = "";
$psum = 0;
foreach ( $aiList[$this->AGENCY] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == $this->AGENCY) {
if ($v ['item'] == $va['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL [$this->AGENCY] = $psum . $html;
/* ----------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->TRAVEL] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == $this->TRAVEL) {
if ($v ['item'] == $va['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL [$this->TRAVEL] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->INTTRAIN] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == $this->INTTRAIN) {
if ($v ['item'] == $va['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL [$this->INTTRAIN] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->TRAIN] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == $this->TRAIN) {
if ($v ['item'] == $va['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL [$this->TRAIN] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->OTHER] as $va ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == $this->OTHER) {
if ($v ['item'] == $va['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL [$this->OTHER] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '报销金额调整') {
if (! empty ( $v ['price'] ))
$psum += $v ['price'];
}
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['报销金额调整'] = $psum . $html;
} else {
$receiptL [$this->AGENCY] ='- | ';
foreach ( $aiList[$this->AGENCY] as $va ) {
$receiptL [$this->AGENCY] .='- | ';
}
$receiptL [$this->TRAVEL] ='- | ';
foreach ( $aiList[$this->TRAVEL] as $va ) {
$receiptL [$this->TRAVEL] .='- | ';
}
$receiptL [$this->INTTRAIN] ='- | ';
foreach ( $aiList[$this->INTTRAIN] as $va ) {
$receiptL [$this->INTTRAIN] .='- | ';
}
$receiptL [$this->TRAIN] ='- | ';
foreach ( $aiList[$this->TRAIN] as $va ) {
$receiptL [$this->TRAIN] .='- | ';
}
$receiptL [$this->OTHER] ='- | ';
foreach ( $aiList[$this->OTHER] as $va ) {
$receiptL [$this->OTHER] .='- | ';
}
$receiptL ['报销金额调整'] = '- | ';
}
$monthStaffPrice = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
'asArray' => true
) );
if (! empty ( $monthStaffPrice [0] ['price'] ))
$receiptL ['monthStaffPrice'] = '' . $monthStaffPrice [0] ['price'] . ' | ';
else
$receiptL ['monthStaffPrice'] = '- | ';
$list [$value ['title']] = $receiptL;
}
$data ['list'] = $list;
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,
'groupby' => 'item,Month(pastDate),itemCategory',
'asArray' => true
) );
$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList,$aiList );
//print_r($data['monthPriceHtml']);
// foreach ($data['monthPriceHtml'] as $value){
// echo $value;
// }
// die;
// statistics html
$stList = $statistics->getOne ( array (
'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',
'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,
'groupby' => 'Month(date)',
'asArray' => true
) );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$monthHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($i == $month)
$monthHtml .= '';
else
$monthHtml .= '';
}
$data ['aiList'] = $aiList;
$dateHtml = "";
$now = date ( "Y" );
for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {
if ($YEARD <= $now) {
$dateHtml .= '';
}
}
$data ['dateHtml'] = $dateHtml;
$data ['monthHtml'] = $monthHtml;
$data ['year'] = $year;
$data ['month'] = $month;
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/companyMonthCollectDetail", $data );
}
function staffCollectDetail() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
$staffname = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : "";
$pcid = $this->get_args ( 'category' ) ? $this->get_args ( 'category' ) : "";
if (! $staffname) {
$staffname = isset ( $this->params ['staffname'] ) ? $this->params ['staffname'] : "";
$staffname = urldecode ( $staffname );
}
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( "receiptDetail" );
$receiptDetail = new receiptDetail ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
Doo::loadModel ( 'statistics' );
$statistics = new statistics ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( "receiptAuthorityManage" );
$receiptAuthorityManage = new receiptAuthorityManage ();
$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );
$cidList = array ();
foreach ( $imcStaff as $key => $value ) {
array_push ( $cidList, $value ['cid'] );
}
$cidString = implode ( ',', $cidList );
$staffList = $staff->find ( array (
'where' => ' cid in (' . $cidString . ')',
'asArray' => true
) );
$stHtml = '';
$stTitle = "";
$staffId = 0;
$cid = 0;
$ocid = 0;
foreach ( $staffList as $value ) {
if ($value ['username'] == $staffname && $value ['username'] != 'admin') {
$stTitle = $value ['category'] . '-' . $value ['username'];
$staffId = $value ['sid'];
$cid = $value ['cid'];
$ocid = $value ['cid'];
if (! empty ( $value ['othercid'] ))
$cid = $value ['cid'] . ',' . $value ['othercid'];
$stHtml .= '';
} elseif ($value ['username'] != 'admin')
$stHtml .= '';
}
$data ['lCategoryHtml'] = $lCategory->find ( array (
'where' => 'cid in(' . $cid . ')',
'asArray' => true
) );
if (empty ( $pcid ))
$pcid = $ocid;
$data ['ocid'] = $pcid;
$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollectDetail_" . $year . "_" . $staffId . ".htmls";
$this->showCache ( $path );
//
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year,
'groupby' => 'item,Month(pastDate),itemCategory',
'asArray' => true
) );
// echo 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year;
// print_r($receiptCollectList);
$accountList = $accountItem->find ( array (
'asArray' => true
) );
// create CollectDetail HTML
$collectHtml = array ();
foreach ( $accountList as $key => $value ) {
$html = "";
$asum = 0;
for($i = 1; $i <= 12; $i ++) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {
if ($v ['item'] == '可自加费用') {
// echo $v ['item'].'/'.$v ['price'].'/'.$v ['month'].$v ['itemCategory'].'
';
}
$asum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
if ($falg)
$html .= '- | ';
}
$html .= '' . $asum . ' | ';
$collectHtml [$value ['category']] [$value ['name']] = $html;
}
$data ['collectHtml'] = $collectHtml;
// print_r($collectHtml);
// create Adjustment price html
$receiptCollectList = $receiptDetail->find ( array (
'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month',
'where' => 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year,
'groupby' => 'itemCategory,Month(pastDate)',
'asArray' => true
) );
$adjustment = array ();
$collectArray = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'培训班费用' => array (),
'内部培训费用'=>array(),
'其他' => array ()
);
$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );
array_push ( $collectArray ['日常相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );
array_push ( $collectArray ['差旅相关费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );
array_push ( $collectArray ['培训班费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '内部培训费用', 'b' );
array_push ( $collectArray ['内部培训费用'], $collectHtml );
$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );
array_push ( $collectArray ['其他'], $collectHtml );
$data ['collectArray'] = $collectArray;
$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );
array_push ( $adjustment, $collectHtml );
$data ['adjustment'] = $adjustment;
// total price html
$collectHtml = "";
$total = 0;
for($i = 1; $i <= 12; $i ++) {
$sumPrice = 0;
foreach ( $receiptCollectList as $key => $value ) {
if ($value ['month'] == $i) {
$sumPrice += $value ['price'];
}
}
if ($sumPrice == 0)
$collectHtml .= '- | ';
else
$collectHtml .= '¥' . $sumPrice . ' | ';
$total += $sumPrice;
}
$collectHtml .= '¥' . $total . ' | ';
// statistics html
$stList = $statistics->statisticsByYear ( $year, $staffId );
if (empty ( $stList ))
$stList = array (
'rePrice' => 0,
'agPrice' => 0
);
$data ['stList'] = array (
'rePrice' => $stList ['rePrice'],
'agPrice' => $stList ['agPrice'],
'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'])
);
$data ['totalPrice'] = $collectHtml;
$data ['totalYear'] = $total;
$data ['stHtml'] = $stHtml;
$data ['year'] = $year;
$data ['stTitle'] = $stTitle;
$data ['staffname'] = urlencode ( $staffname );
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'companyCategoryCollect';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
if ($year < date ( "Y" )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $staffId . ' and (status=2 or status=4) and Year(date) =' . $year,
'asArray' => true
) );
if (empty ( $receiptList )) { // generated files
ob_start ();
$this->render ( "/admin/saeaStaffCollectDetail", $data );
$this->cacheFile ( $path );
die ();
}
}
$this->render ( "/admin/saeaStaffCollectDetail", $data );
}
function BUGFLAG() {
$status = isset ( $this->params ['status'] ) && is_numeric ( $this->params ['status'] ) ? $this->params ['status'] : 0;
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );
$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;
if (empty ( $status ))
$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
$page_size = 12;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$vidList = array ();
$button = 0;
Doo::loadModel ( 'verify' );
$verify = new verify ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
$dateCondition = " and Year(date) =" . $year;
if (! empty ( $month ))
$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;
$categoryList = $Lcategory->find ( array (
'asArray' => true
) );
$staffList = $staff->find ( array (
'where' => 'cid=' . $cid,
'asArray' => true
) );
$cateCondition = "";
$staffCondition = "";
$approvalCondition = "";
if (! empty ( $cid ))
$cateCondition = ' and cid=' . $cid;
if (! empty ( $sid )) {
$staffCondition = ' and staff=' . $sid;
$cateCondition = "";
}
$approvalCondition = " and status=" . $status;
if ($status == 2) {
// 查找角色审批人
$approvalCondition = ' and status=' . $status . ' and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';
}
if ($status == 5) { // and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%"
$approvalCondition = ' and status=2 ';
}
if ($status == 1) {
$approvalCondition = ' and (status=' . $status . ' or status=6) ';
}
// nowStaff like "%'.$this->staff[0]['sid'].'%"
$pageinfo ['page'] = array (
'previous' => ''
);
if ($status == 0) {
$pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . ' and status!=5', $page, $page_size, "approvalExpenses", "", "" );
$receiptList = $receipt->find ( array (
'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition,
'limit' => $pageinfo ['lower'] . ',' . $page_size,
'desc' => 'rid',
'asArray' => true
) );
// echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';
} else
$receiptList = $receipt->find ( array (
'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition,
'desc' => 'rid',
'asArray' => true
) );
$rLRes = $receipt->find ( array (
'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )' . $cateCondition . $staffCondition,
'desc' => 'rid',
'asArray' => true
) );
// echo '1 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';
// print_r($pageinfo);
$Locate = 0;
foreach ( $receiptList as $key => $value ) {
$receiptList [$key] ['Locate'] = $Locate;
$Locate ++;
$receiptList [$key] ['reviseDetail'] = array ();
if (! empty ( $value ['reviseDetail'] ))
$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
$categoryDetil = $Lcategory->getOne ( array (
'where' => 'cid=' . $value ['cid'],
'asArray' => true
) );
$receiptList [$key] ['category'] = $categoryDetil ['title'];
$verifyList = $verify->getOne ( array (
'where' => 'vid=' . $value ['verify'],
'asArray' => true
) );
$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
$verifyStaff = json_decode ( $value ['verifyStaff'], true );
foreach ( $verifyList as $k => $v ) {
// init verifyStaff
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
$verifyList [$k] ['status'] = "";
if (empty ( $verifyStaff )) {
$verifyList [$k] ['date'] = "";
$verifyList [$k] ['opinion'] = "";
if ($v [0] == $this->staff [0] ['sid']) {
$verifyList [$k] ['status'] = 4;
$button = 4;
}
} else {
$flag = true;
foreach ( $verifyStaff as $m => $u ) {
if ($v [0] == $m) {
$verifyList [$k] ['date'] = $u ['date'];
$verifyList [$k] ['opinion'] = $u ['opinion'];
$verifyList [$k] ['status'] = $u ['status'];
$flag = false;
break;
}
// elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;}
// if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;}
// if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;}
}
if ($flag) { // 检测可编辑
if ($v [0] == $this->staff [0] ['sid']) {
$verifyList [$k] ['status'] = 4;
$button = 4;
}
}
}
}
$receiptList [$key] ['verifyList'] = $verifyList;
$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (
'where' => 'sid=' . $value ['staff'],
'asArray' => true
) );
$receiptList [$key] ['button'] = $button;
$receiptList [$key] ['nowStaffArray'] = explode ( ',', $value ['nowStaff'] );
}
// print_r($receiptList);die;
// $data['verifyDetail']=$verifyDetail;
$mothHtml = "";
for($i = 1; $i <= 12; $i ++) {
if ($month == $i)
$mothHtml .= '';
else
$mothHtml .= '';
}
$data ['mothHtml'] = $mothHtml;
$data ['page'] = $pageinfo;
$data ['receiptList'] = $receiptList;
$data ['receiptApprovalCount'] = count ( $rLRes );
$data ['status'] = $status;
$data ['year'] = $year;
$data ['categoryList'] = $categoryList;
$data ['staffList'] = $staffList;
$data ['cid'] = $cid;
$data ['sid'] = $sid;
// print_r($receiptList);
$data ['memu'] = "receipt";
$data ['staff'] = $this->staff;
$data ['receiptMemu'] = 'approvalExpenses';
$data ['verifyId'] = $this->verifyId;
$data ['executeId'] = $this->executeId;
$this->render ( "/admin/FALG", $data );
}
function ajaxGetReceiptOrder() {
$receiptOrder = $this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) : "";
if (! empty ( $receiptOrder )) {
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$receiptInfo = $receipt->getOne ( array (
'where' => ' receiptOrder="' . $receiptOrder . '"',
'asArray' => true
) );
$verifyStaff = json_decode ( $receiptInfo ['verifyStaff'], true );
$html = '
单号:' . $receiptOrder . ' | 金额:¥' . $receiptInfo ['sum'] . ' |
';
foreach ( $verifyStaff as $key => $value ) {
$staffInfo = $staff->getOne ( array (
'select' => 'username',
'where' => ' sid="' . $key . '"',
'asArray' => true
) );
$html .= '' . $staffInfo ['username'] . ' | ' . $value ['opinion'] . ' |
';
}
$html .= '
';
echo json_encode ( array (
'status' => 1,
'receiptHtml' => $html
) );
die ();
}
echo json_encode ( array (
'status' => 2,
'receiptHtml' => ''
) );
die ();
}
function _getMonthCollectDetail($receiptCollectList,$aiList) {
if (! empty ( $receiptCollectList )) {
$receiptL = array (
'日常相关费用' => array (),
'差旅相关费用' => array (),
'内部培训费用'=>array(),
'培训班费用' => array (),
'其他' => array ()
);
$html = "";
$psum = 0;
foreach ( $aiList[$this->AGENCY] as $value ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '日常相关费用') {
if ($v ['item'] == $value['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['日常相关费用'] = $psum . $html;
/* ----------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->TRAVEL] as $value ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '差旅相关费用') {
if ($v ['item'] == $value['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['差旅相关费用'] = $psum . $html;
/* ----------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->INTTRAIN] as $value ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '内部培训费用') {
if ($v ['item'] == $value['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['内部培训费用'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->TRAIN] as $value ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '培训班费用') {
if ($v ['item'] == $value['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['培训班费用'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $aiList[$this->OTHER] as $value ) {
$falg = true;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '其他') {
if ($v ['item'] == $value['name']) {
$psum += $v ['price'];
$html .= '' . $v ['price'] . ' | ';
$falg = false;
break;
}
}
}
if ($falg)
$html .= '- | ';
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['其他'] = $psum . $html;
/* ------------------------------------- */
$html = "";
$psum = 0;
foreach ( $receiptCollectList as $v ) {
if ($v ['itemCategory'] == '报销金额调整') {
if (! empty ( $v ['price'] ))
$psum += $v ['price'];
}
}
if (! empty ( $psum ))
$psum = '' . $psum . ' | ';
else
$psum = '- | ';
$receiptL ['报销金额调整'] = $psum . $html;
} else {
$receiptL [$this->AGENCY] ='- | ';
foreach ( $aiList[$this->AGENCY] as $va ) {
$receiptL [$this->AGENCY] .='- | ';
}
$receiptL [$this->TRAVEL] ='- | ';
foreach ( $aiList[$this->TRAVEL] as $va ) {
$receiptL [$this->TRAVEL] .='- | ';
}
$receiptL [$this->INTTRAIN] ='- | ';
foreach ( $aiList[$this->INTTRAIN] as $va ) {
$receiptL [$this->INTTRAIN] .='- | ';
}
$receiptL [$this->TRAIN] ='- | ';
foreach ( $aiList[$this->TRAIN] as $va ) {
$receiptL [$this->TRAIN] .='- | ';
}
$receiptL [$this->OTHER] ='- | ';
foreach ( $aiList[$this->OTHER] as $va ) {
$receiptL [$this->OTHER] .='- | ';
}
$receiptL ['报销金额调整'] = '- | ';
}
return $receiptL;
}
function eMail() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
Doo::loadModel ( "verify" );
$verify = new verify ();
$staffList = $staff->find ( array (
'asArray' => true
) );
foreach ( $staffList as $key => $value ) {
if ($value ['username'] != 'admin') {
// 提交人
$receiptList = $receipt->find ( array (
'where' => 'staff=' . $value ['sid'] . ' and status=1 and notice=0',
'asArray' => true
) );
if (! empty ( $receiptList )) {
$html = '
CLD 邮件提醒
|
Hi,' . $value ['username'] . '
|
美好的一天从今天开始,您需要关注以下事项: |
|
以下报销单完成了审批,等着收款吧:
| ';
foreach ( $receiptList as $k => $v ) {
$category = $Lcategory->getOne ( array (
'where' => 'cid=' . $v ['cid'],
'asArray' => true
) );
$html .= '
|
' . $v ['receiptOrder'] . ' |
' . $category ['title'] . ' |
¥' . $v ['sum'] . '元 |
' . $v ['date'] . ' |
';
}
$html .= ' | |
立即登录 |
|
';
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 .= '
|
' . $l ['receiptOrder'] . ' |
' . $category ['title'] . '-' . $staffDetile ['username'] . ' |
¥' . $l ['sum'] . '元 |
' . $l ['date'] . ' |
';
}
}
$html .= '
| |
立即登录 |
|
';
if ((filter_var ( $value ['email'], FILTER_VALIDATE_EMAIL )) && (! empty ( $verifyList )) && (! empty ( $receiptList ))) {
$this->SMail ( $value ['email'], "CLD提醒您,有需要你审批的报销单", $html );
// $receipt=new receipt();
// $receipt->notice=1;
// $receipt->update(array('where'=>'staff='.$value['sid'].' and status=1 and notice=0'));
}
}
}
}
function setWXMsg($rid, $type) {
Doo::loadModel ( "receipt" );
$receipt = new receipt ();
$receiptDetail = $receipt->getOne ( array (
'where' => 'rid=' . $rid,
'asArray' => true
) );
if (! empty ( $receiptDetail )) {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$staffmsg = $staff->getOne ( array (
'where' => "sid='" . $receiptDetail ['staff'] . "'",
'asArray' => TRUE
) );
if (! empty ( $staffmsg ['wxid'] )) {
require_once (SITE_PATH . '/protected/class/client.php');
$client = new client ( 'http://m.cld.smartcost.com.cn/' );
$user = $staffmsg ['wxid'];
$receiptName = '';
$msg = '';
switch ($receiptDetail ['Rtype']) {
case 0 :
$receiptName = '报销';
break;
case 1 :
$receiptName = '借款';
break;
case 2 :
$receiptName = '对公汇款';
break;
}
switch ($type) {
case 1 :
$msg = '太好了,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已同意支付。';
break;
case 2 :
$msg = '注意,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被撤回,请及时处理。';
break;
case 3 :
$msg = '很遗憾,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被终止。';
break;
}
// $result = $client->SendMsg ( $user, $msg, 'text' );
}
}
}
// Email发送函数
function SMail($toemail, $subject, $contents) {
Doo::loadClass ( 'class.phpmailer' );
$mail = new PHPMailer ();
$mail->From = "postmaster@support.zhzdwk.com"; // 发送邮箱全名
$mail->FromName = "=?UTF-8?B?" . base64_encode ( "CLD" ) . "?="; // 发送人昵称
$mail->Username = "postmaster@websupport.sendcloud.org"; // 用户名
$mail->Password = "cDO1GjtY1seH"; // 密码
$mail->CharSet = "UTF8";
$mail->SMTPAuth = true;
$mail->Host = "smtpcloud.sohu.com"; // 邮件主机的smtp地址
$mail->Mailer = "smtp";
$mail->Port = 25;
$mail->Subject = "=?UTF-8?B?" . base64_encode ( $subject ) . "?=";
$mail->MsgHTML ( $contents );
$mail->AddAddress ( $toemail );
$mail->CharSet = "UTF-8";
return $mail->Send ();
}
function h5Upload() {
$POST_MAX_SIZE = ini_get ( 'post_max_size' );
$unit = strtoupper ( substr ( $POST_MAX_SIZE, - 1 ) );
$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));
if (( int ) $_SERVER ['CONTENT_LENGTH'] > $multiplier * ( int ) $POST_MAX_SIZE && $POST_MAX_SIZE) {
header ( "HTTP/1.1 500 Internal Server Error" );
echo "POST exceeded maximum allowed size.";
exit ( 0 );
}
// Settings
$save_path = DOO::conf ()->SITE_PATH . "upload/swfupload/"; // The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)
$upload_name = "Filedata";
$max_file_size_in_bytes = 2147483647; // 2GB in bytes
$extension_whitelist = array (
"doc",
"txt",
"jpg",
"gif",
"png"
); // Allowed file extensions
$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)
// Other variables
$MAX_FILENAME_LENGTH = 260;
$file_name = "";
$file_extension = "";
$uploadErrors = array (
0 => "文件上传成功",
1 => "上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置",
2 => "上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置",
3 => "上传的文件仅为部分文件",
4 => "没有文件上传",
6 => "缺少临时文件夹"
);
$nk = time ();
$file_name = $nk . '.' . $this->_GetFileEXT ( $_FILES [$upload_name] ['name'] ); // preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
if (! @move_uploaded_file ( $_FILES [$upload_name] ["tmp_name"], $save_path . $file_name )) {
echo "文件无法保存.";
exit ( 0 );
}
// Return output to the browser (only supported by SWFUpload for Flash Player 9)
echo json_encode ( array (
'filename' => $file_name,
'id' => $nk
) );
exit ( 0 );
}
function swfupload() {
$POST_MAX_SIZE = ini_get ( 'post_max_size' );
$unit = strtoupper ( substr ( $POST_MAX_SIZE, - 1 ) );
$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));
if (( int ) $_SERVER ['CONTENT_LENGTH'] > $multiplier * ( int ) $POST_MAX_SIZE && $POST_MAX_SIZE) {
header ( "HTTP/1.1 500 Internal Server Error" );
echo "POST exceeded maximum allowed size.";
exit ( 0 );
}
// Settings
$save_path = DOO::conf ()->SITE_PATH . "upload/swfupload/"; // The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)
$upload_name = "Filedata";
$max_file_size_in_bytes = 2147483647; // 2GB in bytes
$extension_whitelist = array (
"doc",
"txt",
"jpg",
"gif",
"png"
); // Allowed file extensions
$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)
// Other variables
$MAX_FILENAME_LENGTH = 260;
$file_name = "";
$file_extension = "";
$uploadErrors = array (
0 => "文件上传成功",
1 => "上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置",
2 => "上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置",
3 => "上传的文件仅为部分文件",
4 => "没有文件上传",
6 => "缺少临时文件夹"
);
$nk = time ();
$file_name = $nk . '.' . $this->_GetFileEXT ( $_FILES [$upload_name] ['name'] ); // preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
if (! @move_uploaded_file ( $_FILES [$upload_name] ["tmp_name"], $save_path . $file_name )) {
echo "文件无法保存.";
exit ( 0 );
}
// Return output to the browser (only supported by SWFUpload for Flash Player 9)
echo json_encode ( array (
'filename' => $file_name,
'id' => $nk
) );
exit ( 0 );
}
function _GetFileEXT($filename) {
$pics = explode ( '.', $filename );
$num = count ( $pics );
return $pics [$num - 1];
}
/**
* 获取get或者POST值
* @param string $name 属性名称
* @return fixed 值
*/
function get_args($name) {
if (isset ( $_GET [$name] )) {
if (is_array ( $_GET [$name] ))
return $_GET [$name];
else
return addslashes ( $_GET [$name] );
} elseif (isset ( $_POST [$name] )) {
if (is_array ( $_POST [$name] ))
return $_POST [$name];
else
return addslashes ( $_POST [$name] );
} else
return false;
}
function num_to_rmb($num) {
$c1 = "零壹贰叁肆伍陆柒捌玖";
$c2 = "分角元拾佰仟万拾佰仟亿";
// 精确到分后面就不要了,所以只留两个小数位
$num = round ( $num, 2 );
// 将数字转化为整数
$num = $num * 100;
if (strlen ( $num ) > 10) {
return "金额太大,请检查";
}
$i = 0;
$c = "";
while ( 1 ) {
if ($i == 0) {
// 获取最后一位数字
$n = substr ( $num, strlen ( $num ) - 1, 1 );
} else {
$n = $num % 10;
}
// 每次将最后一位数字转化为中文
$p1 = substr ( $c1, 3 * $n, 3 );
$p2 = substr ( $c2, 3 * $i, 3 );
if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
$c = $p1 . $p2 . $c;
} else {
$c = $p1 . $c;
}
$i = $i + 1;
// 去掉数字最后一位了
$num = $num / 10;
// echo $num.'';
$num = ( int ) $num;
// $num =floor($num);
// $num = round ( $num, 0, PHP_ROUND_HALF_DOWN );
// echo $num.'';
// 结束循环
if ($num == 0) {
break;
}
}
// echo $c.'';
$j = 0;
$slen = strlen ( $c );
while ( $j < $slen ) {
// utf8一个汉字相当3个字符
$m = substr ( $c, $j, 6 );
// 处理数字中很多0的情况,每次循环去掉一个汉字“零”
if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
$left = substr ( $c, 0, $j );
$right = substr ( $c, $j + 3 );
$c = $left . $right;
$j = $j - 3;
$slen = $slen - 3;
}
$j = $j + 3;
}
// 这个是为了去掉类似23.0中最后一个“零”字
if (substr ( $c, strlen ( $c ) - 3, 3 ) == '零') {
$c = substr ( $c, 0, strlen ( $c ) - 3 );
}
// 将处理的汉字加上“整”
if (empty ( $c )) {
return "零元整";
} else {
return $c . "整";
}
}
/**
* 获得分页数据
* @param unknown_type $table
* @param unknown_type $condition
* @param unknown_type $on_page
* @param unknown_type $page_size
*/
function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page") {
$page_c = "";
$page ['previous'] = $this->get_previous ( $on_page );
$page ['on_page'] = $on_page;
$total_count = $this->get_table_count ( $table, $condition );
$total = intval ( $total_count / $page_size );
$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;
$page ['total_data'] = $total_count;
$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;
$i = 1;
$page_max = 1;
$page_width = 3;
if ($on_page >= $page_width) {
$page_max = intval ( $on_page / $page_width ) + 1;
$i = intval ( $on_page / $page_width ) * $page_width - 1;
}
for(; $i <= $page ['total_page']; $i ++) {
if ($i == $on_page)
$page_c .= '' . $i . '';
else
$page_c .= '' . $i . '';
if ($i == ($page_width * $page_max))
break;
}
$page ['page'] = $page_c;
$page ['lower'] = (-- $on_page) * $page_size;
return $page;
}
/**
* 获取总页数
* @param unknown_type $table
* @param unknown_type $condition
*/
public function get_table_count($table = "", $condition = "") {
// $sql = "select count(*) as count from " . $table . " where 1 " . $condition;
$sql = "select count(*) as count from " . $table . " where 1 " . $condition;
// echo $sql;die;
$query = Doo::db ()->query ( $sql );
$result = $query->fetch ();
return $result ['count'];
}
/**
* 获取上一页
* @param unknown_type $on_page
*/
function get_previous($on_page = 1) {
return $on_page != 0 ? $on_page - 1 : $on_page;
}
function _getReceiptTrainPayment($invoiceTrainId,$trainLoanRid,$rid){
// 收入合计
Doo::loadModel ( 'invoiceTraining' );
$invoiceTraining = new invoiceTraining ();
Doo::loadModel ( 'receipt' );
$receipt = new receipt ();
$invoiceTrainingDetail = array (
'invoiceArriveAmount' => '0.00',
'RIAmount' => '0.00',
'invoiceTotalAmount' => '0.00',
'invoiceCompanyAmount' => '0.00',
'invoiceArriveAmountM'=>'0.00',
'invoiceCompanyAmountM'=>'0.00'
);
if ($invoiceTrainId != 0) {
$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $invoiceTrainId );
}
$invoiceArriveAmount = $RIAmount = 0;
if (! empty ( $invoiceTrainingDetail )) {
$invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount'];
$RIAmount = $invoiceTrainingDetail ['RIAmount'];
}
// 备用金
$sum = 0;
if (! empty ( $trainLoanRid )) {
$receiptLoanList = $receipt->getReceiptInRid ( $trainLoanRid );
foreach ($receiptLoanList as $key=>$value){
$sum+=$value['sum'];
}
// $receiptLoanDetailBak = $receipt->getReceiptByRid ( $trainLoanRid );
// $sum = $receiptLoanDetailBak ['sum'];
}
// 支出项金额详情
// 项目金额合计
Doo::loadModel ( 'RItem' );
$RItem = new RItem ();
Doo::loadModel ( 'accountItem' );
$accountItem = new accountItem ();
// 讲师获得
Doo::loadModel ( 'RILecturer' );
$RILecturer = new RILecturer ();
$RItemList = $RItem->getRItemByRid ($rid );
$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );
// 支出项金额详情
$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount );
$categoryActualExpenditure = $aiData ['total'] - $aiData ['categoryActualExpenditure'];
$payment = $sum + $RIAmount - $categoryActualExpenditure;
return $payment;
}
}
?>
' . $value ['1'] . '' . $value ['date'] . ''; if (isset ( $value ['rolename'] )) $htmlLoan .= $value ['rolename']; $htmlLoan .= '
' . $value ['opinion'] . '