TEMPLATE_GLOBAL_TAGS = array (
'isTimeTR',
'isInvoiceNew',
'isHRNew',
'upper',
'tofloat',
'sample_with_args',
'debug',
'url',
'url2',
'function_deny',
'isset',
'empty',
'make_date',
'inarray',
'getGlobals',
'countArray',
'isInvoiceMoldShow',
'isReceiptAuthorityShow',
'isInvoiceAggregateCompanyShow',
'forMatAccess',
'isShowMenu',
'isStaffCompleteMsg',
'isInvoiceCategoryShow',
'isReceiptTrainShow',
'isPaymentsShow',
'isUrlEncode',
'isGHNews',
'numberFormat'
);
function numberFormat($a, $b) {
return number_format ( $a, $b );
}
function isGHNews($staffGH) {
$count=file_get_contents ( 'http://gh.cld.smartcost.com.cn/api/gh/receiptNews?staffId=' . $_COOKIE ["staff"] );
return $count;
// $BuildUrl = 'http://gh.cld.smartcost.com.cn';
// // $url = $BuildUrl. '/mcm/authorize/receiptNewsTip?staffGH='. urlencode($staffGH);
// // echo $url;
// $url = $BuildUrl . '/mcm/authorize/receiptNewsTip';
// $data = array (
// "staffGH" => $_COOKIE ['staffGH']
// );
// $result = json_decode ( curl_request ( $url, $data ), true );
// return $result ['count'];
// print_r($result);
// $isNews=false;
// if($result['falg'])
// $isNews=true;
// return $isNews;
}
function isUrlEncode($url) {
Doo::loadClass ( 'auth' );
$auth = new auth ();
$staffGH = $auth->yundanran_auth ( $url, 'DECODE', "GH" );
$staffGH = $auth->yundanran_auth ( $staffGH, '', "GH" );
return urlencode ( $staffGH );
}
function isStaffCompleteMsg() {
// 检测用户信息完成
Doo::loadModel ( 'staff' );
$staff = new staff ();
$isStaffCompleteMsg = false;
if (! isset ( $_COOKIE ["staff"] ))
return false;
$detail = $staff->checkStaffInfoIsComplete ( $_COOKIE ["staff"] );
if (! empty ( $detail ))
$isStaffCompleteMsg = true;
return $isStaffCompleteMsg;
}
function forMatAccess($access = array()) {
$html = '';
$accessMsg = array (
'INFORMATION' => '信息中心',
'DIRECTORIES' => '通讯录',
'LOCK' => '在线锁库',
'RECEIPTS' => '报销单',
'INVOICE' => '发票申请',
'HR' => '人资管理',
'BUILD' => '建筑计价'
);
if (empty ( $access ))
return '';
foreach ( $access as $value ) {
$html .= $accessMsg [$value] . ' ';
}
return $html;
}
function countArray($list = array(), $count = 0) {
return count ( $list ) + $count;
}
function isTimeTR($day = 3, $cTime) {
$flag = false;
$thenTime = time ();
$futureTime = strtotime ( '+' . $day . ' day', strtotime ( $cTime ) );
if ($thenTime < $futureTime)
$flag = true;
return $flag;
}
function isShowMenu($menu = '') {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$st = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$cldAccess = array ();
if (! empty ( $st ['cldAccess'] ))
$cldAccess = json_decode ( $st ['cldAccess'], true );
Doo::loadModel ( "staffManage" );
$staffManage = new staffManage ();
$smList = $staffManage->getInvoiceCMByStaff ( $_COOKIE ["staff"] );
// 是否有登陆者需要审批的员工
$list = array ();
if ($menu == 'HR') {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$uid = $XDeode->decode ( $_COOKIE ["staff"] );
$list = $staff->find ( array (
'asc' => 'sid',
'where' => "(pendStatus= '2' or pendStatus='3' or pendStatus='5' or pendStatus='6') and ( pendingApprovalsLeave='" . $uid . "' or pendingApprovals='" . $uid . "') ",
'asArray' => TRUE
) );
}
if (in_array ( $menu, $cldAccess ) || ($st ['sid'] == superHR && $menu == 'HR') || (count ( $list ) > 0 && $menu == 'HR')) {
return true;
}
if (empty ( $cldAccess )) {
return false;
}
return false;
}
function isHRNew() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$uid = $XDeode->decode ( $_COOKIE ["staff"] );
$list = $staff->find ( array (
'asc' => 'sid',
'where' => "(pendStatus= '2' or pendStatus='3' or pendStatus='5' or pendStatus='6') and ( pendingApprovalsLeave='" . $uid . "' or pendingApprovals='" . $uid . "') ",
'asArray' => TRUE
) );
return count ( $list );
}
function isInvoiceNew($type = "GLOBAL") {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( "invoiceManage" );
$execute = new invoiceManage ();
$st = $staff->getUserByIdList ( $_COOKIE ["staff"] );
$exeGlobal = $execute->getInvoiceByStaff ( $st [0] ['sid'] );
// 我的发票待处理
$pendingInvoice = $invoice->getOne ( array ( // or (status=2 and printStatus=1 and untreadStatus=0 ) or (status=2 and printStatus=1 and untreadStatus=2 )
'where' => "(status=3 or status=4 ) and isDelete=0 and sid=" . $st [0] ['sid'],
'desc' => 'iid',
'asArray' => TRUE
) );
// 我的收款待入账
// $myClaim = $invoiceReceivables->getOne ( array (
// 'where' => " receivablesStaff like '" . $st[0]['sid'] . "-%' and receivablesCategory like '" . $st [0] ['cid'] . ":%' and bindStatus=0",
// 'desc' => 'irid',
// 'asArray' => TRUE
// ) );
// 发票审批
$approval = $invoice->getOne ( array (
'where' => 'status=1 and pendingApprovals=' . $st [0] ['sid'],
'desc' => 'iid',
'asArray' => true
) );
// 发票邮寄
$post = $invoice->getOne ( array (
'where' => "postStatus=0 and printStatus=1 and isDelete=0 and doPost=1 and status=2",
'asArray' => TRUE
) );
// 发票打印
$print = $invoice->getOne ( array (
'where' => "status=2 and printStatus=0 and untreadStatus=0 and moldManage like '%[\"" . $st [0] ['sid'] . "\",%'",
'desc' => 'iid',
'asArray' => TRUE
) );
// 发票退票 printStatus=1 and
$untread = $invoice->getOne ( array (
'where' => " untreadStatus=1 and status=2 ",
'asArray' => TRUE
) );
$new = array (
'GLOBAL' => FALSE,
'pendingInvoice' => FALSE,
'myClaim' => FALSE,
'approval' => FALSE,
'post' => FALSE,
'print' => FALSE,
'untread' => FALSE
);
// || ! empty ( $myClaim )
if (! empty ( $exeGlobal )) {
if (! empty ( $pendingInvoice ))
$new ['GLOBAL'] = TRUE;
foreach ( $exeGlobal as $value ) {
if ($value ['mold'] == '发票审批') {
if (! empty ( $approval )) {
$new ['GLOBAL'] = TRUE;
break;
}
}
if ($value ['mold'] == '发票打印') {
if (! empty ( $print )) {
$new ['GLOBAL'] = TRUE;
break;
}
}
if ($value ['mold'] == '发票邮寄') {
if (! empty ( $post )) {
$new ['GLOBAL'] = TRUE;
break;
}
}
if ($value ['mold'] == '发票退票') {
if (! empty ( $untread )) {
$new ['GLOBAL'] = TRUE;
break;
}
}
}
// print_r($exeGlobal);die;
// if (! empty ( $pendingInvoice ) || ! empty ( $approval ) || ! empty ( $post ) || ! empty ( $print ) || ! empty ( $untread ))
// $new ['GLOBAL'] = TRUE;
} else {
if (! empty ( $pendingInvoice ))
$new ['GLOBAL'] = TRUE;
}
if (! empty ( $pendingInvoice ))
$new ['pendingInvoice'] = TRUE;
if (! empty ( $myClaim ))
$new ['myClaim'] = TRUE;
if (! empty ( $approval ))
$new ['approval'] = TRUE;
if (! empty ( $post ))
$new ['post'] = TRUE;
if (! empty ( $print ))
$new ['print'] = TRUE;
if (! empty ( $untread ))
$new ['untread'] = TRUE;
return $new [$type];
}
/**
* 是否有查看汇总的权限
* @param unknown $sid
*/
function isInvoiceCategoryShow($sid) {
Doo::loadModel ( "invoiceCategoryManage" );
$invoiceCategoryManage = new invoiceCategoryManage ();
$icm = $invoiceCategoryManage->getInvoiceCMByStaff ( $sid );
if (! empty ( $icm ))
return true;
else
return false;
}
/**
* 是否有查看培训班结算营收的权限
* @param unknown $sid
*/
function isReceiptTrainShow($sid) {
Doo::loadModel ( "receiptTrainManage" );
$invoiceCategoryManage = new receiptTrainManage ();
$icm = $invoiceCategoryManage->getInvoiceCMByStaff ( $sid );
if (! empty ( $icm ))
return true;
else
return false;
}
/**
* 是否有查看日常收支的权限
*/
function isPaymentsShow($sid) {
Doo::loadModel ( "execute" );
$execute = new execute ();
$list = $execute->find ( array (
'where' => '(staff like \'%["' . $sid . '%\' ) and mold="日常收支"',
'asArray' => true
) );
if (empty ( $list )) {
return false;
} else {
return true;
}
}
/**
* 是否有查看应收款的权限
* @param unknown $sid
*/
function isInvoiceAggregateCompanyShow($sid) {
Doo::loadModel ( "invoiceCompanyManage" );
$receiptAuthorityManage = new invoiceCompanyManage ();
$icm = $receiptAuthorityManage->getInvoiceCMByStaff ( $sid );
if (! empty ( $icm ))
return true;
else
return false;
}
/**
* 是否有查看报销单汇总的权限
* @param unknown $sid
*/
function isReceiptAuthorityShow($sid) {
Doo::loadModel ( "receiptAuthorityManage" );
$receiptAuthorityManage = new receiptAuthorityManage ();
$icm = $receiptAuthorityManage->getInvoiceCMByStaff ( $sid );
if (! empty ( $icm ))
return true;
else
return false;
}
function isInvoiceCompanyShow($sid) {
}
/**
* 判断发票的审批权限
* @param number $sid 用户ID
* @param string $mold 项目类型
* @return boolean
*/
function isInvoiceMoldShow($sid = 0, $mold = '') {
if (! empty ( $sid ) && ! empty ( $mold )) {
Doo::loadModel ( "invoiceManage" );
$invoiceManage = new invoiceManage ();
$imList = $invoiceManage->getInvoiceByMold ( $mold );
$list = array ();
foreach ( $imList ['staffList'] as $k => $v ) {
array_push ( $list, $v [0] );
}
$fileInvoice = file_get_contents ( "protected/config/invoice/invoice.ini" );
$fileInvoice = json_decode ( $fileInvoice, true );
$delIM = array ();
if (isset ( $fileInvoice [$mold] ))
$delIM = explode ( ',', $fileInvoice [$mold] );
foreach ( $delIM as $key => $value ) {
if (! empty ( $value ))
array_push ( $list, $value );
}
$list = array_unique ( $list );
return inarray ( $sid, $list );
} else
return false;
}
function getGlobals($var) {
if ($var == 'NEW')
getReceiptCount ();
elseif ($var == 'NEW2') {
getExeCount ();
}
// echo $GLOBALS[$var].'/'.$var.'
';
return $GLOBALS [$var];
// if (! empty ( $GLOBALS [$var] )) {
// }else{
// $count=file_get_contents ( 'http://gh.cld.smartcost.com.cn/api/gh/receiptNews?staffId=' . $_COOKIE ["staff"] );
// return $count;
// }
}
function inarray($v1, $v2) {
return in_array ( $v1, $v2 );
}
function make_date() {
return date ( "Y-m" );
}
function upper($str) {
return strtoupper ( $str );
}
function tofloat($str) {
return sprintf ( "%.2f", $str );
}
function sample_with_args($str, $prefix) {
return $str . ' with args: ' . $prefix;
}
function debug($var) {
if (! empty ( $var )) {
echo '
'; print_r ( $var ); echo ''; } } // This will be called when a function NOT Registered is used in IF or ElseIF statment function function_deny($var = null) { echo 'Function denied in IF or ElseIF statement!'; exit (); } // Build URL based on route id function url($id, $param = null, $addRootUrl = false) { Doo::loadHelper ( 'DooUrlBuilder' ); // param pass in as string with format // 'param1=>this_is_my_value, param2=>something_here' if ($param != null) { $param = explode ( ', ', $param ); $param2 = null; foreach ( $param as $p ) { $splited = explode ( '=>', $p ); $param2 [$splited [0]] = $splited [1]; } return DooUrlBuilder::url ( $id, $param2, $addRootUrl ); } return DooUrlBuilder::url ( $id, null, $addRootUrl ); } // Build URL based on controller and method name function url2($controller, $method, $param = null, $addRootUrl = false) { Doo::loadHelper ( 'DooUrlBuilder' ); // param pass in as string with format // 'param1=>this_is_my_value, param2=>something_here' if ($param != null) { $param = explode ( ', ', $param ); $param2 = null; foreach ( $param as $p ) { $splited = explode ( '=>', $p ); $param2 [$splited [0]] = $splited [1]; } return DooUrlBuilder::url2 ( $controller, $method, $param2, $addRootUrl ); } return DooUrlBuilder::url2 ( $controller, $method, null, $addRootUrl ); } /** * 获得正在审批的费用单数量 */ function getReceiptCount() { $status = 2; $year = date ( 'Y' ); Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); Doo::loadModel ( 'verify' ); $verify = new verify (); $st [0] ['sid'] = $XDeode->decode ( $_COOKIE ["staff"] ); $vidList = array (); $verifyDetail = $verify->find ( array ( 'where' => ' (staff not like "%\"' . $st [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $st [0] ['sid'] . '\",%" or staff like "%\"' . $st [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; $approvalCondition = ' and (nowStaff like "%,' . $st [0] ['sid'] . '%" or nowStaff like "%' . $st [0] ['sid'] . ',%" or nowStaff=' . $st [0] ['sid'] . ' ) '; $receiptList = $receipt->find ( array ( 'where' => ' status=' . $status . $dateCondition . $approvalCondition . ' and verify in (' . $vid . ')', 'desc' => 'rid', 'asArray' => true ) ); $GLOBALS ['NEW'] = count ( $receiptList ); } /** * 获得执行费用的数量 */ function getExeCount() { Doo::loadModel ( 'receipt' ); $receipt = new receipt (); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $st [0] ['sid'] = $XDeode->decode ( $_COOKIE ["staff"] ); $receiptList = $receipt->find ( array ( 'where' => '(executeCopy like \'%["' . $st [0] ['sid'] . '%\' and ( executeStaff NOT LIKE \'%' . $st [0] ['sid'] . '%\' or executeStaff is null ) ) and (status=1 or status=6)', 'desc' => 'rid', 'asArray' => true ) ); $GLOBALS ['NEW2'] = count ( $receiptList ); } /** * curl 获取接口数据,data为空时为GET方法,有值则为POST方法 * * @param $url * @param string $data * @return mixed|string */ function curl_request($url, $data = '') { $curl = curl_init (); curl_setopt ( $curl, CURLOPT_URL, $url ); curl_setopt ( $curl, CURLOPT_HEADER, 0 ); curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); if ($data) { curl_setopt ( $curl, CURLOPT_POST, 1 ); curl_setopt ( $curl, CURLOPT_POSTFIELDS, http_build_query ( $data ) ); } curl_setopt ( $curl, CURLOPT_TIMEOUT, 10 ); $data = curl_exec ( $curl ); curl_close ( $curl ); return $data; } ?>