data ['exempt'] = false;
Doo::loadModel ( 'staff' );
$staff = new staff ();
$detail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
// 拥有豁免权限
if ($action == 'appliedEntry' || $action == 'appliedDimission' || $action == 'appliedRegular'|| $action == 'reentryApprovals' || $detail ['sid'] == superHR) {
return '';
}
// 全员权限判定
$accessModular = 'HR';
if (empty ( $detail ['cldAccessArray'] )) {
$flag = false;
} else {
if (in_array ( $accessModular, $detail ['cldAccessArray'] )) {
if (Doo::acl ()->isAllowed ( $accessModular, $resource, $action )) {
$flag = true;
} else {
$flag = false;
}
} else {
$flag = false;
}
}
// 个别审批人临时访问首页权限
if (! $flag) {
$list = $staff->getApprovalData ( $detail ['sid'] );
// $staff->find ( array (
// 'asc' => 'sid',
// 'where' => "(pendStatus= '2' or pendStatus='3' or pendStatus='5') and ( pendingApprovalsLeave='" . $detail ['sid'] . "' or pendingApprovals='" . $detail ['sid'] . "') ",
// 'asArray' => TRUE
// ) );
$isVisit = count ( $list );
if ($isVisit > 0) { // 未做强制不能访问
if ($action == 'hrEmployee' || $action == 'position' || $action == 'employeeApprovals') {
die ( 'illegal request1' );
}
$this->data ['exempt'] = true;
return '';
} else
die ( 'illegal request2' );
}
}
function __construct() {
if (isset ( $_COOKIE ["staff"] )) {
if (! empty ( $_COOKIE ["staff"] )) {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$this->staff = $staff->getStaffBySid ( $_COOKIE ["staff"] );
return "/";
}
}
Doo::loadCore ( 'uri/DooUriRouter' );
$router = new DooUriRouter ();
$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
if ($routeRs ['1'] != "appliedEntry") {
if ($routeRs ['1'] != "login") {
header ( 'Content-Type:text/html;charset=utf-8' );
@header ( "Location: /login" );
}
}
}
/**
* 人资首页
*/
function hr() {
Doo::loadModel ( 'staffManage' );
$staffManage = new staffManage ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
// 获得当前账号需要审批的员工
$staffList = $staff->getStaffByApplied ( $this->staff ['sid'] );
$staffNew = $staff->getStaffByApprovals ();
$staffProcessing = $staff->getStaffByProcessing ($this->staff ['sid'] );
// print_r($staffList);
$this->data ['staffProcessing'] = $staffProcessing;
$this->data ['staffList'] = $staffList;
$this->data ['staffNew'] = $staffNew;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "hr";
$this->render ( "/humanResource/hr", $this->data );
}
/**
* 员工入职审批
*/
function employeeInductionApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staffManage' );
$staffManage = new staffManage ();
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$sid = $XDeode->decode ( $sidKey );
if (! is_numeric ( $sid ) || empty ( $sid ))
die ( 'illegal request' );
$staffDetail = $staff->getOne ( array (
'where' => 'pendStatus=2 and sid=' . $sid . ' and pendingApprovals=' . $this->staff ['sid'],
'asArray' => true
) );
if (empty ( $staffDetail ))
die ( 'illegal request' );
$processApprovals = json_decode ( $staffDetail ['processApprovals'], true );
$invoiceManage = json_decode ( $staffDetail ['staffManage'], true );
$staff = new staff ();
if (empty ( $processApprovals )) {
$processApprovals = array (
$this->staff ['sid'] => array (
'date' => date ( "Y-m-d H:i:s" )
)
);
$nextInvoiceManage = next ( $invoiceManage );
if ($nextInvoiceManage !== false)
$staff->pendingApprovals = $nextInvoiceManage [0];
$staff->processApprovals = json_encode ( $processApprovals );
} else {
$processApprovals [$this->staff ['sid']] = array (
'date' => date ( "Y-m-d H:i:s" )
);
$pendingApprovals = 0;
foreach ( $invoiceManage as $key => $value ) {
if ($value [0] == $this->staff ['sid']) {
if (isset ( $invoiceManage [$key + 1] ))
$pendingApprovals = $invoiceManage [$key + 1] [0];
break;
}
}
if (! empty ( $pendingApprovals ))
$staff->pendingApprovals = $pendingApprovals;
$staff->processApprovals = json_encode ( $processApprovals );
}
if (count ( $processApprovals ) == count ( $invoiceManage )) {
$staff->pendStatus = 0;
$staff->pendingApprovals = 0;
$staff->InductionDate = date ( "Y-m-d H:i:s" );
$staff->cldAccess='["INFORMATION","DIRECTORIES","LOCK","RECEIPTS","INVOICE"]';
if ($staffDetail ['nature'] == 2)
$staff->practiceDate = date ( "Y-m-d H:i:s" );
if ($staffDetail ['nature'] == 3)
$staff->probationaryDate = date ( "Y-m-d H:i:s" );
// 发送短信
$passwork = mt_rand ( 100000, 999999 );
$staff->passwork = md5 ( $passwork );
if (! empty ( $staffDetail ['telephone'] ) && is_numeric ( $staffDetail ['telephone'] )) {
Doo::loadClass ( 'Human.func' );
$msg = $staffDetail ['username'] . ',' . $passwork;
send_sms ( 17280, $staffDetail ['telephone'], '{"%msg%":"' . $msg . '"}' );
}
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$nature = '';
if ($staffDetail ['nature'] == 2) {
$nature = '实习';
} elseif ($staffDetail ['nature'] == 3) {
$nature = '试用';
}
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "员工 入职审批通过",
'status' => 3,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $staffDetail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
// 发送微信抄送
$msg = '[抄送]' . $staffDetail ['category'] . '-' . $staffDetail ['username'] . '申请入职成功\n入职时间:' . $staffDetail ['hiredate'];
$cidmode = $staffDetail ['cid'];
if (! empty ( $staffDetail ['departmentID'] ))
$cidmode = $staffDetail ['cid'] . '-' . $staffDetail ['departmentID'];
$InductionCC = $staffManage->getStaffManageByCid ( $cidmode );
$InductionCC = json_decode ( $InductionCC ['CC'], true );
foreach ( $InductionCC as $value ) {
$this->setWXMsg ( $value [0], $msg );
}
}
$staff->updateDate = date ( "Y-m-d H:i:s" );
$staff->update ( array (
'where' => 'sid=' . $sid
) );
// 权限跳转
$staff = new staff ();
$CAAdetail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$accessModular = 'HR';
if (in_array ( $accessModular, $CAAdetail ['cldAccessArray'] )) {
return '/hr';
} else {
$list = $staff->getApprovalData ( $CAAdetail ['sid'] );
$isVisit = count ( $list );
if ($isVisit > 0) { // 未做强制不能访问
return '/hr';
} else {
header ( 'Content-Type:text/html;charset=utf-8' );
echo "审批成功 点击跳转首页";
die ();
}
}
}
/**
* 员工再入职审批
*/
function employeeReentryApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'reentryManage' );
$staffManage = new reentryManage ();
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$sid = $XDeode->decode ( $sidKey );
if (! is_numeric ( $sid ) || empty ( $sid ))
die ( 'illegal request' );
$staffDetail = $staff->getOne ( array (
'where' => 'pendStatus=7 and sid=' . $sid . ' and pendingApprovals=' . $this->staff ['sid'],
'asArray' => true
) );
if (empty ( $staffDetail ))
die ( 'illegal request' );
$processApprovals = json_decode ( $staffDetail ['processApprovals'], true );
$invoiceManage = json_decode ( $staffDetail ['staffManage'], true );
$staff = new staff ();
if (empty ( $processApprovals )) {
$processApprovals = array (
$this->staff ['sid'] => array (
'date' => date ( "Y-m-d H:i:s" )
)
);
$nextInvoiceManage = next ( $invoiceManage );
if ($nextInvoiceManage !== false)
$staff->pendingApprovals = $nextInvoiceManage [0];
$staff->processApprovals = json_encode ( $processApprovals );
} else {
$processApprovals [$this->staff ['sid']] = array (
'date' => date ( "Y-m-d H:i:s" )
);
$pendingApprovals = 0;
foreach ( $invoiceManage as $key => $value ) {
if ($value [0] == $this->staff ['sid']) {
if (isset ( $invoiceManage [$key + 1] ))
$pendingApprovals = $invoiceManage [$key + 1] [0];
break;
}
}
if (! empty ( $pendingApprovals ))
$staff->pendingApprovals = $pendingApprovals;
$staff->processApprovals = json_encode ( $processApprovals );
}
if (count ( $processApprovals ) == count ( $invoiceManage )) {
// 确认再入职
// Doo::loadClass ( 'XDeode' );
// $XDeode = new XDeode ( 5 );
// Doo::loadModel ( 'staff' );
// $staff = new staff ();
// $sid = $XDeode->decode ( $sidKey );
// $detail = $staff->getStaffBySid ( $sid );
$staffDetail;
$staff2 = new staff ();
// 工龄记录
$seniorityFormula = json_decode ( $staffDetail ['seniorityFormula'] );
array_push ( $seniorityFormula, array (
'InductionDate' => date ( "Y-m-d H:i:s" ),
'dimissionDate' => ''
) );
$item = array (
'sid' => $sid,
'nature' => 1,
'pendStatus' => 0,
'seniorityFormula' => json_encode ( $seniorityFormula ),
'hiredate' => date ( "Y-m-d" ) ,
'cldAccess'=>'["INFORMATION","DIRECTORIES","LOCK","RECEIPTS","INVOICE"]',
);
$staff2->setStaffByCondition ( $item );
// 更新假期相关信息
Doo::loadModel ( 'holidaystaff' );
$holidaystaff = new HStaff ();
$holidaystaff->delete ( array (
'where' => 'uid=' . $sid
) );
$holidaystaff = new HStaff ();
$holidaystaff->uid = $sid;
$holidaystaff->insert ();
$staff = new staff ();
$staffmsg = $staff->getUserById ( $sid );
$this->updateAnnualLeave ( $staffmsg [0] );
// 发送短信
$passwork = mt_rand ( 100000, 999999 );
$staff->passwork = md5 ( $passwork );
if (! empty ( $staffDetail ['telephone'] ) && is_numeric ( $staffDetail ['telephone'] )) {
Doo::loadClass ( 'Human.func' );
$msg = $staffDetail ['username'] . ',' . $passwork;
send_sms ( 17280, $staffDetail ['telephone'], '{"%msg%":"' . $msg . '"}' );
}
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "员工 再入职审批通过",
'status' => 3,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $staffDetail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
// 发送微信抄送
$msg = '[抄送]' . $staffDetail ['category'] . '-' . $staffDetail ['username'] . '申请 再入职成功\n入职时间:' . date ( "Y-m-d" );
$cidmode = $staffDetail ['cid'];
if (! empty ( $staffDetail ['departmentID'] ))
$cidmode = $staffDetail ['cid'] . '-' . $staffDetail ['departmentID'];
$InductionCC = $staffManage->getStaffManageByCid ( $cidmode );
$InductionCC = json_decode ( $InductionCC ['CC'], true );
foreach ( $InductionCC as $value ) {
$this->setWXMsg ( $value [0], $msg );
}
}
$staff->updateDate = date ( "Y-m-d H:i:s" );
$staff->update ( array (
'where' => 'sid=' . $sid
) );
// 权限跳转
$staff = new staff ();
$CAAdetail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$accessModular = 'HR';
if (in_array ( $accessModular, $CAAdetail ['cldAccessArray'] )) {
return '/hr';
} else {
$list = $staff->getApprovalData ( $CAAdetail ['sid'] );
$isVisit = count ( $list );
if ($isVisit > 0) { // 未做强制不能访问
return '/hr';
} else {
header ( 'Content-Type:text/html;charset=utf-8' );
echo "审批成功 点击跳转首页";
die ();
}
}
}
/**
* 离职人员审批
*/
function employeeDimissionApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staffLeaveManage' );
$staffLeaveManage = new staffLeaveManage ();
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$sid = $XDeode->decode ( $sidKey );
if (! is_numeric ( $sid ) || empty ( $sid ))
die ( 'illegal request' );
$staffDetail = $staff->getOne ( array (
'where' => 'pendStatus=3 and sid=' . $sid . ' and pendingApprovalsLeave=' . $this->staff ['sid'],
'asArray' => true
) );
if (empty ( $staffDetail ))
die ( 'illegal request' );
$processApprovals = json_decode ( $staffDetail ['processApprovalsLeave'], true );
$invoiceManage = json_decode ( $staffDetail ['staffManageLeave'], true );
$staff = new staff ();
if (empty ( $processApprovals )) {
$processApprovals = array (
$this->staff ['sid'] => array (
'date' => date ( "Y-m-d H:i:s" )
)
);
$nextInvoiceManage = next ( $invoiceManage );
if ($nextInvoiceManage !== false)
$staff->pendingApprovalsLeave = $nextInvoiceManage [0];
$staff->processApprovalsLeave = json_encode ( $processApprovals );
} else {
$processApprovals [$this->staff ['sid']] = array (
'date' => date ( "Y-m-d H:i:s" )
);
$pendingApprovals = 0;
foreach ( $invoiceManage as $key => $value ) {
if ($value [0] == $this->staff ['sid']) {
if (isset ( $invoiceManage [$key + 1] ))
$pendingApprovals = $invoiceManage [$key + 1] [0];
break;
}
}
if (! empty ( $pendingApprovals ))
$staff->pendingApprovalsLeave = $pendingApprovals;
$staff->processApprovalsLeave = json_encode ( $processApprovals );
}
if (count ( $processApprovals ) == count ( $invoiceManage )) {
$staff->pendStatus = 4;
// $staff->nature=4;//离职后需要在人员页面确认离职不用在这改状态
// $staff->dimissionDate = date ( "Y-m-d" );
$staff->pendingApprovalsLeave = 0;
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "员工 离职审批通过",
'status' => 2,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $staffDetail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
}
$staff->updateDate = date ( "Y-m-d H:i:s" );
$staff->update ( array (
'where' => 'sid=' . $sid
) );
// 权限跳转
$staff = new staff ();
$CAAdetail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$accessModular = 'HR';
if (in_array ( $accessModular, $CAAdetail ['cldAccessArray'] )) {
return '/hr';
} else {
$list = $staff->getApprovalData ( $CAAdetail ['sid'] );
$isVisit = count ( $list );
if ($isVisit > 0) { // 未做强制不能访问
return '/hr';
} else {
header ( 'Content-Type:text/html;charset=utf-8' );
echo "审批成功 点击跳转首页";
die ();
}
}
}
/**
* 转正审批
*/
function employeeRegularApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staffRegularManage' );
$staffLeaveManage = new staffRegularManage ();
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$sid = $XDeode->decode ( $sidKey );
if (! is_numeric ( $sid ) || empty ( $sid ))
die ( 'illegal request' );
$staffDetail = $staff->getOne ( array (
'where' => 'pendStatus=5 and sid=' . $sid . ' and pendingApprovalsLeave=' . $this->staff ['sid'],
'asArray' => true
) );
if (empty ( $staffDetail ))
die ( 'illegal request' );
$processApprovals = json_decode ( $staffDetail ['processApprovalsLeave'], true );
$invoiceManage = json_decode ( $staffDetail ['staffManageLeave'], true );
$staff = new staff ();
if (empty ( $processApprovals )) {
$processApprovals = array (
$this->staff ['sid'] => array (
'date' => date ( "Y-m-d H:i:s" )
)
);
$nextInvoiceManage = next ( $invoiceManage );
if ($nextInvoiceManage !== false)
$staff->pendingApprovalsLeave = $nextInvoiceManage [0];
$staff->processApprovalsLeave = json_encode ( $processApprovals );
} else {
$processApprovals [$this->staff ['sid']] = array (
'date' => date ( "Y-m-d H:i:s" )
);
$pendingApprovals = 0;
foreach ( $invoiceManage as $key => $value ) {
if ($value [0] == $this->staff ['sid']) {
if (isset ( $invoiceManage [$key + 1] ))
$pendingApprovals = $invoiceManage [$key + 1] [0];
break;
}
}
if (! empty ( $pendingApprovals ))
$staff->pendingApprovalsLeave = $pendingApprovals;
$staff->processApprovalsLeave = json_encode ( $processApprovals );
}
if (count ( $processApprovals ) == count ( $invoiceManage )) {
$staff->pendStatus = 0;
$staff->nature = 1;
// 工号
// 生成工号
$jobNumber = $this->createJobNumber ();
$staff->jobNumber = $jobNumber ['regularStaff'];
// $staff->dimissionDate = date ( "Y-m-d" );
$staff->pendingApprovalsLeave = 0;
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "员工 转正审批通过",
'status' => 2,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $staffDetail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
}
$staff->updateDate = date ( "Y-m-d H:i:s" );
$staff->update ( array (
'where' => 'sid=' . $sid
) );
// 权限跳转
$staff = new staff ();
$CAAdetail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$accessModular = 'HR';
if (in_array ( $accessModular, $CAAdetail ['cldAccessArray'] )) {
return '/hr';
} else {
$list = $staff->getApprovalData ( $CAAdetail ['sid'] );
$isVisit = count ( $list );
if ($isVisit > 0) { // 未做强制不能访问
return '/hr';
} else {
header ( 'Content-Type:text/html;charset=utf-8' );
echo "审批成功 点击跳转首页";
die ();
}
}
}
/**
* 员工晋升审批
*/
function employeePromoteApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staffManage' );
$staffManage = new staffManage ();
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$sid = $XDeode->decode ( $sidKey );
if (! is_numeric ( $sid ) || empty ( $sid ))
die ( 'illegal request' );
$staffDetail = $staff->getOne ( array (
'where' => 'pendStatus=6 and sid=' . $sid . ' and pendingApprovalsLeave=' . $this->staff ['sid'],
'asArray' => true
) );
if (empty ( $staffDetail ))
die ( 'illegal request' );
$processApprovals = json_decode ( $staffDetail ['processApprovalsLeave'], true );
$invoiceManage = json_decode ( $staffDetail ['staffManageLeave'], true );
// 审批过程
$staff = new staff ();
if (empty ( $processApprovals )) {
$processApprovals = array (
$this->staff ['sid'] => array (
'date' => date ( "Y-m-d H:i:s" )
)
);
$nextInvoiceManage = next ( $invoiceManage );
if ($nextInvoiceManage !== false)
$staff->pendingApprovalsLeave = $nextInvoiceManage [0];
$staff->processApprovalsLeave = json_encode ( $processApprovals );
} else {
$processApprovals [$this->staff ['sid']] = array (
'date' => date ( "Y-m-d H:i:s" )
);
$pendingApprovals = 0;
foreach ( $invoiceManage as $key => $value ) {
if ($value [0] == $this->staff ['sid']) {
if (isset ( $invoiceManage [$key + 1] ))
$pendingApprovals = $invoiceManage [$key + 1] [0];
break;
}
}
if (! empty ( $pendingApprovals ))
$staff->pendingApprovalsLeave = $pendingApprovals;
$staff->processApprovalsLeave = json_encode ( $processApprovals );
}
$appliedPromote = $staffDetail ['appliedPromote'];
$appliedPromote = explode ( '_', $appliedPromote );
if (count ( $processApprovals ) == count ( $invoiceManage )) {
$staff->pendStatus = 0;
$staff->pendingApprovalsLeave = 0;
// 岗位薪资调整
$appliedPromote [4];
$staff->baseWage = $appliedPromote [2];
$staff->postWage = $appliedPromote [3];
$staff->achievementBonus = $appliedPromote [4];
$staff->positionId = $XDeode->decode ( $appliedPromote [0] );
// 发送微信抄送
$msg = '[抄送]' . $staffDetail ['category'] . '-' . $staffDetail ['username'] . '申请晋升成功\n晋升时间:' . date ( "Y-m-d" );
$cidmode = $staffDetail ['cid'];
if (! empty ( $staffDetail ['departmentID'] ))
$cidmode = $staffDetail ['cid'] . '-' . $staffDetail ['departmentID'];
$InductionCC = $staffManage->getStaffManageByCid ( $cidmode );
$InductionCC = json_decode ( $InductionCC ['CC'], true );
foreach ( $InductionCC as $value ) {
$this->setWXMsg ( $value [0], $msg );
}
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$nature = $appliedPromote [1];
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "员工 晋升审批通过",
'status' => 3,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $staffDetail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
}
$staff->updateDate = date ( "Y-m-d H:i:s" );
$staff->update ( array (
'where' => 'sid=' . $sid
) );
// 权限跳转
$staff = new staff ();
$CAAdetail = $staff->getStaffBySid ( $_COOKIE ["staff"] );
$accessModular = 'HR';
if (in_array ( $accessModular, $CAAdetail ['cldAccessArray'] )) {
return '/hr';
} else {
$list = $staff->getApprovalData ( $CAAdetail ['sid'] );
$isVisit = count ( $list );
if ($isVisit > 0) { // 未做强制不能访问
return '/hr';
} else {
header ( 'Content-Type:text/html;charset=utf-8' );
echo "审批成功 点击跳转首页";
die ();
}
}
}
/**
* 员工信息
*/
function hrEmployee() {
// $passwork=mt_rand(100000, 999999);
// //$staff->passwork = md5 ( $passwork );
// $staffDetail['telephone']='13750039378';
// $staffDetail['username']='欧桃珍';
// if (!empty($staffDetail['telephone'])&&is_numeric($staffDetail['telephone'])){
// Doo::loadClass ( 'Human.func' );
// $msg=$staffDetail['username'].','.$passwork;
// send_sms(17280,$staffDetail['telephone'],'{"%msg%":"'.$msg.'"}');
// }
$pendStatus = $this->get_args ( 'pendStatus' ) ? $this->get_args ( 'pendStatus' ) : "ALL";
$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : 'ALL';
$cid_did = $this->get_args ( 'cid_did' ) ? $this->get_args ( 'cid_did' ) : 'ALL';
$MebSea = $this->get_args ( 'MebSea' ) ? $this->get_args ( 'MebSea' ) : '';
// $this->send_sms();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$con = ' username != "admin" ';
if ($pendStatus == 'ALL')
$con .= ' ';
elseif ($pendStatus == 'OTJOB')
$con .= ' and pendStatus=0 ';
elseif ($pendStatus == 'LVJOB')
$con .= ' and pendStatus=4 ';
if ($nature == 'ALL')
$con .= ' and (nature=1 or nature=2 or nature=3 or nature=4) ';
elseif ($nature == 'FORMAL')
$con .= ' and nature=1';
elseif ($nature == 'TRIAL')
$con .= ' and nature=3';
elseif ($nature == 'PRACTICE')
$con .= ' and nature=2';
if ($cid_did != 'ALL') {
$department = explode ( '_', $cid_did );
$cid = $XDeode->decode ( $department [0] );
$departmentID = false;
if (! empty ( $department [1] )) {
$departmentID = $XDeode->decode ( $department [1] );
}
if (is_numeric ( $cid ) && is_numeric ( $departmentID ))
$con .= ' and cid=' . $cid . ' and departmentID=' . $departmentID;
elseif (is_numeric ( $cid ) && ! is_numeric ( $departmentID ))
$con .= ' and cid=' . $cid;
}
if (! empty ( $MebSea ))
$con .= ' and ( username like "%' . $MebSea . '%" or jobNumber like "%' . $MebSea . '%" )';
// echo $con;
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'position' );
$position = new position ();
$stafflist = $staff->getStaffByCondition ( $con );
// print_r($stafflist);
/*
* foreach ($stafflist as $key=>$value){ $staff = new staff (); $staff->sid=$value['sid']; $seniorityFormula = array (); array_push ( $seniorityFormula, array ( 'InductionDate' =>$value['hiredate'] , 'dimissionDate' => '' ) ); if (empty($value['seniorityFormula'])){ $staff->seniorityFormula = json_encode ( $seniorityFormula ); //$staff->update(); } }
*/
$monthstart = date ( 'Y-m-d 00:00:00', mktime ( 0, 0, 0, date ( 'm' ), 1, date ( 'Y' ) ) );
$monthend = date ( 'Y-m-d 23:59:59', mktime ( 0, 0, 0, date ( 'm' ) + 1, 0, date ( 'Y' ) ) );
// 本月在职 入职 离职人员数量
$onJobCount = $staff->count ( array (
'where' => 'pendStatus=0 and username!="admin"'
) );
$inJobCount = $staff->count ( array (
'where' => 'pendStatus=0 and username!="admin" and (InductionDate>="' . $monthstart . '" and InductionDate<="' . $monthend . '" )'
) );
$leaveJobCount = $staff->count ( array (
'where' => 'pendStatus=4 and username!="admin" and (dimissionDate>="' . $monthstart . '" and dimissionDate<="' . $monthend . '" )'
) );
// 生成工号
$jobNumber = $this->createJobNumber ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
// 获得岗位
$listPosition = $position->getPositionByAll ();
$monthstart = date ( 'm.d', mktime ( 0, 0, 0, date ( 'm' ), 1, date ( 'Y' ) ) );
$monthend = date ( 'm.d', mktime ( 0, 0, 0, date ( 'm' ) + 1, 0, date ( 'Y' ) ) );
$this->data ['listPosition'] = $listPosition;
$this->data ['onJobCount'] = $onJobCount;
$this->data ['inJobCount'] = $inJobCount;
$this->data ['leaveJobCount'] = $leaveJobCount;
$this->data ['monthstart'] = $monthstart;
$this->data ['monthend'] = $monthend;
$this->data ['pendStatus'] = $pendStatus;
$this->data ['nature'] = $nature;
$this->data ['MebSea'] = $MebSea;
$this->data ['cid_did'] = $cid_did;
// print_r($stafflist[43]);
$this->data ['categoryList'] = $categoryList;
$this->data ['jobNumber'] = $jobNumber;
$this->data ['stafflist'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "hrEmployeeInfo";
$this->render ( "/humanResource/hrEmployee", $this->data );
}
function staffAdd() {
$username = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : "";
$nature = is_numeric ( $this->get_args ( 'nature' ) ) ? $this->get_args ( 'nature' ) : 0;
$cid_did = $this->get_args ( 'cid_did' ) ? $this->get_args ( 'cid_did' ) : '';
$position = $this->get_args ( 'position' ) ? $this->get_args ( 'position' ) : '';
$hiredate = $this->get_args ( 'hiredate' ) ? $this->get_args ( 'hiredate' ) : '';
$telephone = $this->get_args ( 'telephone' ) ? $this->get_args ( 'telephone' ) : '';
$baseWage = is_numeric ( $this->get_args ( 'baseWage' ) ) ? $this->get_args ( 'baseWage' ) : 0;
$postWage = is_numeric ( $this->get_args ( 'postWage' ) ) ? $this->get_args ( 'postWage' ) : 0;
$achievementBonus = is_numeric ( $this->get_args ( 'achievementBonus' ) ) ? $this->get_args ( 'achievementBonus' ) : 0;
$gender = $this->get_args ( 'gender' ) ? $this->get_args ( 'gender' ) : '';
if (! empty ( $username ) && ! empty ( $nature ) && ! empty ( $cid_did ) && ! empty ( $position ) && ! empty ( $hiredate ) && ! empty ( $baseWage )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'tag' );
Doo::loadModel ( 'holidaystaff' );
Doo::loadModel ( 'staffManage' );
$staffManage = new staffManage ();
// 用户名检测
$detailStaff = $staff->getStaffByName ( $username );
// print_r($detailStaff);
if (! empty ( $detailStaff )){header ( 'Content-Type:text/html;charset=utf-8' );
die ( 'illegal request-username-用户名重复' );
}
$staff->username = $username;
$staff->hiredate = $hiredate;
$staff->nature = $nature;
$position = explode ( '_', $position );
$staff->position = $position [1];
$staff->positionId = $XDeode->decode ( $position [0] );
$department = explode ( '_', $cid_did );
$cid = $XDeode->decode ( $department [0] );
// 加入默认总部分类
if (! is_numeric ( $cid ))
die ( 'illegal request1' );
$cagegory = $L_category->getCategoryById ( $cid );
// 部门
if (! empty ( $department [1] )) {
$did = $XDeode->decode ( $department [1] );
if (! is_numeric ( $did ))
die ( 'illegal request' );
$staff->departmentID = $did;
}
// 生成工号
$jobNumber = $this->createJobNumber ();
if ($nature == 1)
$staff->jobNumber = $jobNumber ['regularStaff'];
else {
$staff->jobNumber = $jobNumber ['internStaff'];
$staff->pendStatus = 1;
}
$staff->cid = $cagegory [0] ['cid'];
$staff->category = $cagegory [0] ['title'];
$staff->telephone = $telephone;
$staff->baseWage = $baseWage;
$staff->postWage = $postWage;
$staff->achievementBonus = $achievementBonus;
$staff->gender = $gender;
// 审批组
// 获得该办事处的审批组
$approvalKey = explode ( '_', $cid_did );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
if (! empty ( $value )) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
}
$cidMode = implode ( '_', $cidMode );
$staffManageDetail = $staffManage->getStaffManageByCid ( $cidMode );
if (empty ( $staffManageDetail ))
die ( 'illegal request2' );
$pendingApprovalsSid = current ( $staffManageDetail ['staffList'] ) [0];
$staff->pendingApprovals = $pendingApprovalsSid;
$staff->staffManage = $staffManageDetail ['staff'];
// 抄送组
$staff->processCC = $staffManageDetail ['CC'];
// 工龄记录
$seniorityFormula = array ();
array_push ( $seniorityFormula, array (
'InductionDate' => $hiredate,
'dimissionDate' => ''
) );
$staff->seniorityFormula = json_encode ( $seniorityFormula );
$id = $staff->insert ();
// 更新假期相关信息
Doo::loadModel ( 'holidaystaff' );
$holidaystaff = new HStaff ();
$holidaystaff->uid = $id;
$holidaystaff->insert ();
$staff = new staff ();
$staffmsg = $staff->getUserById ( $id );
$this->updateAnnualLeave ( $staffmsg [0] );
// 标签更新
for($i = 1; $i <= 7; $i ++) {
$tag = new tag ();
$tag->name = "个人标签";
$tag->sid = $id;
$tag->colorid = $i;
$tag->insert ();
}
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 1,
'img' => '/global/img/avtra',
'username' => $this->staff ['username'],
'uid' => $id,
'sid' => $this->staff ['sid'],
'operation' => "添加新员工",
'category' => $this->staff ['category']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
if (! empty ( $telephone ) && is_numeric ( $telephone )) {
Doo::loadClass ( 'Human.func' );
send_sms ( 17279, $telephone, '{"%name%":"' . $username . '"}' );
}
}
return '/hrEmployee';
}
/**
* 员工转职
*/
function staffTransfer() {
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : '';
if (! empty ( $sidKey ) && ! empty ( $nature )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $sidKey );
$staffDetail = $staff->getStaffBySid ( $sid );
$item = array (
'sid' => $sid
);
if ($nature == 'TRIAL')
$item += array (
// 试用
'nature' => 3,
'probationaryDate' => date ( "Y-m-d H:i:s" )
);
if ($nature == 'REGULARS') {
// 生成工号
$jobNumber = $this->createJobNumber ();
$item += array (
// 正式
'nature' => 1,
'jobNumber' => $jobNumber ['regularStaff'],
'regularsDate' => date ( "Y-m-d H:i:s" )
);
// 发送微信抄送
Doo::loadModel ( 'staffRegularManage' );
$staffLeaveManage = new staffRegularManage ();
$msg = '[抄送]' . $staffDetail ['category'] . '-' . $staffDetail ['username'] . '申请转正成功\n转正时间:' . date ( "Y-m-d" );
$cidmode = $staffDetail ['cid'];
if (! empty ( $staffDetail ['departmentID'] ))
$cidmode = $staffDetail ['cid'] . '-' . $staffDetail ['departmentID'];
$InductionCC = $staffLeaveManage->getStaffManageByCid ( $cidmode );
$InductionCC = json_decode ( $InductionCC ['CC'], true );
foreach ( $InductionCC as $value ) {
$this->setWXMsg ( $value [0], $msg );
}
}
$staff->setStaffByCondition ( $item );
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 1,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $staffDetail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
if ($nature == 'TRIAL')
$item += array (
// 试用
'operation' => "员工 实习转试用"
);
if ($nature == 'REGULARS')
$item += array (
// 正式
'operation' => "员工 试用转正式"
);
$staffOperationLog->setInvoiceOperationLog ( $item );
return '/hrEmployee';
}
die ( 'illegal request' );
}
/**
* 申请入职
*/
function appliedEntry() {
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$telephone = $this->get_args ( 'telephone' ) ? $this->get_args ( 'telephone' ) : '';
$qq = $this->get_args ( 'qq' ) ? $this->get_args ( 'qq' ) : '';
$wecat = $this->get_args ( 'wecat' ) ? $this->get_args ( 'wecat' ) : '';
$email = $this->get_args ( 'email' ) ? $this->get_args ( 'email' ) : '';
$phone = $this->get_args ( 'phone' ) ? $this->get_args ( 'phone' ) : '';
$gender = $this->get_args ( 'gender' ) ? $this->get_args ( 'gender' ) : '';
$birthday = $this->get_args ( 'birthday' ) ? $this->get_args ( 'birthday' ) : '';
$qualifications = $this->get_args ( 'qualifications' ) ? $this->get_args ( 'qualifications' ) : '';
$marriage = $this->get_args ( 'marriage' ) ? $this->get_args ( 'marriage' ) : '0';
$nativePlace = $this->get_args ( 'nativePlace' ) ? $this->get_args ( 'nativePlace' ) : '';
$emergencyContacts = $this->get_args ( 'emergencyContacts' ) ? $this->get_args ( 'emergencyContacts' ) : '';
$living = $this->get_args ( 'living' ) ? $this->get_args ( 'living' ) : '';
$nation = $this->get_args ( 'nation' ) ? $this->get_args ( 'nation' ) : '';
$graduateInstitutions = $this->get_args ( 'graduateInstitutions' ) ? $this->get_args ( 'graduateInstitutions' ) : '';
$major = $this->get_args ( 'major' ) ? $this->get_args ( 'major' ) : '';
$education = $this->get_args ( 'education' ) ? $this->get_args ( 'education' ) : '';
$graduationTime = $this->get_args ( 'graduationTime' ) ? $this->get_args ( 'graduationTime' ) : '';
$registeredResidence = $this->get_args ( 'registeredResidence' ) ? $this->get_args ( 'registeredResidence' ) : '';
$householdRegistrationType = $this->get_args ( 'householdRegistrationType' ) ? $this->get_args ( 'householdRegistrationType' ) : '';
$IDcardsValidity = $this->get_args ( 'IDcardsValidity' ) ? $this->get_args ( 'IDcardsValidity' ) : '';
$IDcards = $this->get_args ( 'IDcards' ) ? $this->get_args ( 'IDcards' ) : '';
// && ! empty ( $wecat ) && ! empty ( $email )
if (! empty ( $sidKey ) && ! empty ( $telephone ) && ! empty ( $qq ) && ! empty ( $phone ) && ! empty ( $gender ) && ! empty ( $birthday ) && ! empty ( $qualifications ) && ! empty ( $nativePlace ) && ! empty ( $emergencyContacts ) && ! empty ( $living )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $sidKey );
$item = array (
'sid' => $sid,
'qq' => $qq,
'wecat' => $wecat,
'phone' => $phone,
'email' => $email,
'gender' => $gender,
'birthday' => $birthday,
'qualifications' => $qualifications,
'marriage' => $marriage,
'nativePlace' => $nativePlace,
'emergencyContacts' => $emergencyContacts,
'living' => $living,
'nation' => $nation,
'graduateInstitutions' => $graduateInstitutions,
'major' => $major,
'education' => $education,
'graduationTime' => $graduationTime,
'registeredResidence' => $registeredResidence,
'householdRegistrationType' => $householdRegistrationType,
'IDcardsValidity' => $IDcardsValidity,
'IDcards' => $IDcards,
// 状态改成入职申请
'pendStatus' => 2
);
$staff->setStaffByCondition ( $item );
// 操作日志
$staffDetail = $staff->getStaffBySid ( $sid );
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 2,
'operation' => "申请入职",
'img' => $staffDetail ['avatar'],
'username' => $staffDetail ['username'],
'uid' => $staffDetail ['sid'],
'category' => $staffDetail ['category'],
'sid' => $staffDetail ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
return '/login';
}
die ( 'illegal request' );
}
/**
* 申请离职
*/
function appliedDimission() {
$dimissionReason = $this->get_args ( 'dimissionReason' ) ? $this->get_args ( 'dimissionReason' ) : '';
$applyLeaveDate = $this->get_args ( 'applyLeaveDate' ) ? $this->get_args ( 'applyLeaveDate' ) : '';
if (empty ( $dimissionReason )||empty($applyLeaveDate))
die ( 'illegal request' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'staffLeaveManage' );
$staffLeaveManage = new staffLeaveManage ();
$item = array (
'sid' => $this->staff ['sid'],
'dimissionReason' => $dimissionReason,
// 状态改成离职申请
'pendStatus' => 3
);
$staff->setStaffByCondition ( $item );
// 离职审批组
// 获得审批组KEY
$staff = new staff ();
$cidMode = $this->staff ['cid'];
if (! empty ( $this->staff ['departmentID'] ))
$cidMode = $this->staff ['cid'] . '_' . $this->staff ['departmentID'];
$staffManageDetail = $staffLeaveManage->getStaffManageByCid ( $cidMode );
if (empty ( $staffManageDetail ))
die ( 'illegal request ' );
$pendingApprovalsSid = current ( $staffManageDetail ['staffList'] ) [0];
if (empty ( $pendingApprovalsSid ))
die ( 'illegal request ' );
$staff->pendingApprovalsLeave = $pendingApprovalsSid;
$staff->staffManageLeave = $staffManageDetail ['staff'];
$staff->processApprovalsLeave = '';
$staff->sid = $this->staff ['sid'];
$staff->applyLeaveDate=$applyLeaveDate;
// 抄送组
$staff->processLeaveCC = $staffManageDetail ['CC'];
$staff->update ();
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 3,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'operation' => "申请离职",
'uid' => $this->staff ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
return '/settingEmployeeInfo';
}
/**
* 确认离职
*/
function employeeDismiss() {
//include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$applyLeaveDate = $this->get_args ( 'applyLeaveDate' ) ? $this->get_args ( 'applyLeaveDate' ) : "";
if (! empty ( $sidKey )&&!empty($applyLeaveDate)) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $sidKey );
$detail = $staff->getStaffBySid ( $sid );
if (empty ( $detail )){
die ( 'illegal request' );
}
// 工龄记录
$seniorityFormula = json_decode ( $detail ['seniorityFormula'], true );
$arr = array_keys ( $seniorityFormula );
$key = end ( $arr );
if (isset ( $seniorityFormula [$key] ['dimissionDate'] ) || empty ( $seniorityFormula [$key] ['dimissionDate'] ))
$seniorityFormula [$key] ['dimissionDate'] = $applyLeaveDate;//date ( "Y-m-d" );
else
die ( 'illegal request' );
// $staff->seniorityFormula = json_encode ( $seniorityFormula );
// 计算工龄天数
// echo $staff->seniorityFormula;
$day = $this->getSeniority ( $seniorityFormula );
$dimissionDate = $applyLeaveDate;//date ( "Y-m-d " );
$item = array (
'sid' => $sid,
'nature' => 4,
'pendStatus' => 4,
'seniorityFormula' => json_encode ( $seniorityFormula ),
'hireBiasDate' => $day,
'applyLeaveDate'=>$dimissionDate,
'dimissionDate' => $dimissionDate
);
$staff->setStaffByCondition ( $item );
// 发送微信抄送
Doo::loadModel ( 'staffLeaveManage' );
$staffLeaveManage = new staffLeaveManage ();
$msg = '[抄送]' . $detail ['category'] . '-' . $detail ['username'] . '申请离职成功\n离职时间:' . $dimissionDate;
$cidmode = $detail ['cid'];
if (! empty ( $detail ['departmentID'] ))
$cidmode = $detail ['cid'] . '-' . $detail ['departmentID'];
$InductionCC = $staffLeaveManage->getStaffManageByCid ( $cidmode );
$InductionCC = json_decode ( $InductionCC ['CC'], true );
foreach ( $InductionCC as $value ) {
$this->setWXMsg ( $value [0], $msg );
}
return '/hrEmployee';
}
die ( 'illegal request' );
}
/**
* 申请转正
*/
function appliedRegular() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'staffRegularManage' );
$staffLeaveManage = new staffRegularManage ();
$item = array (
'sid' => $this->staff ['sid'],
// 状态改成离职申请
'pendStatus' => 5
);
$staff->setStaffByCondition ( $item );
// 离职审批组
// 获得审批组KEY
$staff = new staff ();
$cidMode = $this->staff ['cid'];
if (! empty ( $this->staff ['departmentID'] ))
$cidMode = $this->staff ['cid'] . '_' . $this->staff ['departmentID'];
$staffManageDetail = $staffLeaveManage->getStaffManageByCid ( $cidMode );
if (empty ( $staffManageDetail ))
die ( 'illegal request ' );
$pendingApprovalsSid = current ( $staffManageDetail ['staffList'] ) [0];
if (empty ( $pendingApprovalsSid ))
die ( 'illegal request ' );
$staff->pendingApprovalsLeave = $pendingApprovalsSid;
$staff->staffManageLeave = $staffManageDetail ['staff'];
$staff->processApprovalsLeave = '';
$staff->sid = $this->staff ['sid'];
// 抄送组
$staff->processLeaveCC = $staffManageDetail ['CC'];
$staff->update ();
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 3,
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'operation' => "申请转正",
'uid' => $this->staff ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
return '/settingEmployeeInfo';
}
/**
* 申请晋升
*/
function appliedPromote() {
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
$position = $this->get_args ( 'position' ) ? $this->get_args ( 'position' ) : '';
$baseWage = is_numeric ( $this->get_args ( 'baseWage' ) ) ? $this->get_args ( 'baseWage' ) : 0;
$postWage = is_numeric ( $this->get_args ( 'postWage' ) ) ? $this->get_args ( 'postWage' ) : 0;
$achievementBonus = is_numeric ( $this->get_args ( 'achievementBonus' ) ) ? $this->get_args ( 'achievementBonus' ) : 0;
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'promoteManage' );
$staffLeaveManage = new promoteManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $sidKey );
$detail = $staff->getStaffBySid ( $sid );
// 离职审批组
// 获得审批组KEY
$cidMode = $detail ['cid'];
if (! empty ( $detail ['departmentID'] ))
$cidMode = $detail ['cid'] . '_' . $detail ['departmentID'];
$staffManageDetail = $staffLeaveManage->getStaffManageByCid ( $cidMode );
if (empty ( $staffManageDetail ['staffList'] ))
die ( 'illegal request -auth' );
$pendingApprovalsSid = current ( $staffManageDetail ['staffList'] ) [0];
if (empty ( $pendingApprovalsSid ))
die ( 'illegal request ' );
$item = array (
'sid' => $sid,
'appliedPromote' => $position . '_' . $baseWage . '_' . $postWage . '_' . $achievementBonus,
// 状态改成申请晋升
'pendStatus' => 6
);
$staff->setStaffByCondition ( $item );
$staff = new staff ();
$staff->pendingApprovalsLeave = $pendingApprovalsSid;
$staff->staffManageLeave = $staffManageDetail ['staff'];
$staff->processApprovalsLeave = '';
$staff->sid = $sid;
// 抄送组
$staff->processLeaveCC = $staffManageDetail ['CC'];
$staff->update ();
$pDetail = explode ( '_', $position );
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 3,
'operation' => "申请晋升" . $pDetail [1],
'img' => $this->staff ['avatar'],
'username' => $this->staff ['username'],
'uid' => $detail ['sid'],
'category' => $this->staff ['category'],
'sid' => $this->staff ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
return '/hrEmployee';
}
/**
* 再入职申请
*/
function employeeReentryApply() {
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
if (! empty ( $sidKey )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'reentryManage' );
$reentryManage = new reentryManage ();
$sid = $XDeode->decode ( $sidKey );
$detail = $staff->getStaffBySid ( $sid );
if (empty ( $detail ))
die ( 'illegal request' );
$item = array (
'sid' => $sid,
'pendStatus' => 7
);
$staff->setStaffByCondition ( $item );
// 离职审批组
// 获得审批组KEY
$staff = new staff ();
$cidMode = $detail ['cid'];
if (! empty ( $detail ['departmentID'] ))
$cidMode = $detail ['cid'] . '_' . $detail ['departmentID'];
$staffManageDetail = $reentryManage->getStaffManageByCid ( $cidMode );
if (empty ( $staffManageDetail ))
die ( 'illegal request ' );
$pendingApprovalsSid = current ( $staffManageDetail ['staffList'] ) [0];
if (empty ( $pendingApprovalsSid ))
die ( 'illegal request ' );
$staff->pendingApprovals = $pendingApprovalsSid;
$staff->staffManage = $staffManageDetail ['staff'];
$staff->processApprovals = '';
$staff->sid = $detail ['sid'];
// 抄送组
$staff->processCC = $staffManageDetail ['CC'];
$staff->update ();
// 操作日志
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'status' => 3,
'img' => $detail ['avatar'],
'username' => $detail ['username'],
'operation' => "申请再入职",
'uid' => $detail ['sid'],
'category' => $detail ['category'],
'sid' => $detail ['sid']
);
$staffOperationLog->setInvoiceOperationLog ( $item );
return '/hrEmployee';
}
die ( 'illegal request' );
}
/**
* 确认在入职
*/
function employeeReentry() {
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : "";
if (! empty ( $sidKey )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $sidKey );
$detail = $staff->getStaffBySid ( $sid );
if (empty ( $detail ))
die ( 'illegal request' );
// 工龄记录
$seniorityFormula = json_decode ( $detail ['seniorityFormula'] );
array_push ( $seniorityFormula, array (
'InductionDate' => date ( "Y-m-d H:i:s" ),
'dimissionDate' => ''
) );
$item = array (
'sid' => $sid,
'nature' => 1,
'pendStatus' => 0,
'seniorityFormula' => json_encode ( $seniorityFormula ),
'hiredate' => date ( "Y-m-d" )
);
$staff->setStaffByCondition ( $item );
// 更新假期相关信息
Doo::loadModel ( 'holidaystaff' );
$holidaystaff = new HStaff ();
$holidaystaff->delete ( array (
'where' => 'uid=' . $sid
) );
$holidaystaff = new HStaff ();
$holidaystaff->uid = $sid;
$holidaystaff->insert ();
$staff = new staff ();
$staffmsg = $staff->getUserById ( $sid );
$this->updateAnnualLeave ( $staffmsg [0] );
return '/hrEmployee';
}
die ( 'illegal request' );
}
/**
* 员工再入职审批流程
*/
function reentryApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'reentryManage' );
$staffManage = new reentryManage ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
$staffManageList = $staffManage->find ( array (
'asArray' => true
) );
foreach ( $staffManageList as $key => $value ) {
// 审批人员
$name = json_decode ( $value ['staff'] );
$employeeApprovals = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
@array_push ( $employeeApprovals, $ve [1] );
}
}
$employeeApprovals = implode ( '->', $employeeApprovals );
// 抄送人员
$name = json_decode ( $value ['CC'] );
$CC = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $CC, $ve [1] );
}
}
$CC = implode ( ' ', $CC );
foreach ( $categoryList as $k => $v ) {
$cid = $v ['cid'];
if (isset ( $v ['did'] ))
$cid .= '_' . $v ['did'];
if ($cid == $value ['cid']) { // echo $cid.'//';echo $value['cid'].'
';
$categoryList [$k] ['employeeApprovals'] = $employeeApprovals;
$categoryList [$k] ['CC'] = $CC;
break;
}
}
}
foreach ( $categoryList as $key => $value ) {
if (! isset ( $value ['employeeApprovals'] ))
$categoryList [$key] ['employeeApprovals'] = '';
if (! isset ( $value ['CC'] ))
$categoryList [$key] ['CC'] = '';
}
// print_r($categoryList);
$stafflist = $staff->getStaff ( true );
$this->data ['categoryList'] = $categoryList;
$this->data ['staffList'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "employeeApprovals";
$this->render ( "/humanResource/reentryApprovals", $this->data );
}
/**
* 添加员工审批人员
*/
function reentryApprovalsAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$uidlist = $this->get_args ( 'uidlist' ) ? $this->get_args ( 'uidlist' ) : "";
$uidlist = explode ( ",", $uidlist );
if (! empty ( $cidKey ) && ! empty ( $uidlist )) {
Doo::loadModel ( "reentryManage" );
$staffManage = new reentryManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
// echo $cidMode;die;
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
// 审批人员
$list = array ();
foreach ( $uidlist as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new reentryManage ();
$staffManage->cid = $cidMode;
$staffManage->staff = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new reentryManage ();
$staffManage->staff = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/reentryApprovals';
}
die ( 'illegal request' );
}
/**
* 添加抄送员工,微信通知
*/
function reentryCCAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$staff = $this->get_args ( 'staff' ) ? $this->get_args ( 'staff' ) : "";
// && ! empty ( $staff )
if (! empty ( $cidKey )) {
Doo::loadModel ( "reentryManage" );
$staffManage = new reentryManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
$list = array ();
foreach ( $staff as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new reentryManage ();
$staffManage->cid = $cidMode;
$staffManage->CC = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new reentryManage ();
$staffManage->CC = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/reentryApprovals';
}
die ( 'illegal request' );
}
/**
* 员工审批流程
*/
function employeeApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'staffManage' );
$staffManage = new staffManage ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
$staffManageList = $staffManage->find ( array (
'asArray' => true
) );
foreach ( $staffManageList as $key => $value ) {
// 审批人员
$name = json_decode ( $value ['staff'] );
$employeeApprovals = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $employeeApprovals, $ve [1] );
}
}
$employeeApprovals = implode ( '->', $employeeApprovals );
// 抄送人员
$name = json_decode ( $value ['CC'] );
$CC = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $CC, $ve [1] );
}
}
$CC = implode ( ' ', $CC );
foreach ( $categoryList as $k => $v ) {
$cid = $v ['cid'];
if (isset ( $v ['did'] ))
$cid .= '_' . $v ['did'];
if ($cid == $value ['cid']) { // echo $cid.'//';echo $value['cid'].'
';
$categoryList [$k] ['employeeApprovals'] = $employeeApprovals;
$categoryList [$k] ['CC'] = $CC;
break;
}
}
}
foreach ( $categoryList as $key => $value ) {
if (! isset ( $value ['employeeApprovals'] ))
$categoryList [$key] ['employeeApprovals'] = '';
if (! isset ( $value ['CC'] ))
$categoryList [$key] ['CC'] = '';
}
// print_r($categoryList);
$stafflist = $staff->getStaff ( true );
$this->data ['categoryList'] = $categoryList;
$this->data ['staffList'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "employeeApprovals";
$this->render ( "/humanResource/employeeApprovals", $this->data );
}
/**
* 添加员工审批人员
*/
function employeeApprovalsAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$uidlist = $this->get_args ( 'uidlist' ) ? $this->get_args ( 'uidlist' ) : "";
$uidlist = explode ( ",", $uidlist );
if (! empty ( $cidKey ) && ! empty ( $uidlist )) {
Doo::loadModel ( "staffManage" );
$staffManage = new staffManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
// echo $cidMode;die;
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
// 审批人员
$list = array ();
foreach ( $uidlist as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new staffManage ();
$staffManage->cid = $cidMode;
$staffManage->staff = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new staffManage ();
$staffManage->staff = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/employeeApprovals';
}
die ( 'illegal request' );
}
/**
* 添加抄送员工,微信通知
*/
function employeeCCAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$staff = $this->get_args ( 'staff' ) ? $this->get_args ( 'staff' ) : "";
// && ! empty ( $staff )
if (! empty ( $cidKey )) {
Doo::loadModel ( "staffManage" );
$staffManage = new staffManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
$list = array ();
foreach ( $staff as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new staffManage ();
$staffManage->cid = $cidMode;
$staffManage->CC = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new staffManage ();
$staffManage->CC = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/employeeApprovals';
}
die ( 'illegal request' );
}
/**
* 离职审批流程设置
*/
function leaveOfficeApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'staffLeaveManage' );
$staffManage = new staffLeaveManage ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
$staffManageList = $staffManage->find ( array (
'asArray' => true
) );
foreach ( $staffManageList as $key => $value ) {
// 审批人员
$name = json_decode ( $value ['staff'] );
$employeeApprovals = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $employeeApprovals, $ve [1] );
}
}
$employeeApprovals = implode ( '->', $employeeApprovals );
// 抄送人员
$name = json_decode ( $value ['CC'] );
$CC = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $CC, $ve [1] );
}
}
$CC = implode ( ' ', $CC );
foreach ( $categoryList as $k => $v ) {
$cid = $v ['cid'];
if (isset ( $v ['did'] ))
$cid .= '_' . $v ['did'];
if ($cid == $value ['cid']) { // echo $cid.'//';echo $value['cid'].'
';
$categoryList [$k] ['employeeApprovals'] = $employeeApprovals;
$categoryList [$k] ['CC'] = $CC;
break;
}
}
}
foreach ( $categoryList as $key => $value ) {
if (! isset ( $value ['employeeApprovals'] ))
$categoryList [$key] ['employeeApprovals'] = '';
if (! isset ( $value ['CC'] ))
$categoryList [$key] ['CC'] = '';
}
// print_r($categoryList);
$stafflist = $staff->getStaff ( true );
$this->data ['categoryList'] = $categoryList;
$this->data ['staffList'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "employeeApprovals";
$this->render ( "/humanResource/leaveOfficeApprovals", $this->data );
}
/**
* 添加员工审批人员
*/
function employeeleaveApprovalsAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$uidlist = $this->get_args ( 'uidlist' ) ? $this->get_args ( 'uidlist' ) : "";
$uidlist = explode ( ",", $uidlist );
if (! empty ( $cidKey ) && ! empty ( $uidlist )) {
Doo::loadModel ( "staffLeaveManage" );
$staffManage = new staffLeaveManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
// echo $cidMode;die;
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
// 审批人员
$list = array ();
foreach ( $uidlist as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new staffLeaveManage ();
$staffManage->cid = $cidMode;
$staffManage->staff = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new staffLeaveManage ();
$staffManage->staff = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/leaveOfficeApprovals';
}
die ( 'illegal request' );
}
/**
* 添加抄送员工,微信通知
*/
function employeeleaveCCAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$staff = $this->get_args ( 'staff' ) ? $this->get_args ( 'staff' ) : "";
if (! empty ( $cidKey ) && ! empty ( $staff )) {
Doo::loadModel ( "staffLeaveManage" );
$staffManage = new staffLeaveManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
$list = array ();
foreach ( $staff as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new staffLeaveManage ();
$staffManage->cid = $cidMode;
$staffManage->CC = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new staffLeaveManage ();
$staffManage->CC = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/leaveOfficeApprovals';
}
die ( 'illegal request' );
}
/**
* 转正审批流程设置
*/
function regularApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'staffRegularManage' );
$staffManage = new staffRegularManage ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
$staffManageList = $staffManage->find ( array (
'asArray' => true
) );
foreach ( $staffManageList as $key => $value ) {
// 审批人员
$name = json_decode ( $value ['staff'] );
$employeeApprovals = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $employeeApprovals, $ve [1] );
}
}
$employeeApprovals = implode ( '->', $employeeApprovals );
// 抄送人员
$name = json_decode ( $value ['CC'] );
$CC = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $CC, $ve [1] );
}
}
$CC = implode ( ' ', $CC );
foreach ( $categoryList as $k => $v ) {
$cid = $v ['cid'];
if (isset ( $v ['did'] ))
$cid .= '_' . $v ['did'];
if ($cid == $value ['cid']) { // echo $cid.'//';echo $value['cid'].'
';
$categoryList [$k] ['employeeApprovals'] = $employeeApprovals;
$categoryList [$k] ['CC'] = $CC;
break;
}
}
}
foreach ( $categoryList as $key => $value ) {
if (! isset ( $value ['employeeApprovals'] ))
$categoryList [$key] ['employeeApprovals'] = '';
if (! isset ( $value ['CC'] ))
$categoryList [$key] ['CC'] = '';
}
// print_r($categoryList);
$stafflist = $staff->getStaff ( true );
$this->data ['categoryList'] = $categoryList;
$this->data ['staffList'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "employeeApprovals";
$this->render ( "/humanResource/regularApprovals", $this->data );
}
/**
* 添加转正审批人员
*/
function employeRegularApprovalsAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$uidlist = $this->get_args ( 'uidlist' ) ? $this->get_args ( 'uidlist' ) : "";
$uidlist = explode ( ",", $uidlist );
if (! empty ( $cidKey ) && ! empty ( $uidlist )) {
Doo::loadModel ( "staffRegularManage" );
$staffManage = new staffRegularManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
// echo $cidMode;die;
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
// 审批人员
$list = array ();
foreach ( $uidlist as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new staffRegularManage ();
$staffManage->cid = $cidMode;
$staffManage->staff = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new staffRegularManage ();
$staffManage->staff = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/regularApprovals';
}
die ( 'illegal request' );
}
/**
* 添加抄送员工,微信通知
*/
function employeRegularCCAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$staff = $this->get_args ( 'staff' ) ? $this->get_args ( 'staff' ) : "";
if (! empty ( $cidKey ) && ! empty ( $staff )) {
Doo::loadModel ( "staffRegularManage" );
$staffManage = new staffRegularManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
$list = array ();
foreach ( $staff as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new staffRegularManage ();
$staffManage->cid = $cidMode;
$staffManage->CC = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new staffRegularManage ();
$staffManage->CC = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/regularApprovals';
}
die ( 'illegal request' );
}
/**
* 晋升流程设置
*/
function promoteApprovals() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'promoteManage' );
$staffManage = new promoteManage ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
$staffManageList = $staffManage->find ( array (
'asArray' => true
) );
foreach ( $staffManageList as $key => $value ) {
// 审批人员
$name = json_decode ( $value ['staff'] );
$employeeApprovals = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $employeeApprovals, $ve [1] );
}
}
$employeeApprovals = implode ( '->', $employeeApprovals );
// 抄送人员
$name = json_decode ( $value ['CC'] );
$CC = array ();
if (count ( $name ) != 0) {
foreach ( $name as $ve ) {
array_push ( $CC, $ve [1] );
}
}
$CC = implode ( ' ', $CC );
foreach ( $categoryList as $k => $v ) {
$cid = $v ['cid'];
if (isset ( $v ['did'] ))
$cid .= '_' . $v ['did'];
if ($cid == $value ['cid']) { // echo $cid.'//';echo $value['cid'].'
';
$categoryList [$k] ['employeeApprovals'] = $employeeApprovals;
$categoryList [$k] ['CC'] = $CC;
break;
}
}
}
foreach ( $categoryList as $key => $value ) {
if (! isset ( $value ['employeeApprovals'] ))
$categoryList [$key] ['employeeApprovals'] = '';
if (! isset ( $value ['CC'] ))
$categoryList [$key] ['CC'] = '';
}
// print_r($categoryList);
$stafflist = $staff->getStaff ( true );
$this->data ['categoryList'] = $categoryList;
$this->data ['staffList'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "employeeApprovals";
$this->render ( "/humanResource/promoteApprovals", $this->data );
}
/**
* 添加晋升审批人员
*/
function promoteApprovalsAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$uidlist = $this->get_args ( 'uidlist' ) ? $this->get_args ( 'uidlist' ) : "";
$uidlist = explode ( ",", $uidlist );
if (! empty ( $cidKey ) && ! empty ( $uidlist )) {
Doo::loadModel ( "promoteManage" );
$staffManage = new promoteManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
// echo $cidMode;die;
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
// 审批人员
$list = array ();
foreach ( $uidlist as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new promoteManage ();
$staffManage->cid = $cidMode;
$staffManage->staff = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new promoteManage ();
$staffManage->staff = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/promoteApprovals';
}
die ( 'illegal request' );
}
/**
* 添加抄送员工,微信通知
*/
function promoteApprovalsCCAdd() {
$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : "";
$staff = $this->get_args ( 'staff' ) ? $this->get_args ( 'staff' ) : "";
if (! empty ( $cidKey ) && ! empty ( $staff )) {
Doo::loadModel ( "promoteManage" );
$staffManage = new promoteManage ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
// 获得抄送内容
$approvalKey = explode ( '_', $cidKey );
$cidMode = array ();
foreach ( $approvalKey as $value ) {
$cid = $XDeode->decode ( $value );
array_push ( $cidMode, $cid );
}
$cidMode = implode ( '_', $cidMode );
$staffManageInfo = $staffManage->getOne ( array (
'where' => 'cid ="' . $cidMode . '" ',
'asArray' => true
) );
$list = array ();
foreach ( $staff as $key => $value ) {
$info = explode ( ":", $value );
array_push ( $list, $info );
}
if (empty ( $staffManageInfo )) {
$staffManage = new promoteManage ();
$staffManage->cid = $cidMode;
$staffManage->CC = json_encode ( $list );
$staffManage->insert ();
} else {
$staffManage = new promoteManage ();
$staffManage->CC = json_encode ( $list );
$staffManage->update ( array (
'where' => 'icid = ' . $staffManageInfo ['icid']
) );
}
return '/promoteApprovals';
}
die ( 'illegal request' );
}
/**
* 员工权限管理
*/
function hrEmployeeApprovalsSetting() {
$pendStatus = $this->get_args ( 'pendStatus' ) ? $this->get_args ( 'pendStatus' ) : "ALL";
$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : 'ALL';
$cid_did = $this->get_args ( 'cid_did' ) ? $this->get_args ( 'cid_did' ) : 'ALL';
$MebSea = $this->get_args ( 'MebSea' ) ? $this->get_args ( 'MebSea' ) : '';
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$con = ' username != "admin" ';
if ($pendStatus == 'ALL')
$con .= ' ';
elseif ($pendStatus == 'OTJOB')
$con .= ' and pendStatus=0 ';
elseif ($pendStatus == 'LVJOB')
$con .= ' and pendStatus=4 ';
if ($nature == 'ALL')
$con .= ' and (nature=1 or nature=2 or nature=3 or nature=4) ';
elseif ($nature == 'FORMAL')
$con .= ' and nature=1';
elseif ($nature == 'TRIAL')
$con .= ' and nature=2';
elseif ($nature == 'PRACTICE')
$con .= ' and nature=3';
if ($cid_did != 'ALL') {
$department = explode ( '_', $cid_did );
$cid = $XDeode->decode ( $department [0] );
$departmentID = false;
if (! empty ( $department [1] )) {
$departmentID = $XDeode->decode ( $department [1] );
}
if (is_numeric ( $cid ) && is_numeric ( $departmentID ))
$con .= ' and cid=' . $cid . ' and departmentID=' . $departmentID;
elseif (is_numeric ( $cid ) && ! is_numeric ( $departmentID ))
$con .= ' and cid=' . $cid;
}
if (! empty ( $MebSea ))
$con .= ' and ( username like "%' . $MebSea . '%" or jobNumber like "%' . $MebSea . '%" )';
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
$stafflist = $staff->getStaffByCondition ( $con );
//print_r($stafflist);
$monthstart = date ( 'Y-m-d 00:00:00', mktime ( 0, 0, 0, date ( 'm' ), 1, date ( 'Y' ) ) );
$monthend = date ( 'Y-m-d 23:59:59', mktime ( 0, 0, 0, date ( 'm' ) + 1, 0, date ( 'Y' ) ) );
// 本月在职 入职 离职人员数量
$onJobCount = $staff->count ( array (
'where' => 'pendStatus=0 and username!="admin"'
) );
$inJobCount = $staff->count ( array (
'where' => 'pendStatus=0 and username!="admin" and (InductionDate>="' . $monthstart . '" and InductionDate<="' . $monthend . '" )'
) );
$leaveJobCount = $staff->count ( array (
'where' => 'pendStatus=4 and username!="admin" and (dimissionDate>="' . $monthstart . '" and dimissionDate<="' . $monthend . '" )'
) );
// 生成工号
$jobNumber = $this->createJobNumber ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
$monthstart = date ( 'm.d', mktime ( 0, 0, 0, date ( 'm' ), 1, date ( 'Y' ) ) );
$monthend = date ( 'm.d', mktime ( 0, 0, 0, date ( 'm' ) + 1, 0, date ( 'Y' ) ) );
// 员工可选的
Doo::loadModel ( 'district' );
$district = new district ();
$this->data ['districtList'] = $district->get_lv ( 1 );
$this->data ['onJobCount'] = $onJobCount;
$this->data ['inJobCount'] = $inJobCount;
$this->data ['leaveJobCount'] = $leaveJobCount;
$this->data ['monthstart'] = $monthstart;
$this->data ['monthend'] = $monthend;
$this->data ['pendStatus'] = $pendStatus;
$this->data ['nature'] = $nature;
$this->data ['MebSea'] = $MebSea;
$this->data ['cid_did'] = $cid_did;
$this->data ['categoryList'] = $categoryList;
$this->data ['jobNumber'] = $jobNumber;
$this->data ['stafflist'] = $stafflist;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "hrEmployeeInfo";
$this->render ( "/humanResource/hrEmployeeApprovalsSetting", $this->data );
}
/**
* 设置员工访问CLD权限
*/
function hrEmployeeAccess() {
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : '';
$access = $this->get_args ( 'access' ) ? $this->get_args ( 'access' ) : "";
if (! empty ( $sidKey )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $sidKey );
$detail = $staff->getStaffBySid ( $sid );
$access = json_encode ( $access );
$staff->cldAccess = $access;
$staff->update ( array (
'where' => 'sid=' . $sid
) );
return '/hrEmployeeApprovalsSetting';
}
die ( 'illegal request' );
}
/**
* 添加浏览省份的权限
*/
function addUserDistrictAuthor() {
$didKey = $this->get_args ( 'didKey' ) ? $this->get_args ( 'didKey' ) : array ();
$sidKey = $this->get_args ( 'sidKey' ) ? $this->get_args ( 'sidKey' ) : array ();
if (! empty ( $didKey ) && ! empty ( $sidKey )) {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $sidKey );
$sDetail = $staff->getStaffBySid ( $sid );
$sDidList = explode ( ',', $sDetail ['did'] );
$staff->did = implode ( ',', $didKey );
$staff->sid = $sid;
$staff->update ();
return '/hrEmployeeApprovalsSetting';
}
die ( 'illegal request' );
}
/**
* 岗位设置
*/
function position() {
Doo::loadModel ( 'position' );
$position = new position ();
$listPosition = $position->getPositionByAll ();
$this->data ['listPosition'] = $listPosition;
$this->data ['memu'] = "HumanResource";
$this->data ['hrMemu'] = "position";
$this->render ( "/humanResource/position", $this->data );
}
/**
* 添加岗位设置
* @return string
*/
function positionAdd() {
$positionName = $this->get_args ( 'positionName' ) ? $this->get_args ( 'positionName' ) : "";
$positionDescribe = $this->get_args ( 'positionDescribe' ) ? $this->get_args ( 'positionDescribe' ) : "";
$baseWage = is_numeric ( $this->get_args ( 'baseWage' ) ) ? $this->get_args ( 'baseWage' ) : 0;
$postWage = is_numeric ( $this->get_args ( 'postWage' ) ) ? $this->get_args ( 'postWage' ) : 0;
$achievementBonus = is_numeric ( $this->get_args ( 'achievementBonus' ) ) ? $this->get_args ( 'achievementBonus' ) : 0;
// && ! empty ( $postWage ) && ! empty ( $achievementBonus )
if (! empty ( $positionName ) && ! empty ( $positionDescribe ) && ! empty ( $baseWage )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'position' );
$position = new position ();
$position->positionName = $positionName;
$position->positionDescribe = $positionDescribe;
$position->baseWage = $baseWage;
$position->postWage = $postWage;
$position->achievementBonus = $achievementBonus;
$position->insert ();
}
return '/position';
}
/**
* 添加岗位设置
* @return string
*/
function positionUpdate() {
$pidkey = $this->get_args ( 'pidkey' ) ? $this->get_args ( 'pidkey' ) : "";
$positionName = $this->get_args ( 'positionName' ) ? $this->get_args ( 'positionName' ) : "";
$positionDescribe = $this->get_args ( 'positionDescribe' ) ? $this->get_args ( 'positionDescribe' ) : "";
$baseWage = is_numeric ( $this->get_args ( 'baseWage' ) ) ? $this->get_args ( 'baseWage' ) : 0;
$postWage = is_numeric ( $this->get_args ( 'postWage' ) ) ? $this->get_args ( 'postWage' ) : 0;
$achievementBonus = is_numeric ( $this->get_args ( 'achievementBonus' ) ) ? $this->get_args ( 'achievementBonus' ) : 0;
// && ! empty ( $postWage ) && ! empty ( $achievementBonus )
if (! empty ( $pidkey ) && ! empty ( $positionName ) && ! empty ( $positionDescribe ) && ! empty ( $baseWage )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'position' );
$position = new position ();
$pid = $XDeode->decode ( $pidkey );
$position->positionName = $positionName;
$position->positionDescribe = $positionDescribe;
$position->baseWage = $baseWage;
$position->postWage = $postWage;
$position->achievementBonus = $achievementBonus;
$position->update ( array (
'where' => ' pid=' . $pid
) );
// 更新用户岗位信息
Doo::loadModel ( 'staff' );
$staff = new staff ();
$staff->position = $positionName;
$staff->update ( array (
'where' => ' positionId=' . $pid
) );
}
return '/position';
}
/**
* 删除单位
*/
function positionDelete() {
$pidkey = $this->get_args ( 'pidkey' ) ? $this->get_args ( 'pidkey' ) : "";
if (! empty ( $pidkey )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'position' );
$position = new position ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$pid = $XDeode->decode ( $pidkey );
$staffCount = $staff->count ( array (
'where' => 'positionId = "' . $pid . '"'
) );
if ($staffCount != 0)
die ( 'illegal request' );
$position->delete ( array (
'where' => ' pid=' . $pid
) );
}
return '/position';
}
/**
* 获得岗位下所有的用户
*/
function ajaxGetStaffByPid() {
$pidkey = $this->get_args ( 'pidkey' ) ? $this->get_args ( 'pidkey' ) : "";
if (empty ( $pidkey )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'position' );
$position = new position ();
$detail = $position->getPositionByPid ( $pidkey );
$list = $staff->getStaffByPositionId ( $pidkey );
$html = '
办事处 | 姓名 | 入职时间 |
';
foreach ( $list as $key => $value ) {
// seniorityFormula
$seniorityFormula = json_decode ( $value ['seniorityFormula'], true );
if (! isset ( $seniorityFormula [0] ))
$seniorityFormula [0] ['InductionDate'] = 0;
$html .= '
' . $value ['category'] . ' | ' . $value ['username'] . ' | ' . $seniorityFormula [0] ['InductionDate'] . ' |
';
}
echo json_encode ( array (
'status' => 1,
'positionName' => $detail ['positionName'],
'html' => $html
) );
die ();
}
/**
* 获取岗位信息
*/
function ajaxGetPositionByPid() {
$pidkey = $this->get_args ( 'pidkey' ) ? $this->get_args ( 'pidkey' ) : "";
if (empty ( $pidkey )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadModel ( 'position' );
$position = new position ();
$detail = $position->getPositionByPid ( $pidkey );
echo json_encode ( array (
'status' => 1,
'detail' => $detail
) );
die ();
}
/**
* 获得员工信息(未编写html)
*/
function ajaxGetStaffInfoBySid() {
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
if (empty ( $serial )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $serial );
$detail = $staff->getStaffBySid ( $sid );
echo json_encode ( array (
'status' => 1,
'detail' => $detail
) );
die ();
}
/**
* 获得员工信息
*/
function ajaxGetStaffInfoByType() {
$type = $this->get_args ( 'type' ) ? $this->get_args ( 'type' ) : "";
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
// $loss = $this->get_args ( 'loss' ) ? $this->get_args ( 'loss' ) : false;
if (empty ( $serial )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
if ($type == 'STAFF') {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
$sid = $XDeode->decode ( $serial );
$detail = $staff->getStaffBySid ( $sid );
// 获得操作日志
$SOPL = $staffOperationLog->getInvoiceOperationLogByUid ( $sid, 'desc' );
if (empty ( $detail ))
$html = '';
else {
$html = '
工号 | ' . $detail ['jobNumber'] . ' |
姓名 | ' . $detail ['username'] . ' |
办事处/部门 | ' . $detail ['category'] . '/' . $detail ['department'] ['departmentName'] . ' |
岗位 | ' . $detail ['position'] . ' |
入职日期 | ' . $detail ['hiredate'] . ' |
手机 | ' . $detail ['telephone'] . ' |
QQ | ' . $detail ['qq'] . ' |
微信 | ' . $detail ['wecat'] . ' |
电话 | ' . $detail ['phone'] . ' |
邮箱 | ' . $detail ['email'] . ' |
';
if($detail ['pendStatus']!=3){
$html .= '
性别 | ' . $detail ['gender'] . ' |
出生日期 | ' . $detail ['birthday'] . ' |
最高学历 | ' . $detail ['qualifications'] . ' |
婚姻状况 |
';
if ($detail ['marriage'] == 0)
$html .= '未婚';
elseif ($detail ['marriage'] == 1)
$html .= '已婚';
$html .= '
|
籍贯 | ' . $detail ['nativePlace'] . ' |
现居住地址 | ' . $detail ['living'] . ' |
基本工资 | ' . $detail ['baseWage'] . ' |
岗位工资 | ' . $detail ['postWage'] . ' |
绩效奖金 | ' . $detail ['achievementBonus'] . ' |
| |
';
}
$html.='
户口所在地 | ' . $detail ['registeredResidence'] . ' |
毕业学校 | ' . $detail ['graduateInstitutions'] . ' |
所学专业 | ' . $detail ['major'] . ' |
毕业时间 | ' . $detail ['graduationTime'] . ' |
毕业学历 | ' . $detail ['education'] . ' |
';
if($detail ['pendStatus']==3){
$html .= '
离职原因 | '.$detail ['dimissionReason'].' |
离职时间 | '.$detail ['applyLeaveDate'].' |
';
}
$html .= '
';
foreach ( $SOPL as $key => $value ) {
$html .= '
' . date ( 'm', strtotime ( $value ['date'] ) ) . '-' . date ( 'd', strtotime ( $value ['date'] ) ) . '
' . date ( 'Y', strtotime ( $value ['date'] ) ) . '
- ' . $value ['category'] . '-' . $value ['username'] . '
- ' . $value ['operation'] . '
';
}
$html .= '
';
}
echo json_encode ( array (
'status' => 1,
'sidKey' => $serial,
'html' => $html
) );
die ();
} elseif ($type == 'EMPLOYEE') {
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'L_category' );
$L_category = new L_category ();
Doo::loadModel ( 'staffOperationLog' );
$staffOperationLog = new staffOperationLog ();
Doo::loadModel ( 'position' );
$position = new position ();
// 获得办事和部门
$categoryList = $L_category->getCategoryDepartment ();
// 获得岗位
$listPosition = $position->getPositionByAll ();
$sid = $XDeode->decode ( $serial );
$detail = $staff->getStaffBySid ( $sid );
// 获得操作日志
$SOPL = $staffOperationLog->getInvoiceOperationLogByUid ( $sid, 'desc' );
if (empty ( $detail ))
$html = '';
else {
$html = '
';
foreach ( $SOPL as $key => $value ) {
$html .= '
' . date ( 'm', strtotime ( $value ['date'] ) ) . '-' . date ( 'd', strtotime ( $value ['date'] ) ) . '
' . date ( 'Y', strtotime ( $value ['date'] ) ) . '
- ' . $value ['category'] . '-' . $value ['username'] . '
- ' . $value ['operation'] . '
';
}
$html .= '
';
}
echo json_encode ( array (
'status' => 1,
'sidKey' => $serial,
'html' => $html
) );
die ();
} elseif ($type == 'IRTC') {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoice->getInvoiceByIsid ( $serial, $this->staff [0] ['sid'] );
$invoiceOperationLogList = $invoiceOperationLog->getInvoiceOperationLogByIid ( $detail ['iid'] );
if (empty ( $detail ))
$html = '';
else {
$receivablesPriceedHtml = '';
$receivablesPrice = $detail ['invoicePrice'];
if (! empty ( $detail ['irid'] )) {
$irList = $invoiceReceivables->getInvoiceReceivablesInIridString ( $detail ['irid'] );
if (empty ( $irList ))
$irList [0] ['sumPrice'] = 0;
$balance = $detail ['invoicePrice'] - $irList [0] ['sumPrice'];
$receivablesPriceedHtml = '
已入账金额 | ¥' . $irList [0] ['sumPrice'] . ' |
剩余入账金额 | ¥' . $balance . ' |
';
$receivablesPrice = $balance;
}
if ($loss)
$detail ['invoicePrice'] = - $detail ['invoicePrice'];
$html = $receivablesPriceedHtml . '
开票流水号 | ' . $detail ['invoiceSerial'] . ' |
提交时间 | ' . $detail ['date'] . ' |
所在办事处 | ' . $detail ['categoryName'] . '(' . $detail ['userName'] . ') |
开票内容 | ' . $detail ['invoiceElement'] . ' |
发票备注 | ' . $detail ['remark'] . ' |
数量 | ' . $detail ['invoiceQuantity'] . ' |
单价 | ¥' . $detail ['invoiceUnitPrice'] . ' |
开票金额 | ¥' . $detail ['invoicePrice'] . ' |
';
if ($detail ['invoiceType'] == 0) {
$html .= '
增值税普通发票 |
---|
发票抬头 | ' . $detail ['invoiceTitle'] . ' |
纳税人识别码 | ' . $detail ['TIN'] . ' |
';
$receivablesMessage = $detail ['invoiceTitle'];
} else {
$html .= '
增值税专用发票 |
---|
单位名称 | ' . $detail ['invoiceCompany'] . ' |
纳税人识别码 | ' . $detail ['TIN'] . ' |
';
$receivablesMessage = $detail ['invoiceCompany'];
}
$html .= '
注册地址 | ' . $detail ['address'] . ' |
注册电话 | ' . $detail ['phone'] . ' |
开户银行 | ' . $detail ['bankAccount'] . ' |
银行账号 | ' . $detail ['bank'] . ' |
';
if ($detail ['doPost'] == 1)
$html .= '邮寄信息 |
---|
收件人 | ' . $detail ['recipients'] . ' |
收件人手机/电话 | ' . $detail ['recipientsPhone'] . ' |
收件地址 | ' . $detail ['recipientsAddress'] . ' |
邮寄物品 | ' . $detail ['mailItems'] . ' |
';
if (! empty ( $invoiceOperationLogList )) {
$html .= '审批流程 |
---|
';
foreach ( $invoiceOperationLogList as $key => $value ) {
if ($value ['status'] == 1 || $value ['status'] == 2 || $value ['status'] == 3 || $value ['status'] == 4) {
$html .= '' . $value ['date'] . '
' . $value ['category'] . '-' . $value ['username'] . ' ';
if ($value ['status'] == 2) {
$html .= '同意';
} elseif ($value ['status'] == 3) {
$html .= '退回';
} elseif ($value ['status'] == 5) {
$html .= '打印';
}
$html .= $value ['operation'] . ' ';
}
}
$html .= ' |
';
}
}
echo json_encode ( array (
'status' => 1,
'html' => $html,
'receivablesPrice' => $receivablesPrice,
'receivablesMessage' => $receivablesMessage,
'receivablesDate' => date ( "Y-m-d" ),
'iidKey' => $serial
) );
die ();
}
}
/**
* 获得客户地区
*/
function ajaxGetDistrictByLv1() {
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
if (empty ( $serial )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $serial );
$detail = $staff->getStaffBySid ( $sid );
// 员工可选的
Doo::loadModel ( 'district' );
$district = new district ();
$districtList = $district->get_lv ( 1 );
$did = explode ( ',', $detail ['did'] );
$html = '';
foreach ( $districtList as $key => $value ) {
$falg = true;
foreach ( $did as $k => $v ) {
if ($value ['didKey'] == $v) {
$html .= '';
unset ( $did [$k] );
$falg = false;
break;
}
}
if ($falg)
$html .= '';
}
$html .='
';
echo json_encode ( array (
'status' => 1,
'html' => $html
) );
}
/**
*/
function ajaxGetPromotionStaffByPid() {
$sidkey = $this->get_args ( 'sidkey' ) ? $this->get_args ( 'sidkey' ) : "";
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'position' );
$position = new position ();
$listPosition = $position->getPositionByAll ();
$detail = $staff->getStaffBySid ( $sidkey );
// print_r($deta);
$html = '
工号 | ' . $detail ['jobNumber'] . ' |
姓名 | ' . $detail ['username'] . ' |
办事处/部门 | ' . $detail ['category'];
if (! empty ( $detail ['department'] ))
$html .= '/' . $detail ['department'] ['departmentName'];
$html .= ' |
岗位 | ' . $detail ['positionDetail'] ['positionName'] . ' |
入职日期 | ' . $detail ['hiredate'] . ' 已入职' . $detail ['workforce'] . '天 |
试用日期 | 2013-07-01 |
基本工资 | ' . $detail ['baseWage'] . ' |
岗位工资 | ' . $detail ['postWage'] . ' |
绩效奖金 | ' . $detail ['achievementBonus'] . ' |
| |
';
echo json_encode ( array (
'status' => 1,
'detail' => $detail,
'html' => $html
) );
}
/**
* 生成工号
*/
function createJobNumber() {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$regularStaff = $staff->getStaffJobNumberByNature ( 1 );
$internStaff = $staff->getStaffJobNumberByInformal ();
if (empty ( $regularStaff ['jobNumber'] ))
$regularStaffJobNumber = 'Z0001';
else {
$jobNumber = preg_replace ( '/[^\.0123456789]/s', '', $regularStaff ['jobNumber'] );
$regularStaffJobNumber = 'Z' . sprintf ( "%04d", $jobNumber + 1 );
}
$internStaffJobNumber = $internStaff ['jobNumber'];
if (empty ( $internStaff ['jobNumber'] ))
$internStaffJobNumber = 'C0001';
else {
$jobNumber = preg_replace ( '/[^\.0123456789]/s', '', $internStaff ['jobNumber'] );
$internStaffJobNumber = 'C' . sprintf ( "%04d", $jobNumber + 1 );
}
$list = array (
'regularStaff' => $regularStaffJobNumber,
'internStaff' => $internStaffJobNumber
);
return $list;
}
/**
* 微信抄送功能
* @param unknown $rid
* @param string $typeMsg
*/
function setWXMsg($sid, $msg = '', $msgtype = 'text') {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$staffmsg = $staff->getOne ( array (
'where' => "sid='" . $sid . "'",
'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'];
$result = $client->SendMsg ( $user, $msg, $msgtype );
}
}
/**
* 获取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;
}
// 检查年假是否过期并更新年假
private function updateAnnualLeave($staff) {
Doo::loadModel ( 'holidaystaff' );
$hstaff = new HStaff ();
$hstaffmsg = $hstaff->getOne ( array (
'where' => 'uid=' . $staff ['sid'],
'asArray' => TRUE
) );
$hiredate = $staff ['hiredate'];
$hadyear = intval ( (time () - strtotime ( $hiredate )) / (86400 * 365) );
if ($hadyear != $hstaffmsg ['hadyear']) {
$hstaff->uid = $staff ['sid'];
$hstaff->hadyear = $hadyear;
$hstaff->yearnum = $hadyear == 0 ? 0 : (($hadyear < 10 && $hadyear >= 1) ? 5 : (($hadyear >= 10 && $hadyear < 20) ? 10 : 15));
$hstaff->update ();
}
}
/**
* 计算工龄
* @param string $seniorityFormula
*/
function getSeniority($seniorityFormula = '') {
if (! empty ( $seniorityFormula )) {
$Days = 0;
foreach ( $seniorityFormula as $key => $value ) {
$Date_1 = $value ['InductionDate'];
$Date_2 = $value ['dimissionDate'];
$d1 = strtotime ( $Date_1 );
$d2 = strtotime ( $Date_2 );
$D = round ( ($d2 - $d1) / 3600 / 24 );
$Days += $D;
}
return $Days;
}
return 0;
}
/**
* 员工主访问权限
*/
function isEmployeeVisit($employee = array()) {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$staff->getStaffBySid ( $this->staff ['sid'] );
$access = explode ( ',', $employee ['access'] );
}
}
?>