Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as PHP by thy ( 15 years ago )
<?php
class Controller_Report_VacancyCut extends LSF_Controller
{
public function initialize()
{
$mainFrame = LSF_Frame_Manager::instance()->frame('main');
$mainFrame->place('js')->append('/js/report/vacancyCut/script.js?version=' . SCRIPT_VERSION);
$mainFrame->place('js')->append('/js/jquery-ui-1.8.4.custom.min.js');
$mainFrame->place('css')->append('/css/jquery-ui-1.8.4.custom.css');
Hr_Frame_Manager::setTitle('Отчеты | Срез по вакансиям');
Hr_Frame_Manager::setSectionTitle('Срез по вакансиям');
}
public function indexAction()
{
$vacancy = Tsk_Tools_Request::getInt('vacancy', 0);
$post = Tsk_Tools_Request::getInt('post', 11);
$this->_assign('filter_post', $post);
$this->_assign('filter_vacancy', $vacancy);
$tblVacancy = new Hr_Db_Job('ls_vacancy');
// список должностей
$tblPost = new Hr_Db_UserPost();
$postList = $tblPost->createSelect()
->order('self.name')
->execute()
->fetchAll();
$this->_assign('postList', $postList);
$vacancySelect = $tblVacancy->createSelect()
->clearFields()
->columns('self.id, self.name')
->order('self.name');
if($post){
$vacancySelect->where('self.post_id',$post);
}
$vacancyList = $vacancySelect->execute()->fetchAll();
$this->_assign('vacancyList', $vacancyList);
$tblCandidate = new Hr_Db_LSTTable('hr.hr_candidate');
$dataList = array();
$statusGroup = Hr_Model_Status::getGroupList();
foreach($statusGroup as $groupId){
$dataList[$groupId]['statusGroupName'] =
Hr_Model_Status::getStatusGroupName($groupId);
$groupStatuses = Hr_Model_Status::getGroupStatusList($groupId);
$dataList[$groupId]['statusId'] = $groupStatuses[0];
$vacCntSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->whereColumnIn('self.status',$groupStatuses)
->where('self.trash','f');
if( $post ){
$vacCntSelect->where('self.post_id',$post);
if($vacancy){
$vacCntSelect->where('self.vacancy_id',$vacancy);
}
}
$vacCnt = $vacCntSelect->execute()->fetchOne();
$dataList[$groupId]['cntByVacancy'] = $vacCnt;
if(!in_array($groupId, array(Hr_Model_Status::GROUP_NEW,Hr_Model_Status::GROUP_ACCEPT))){
foreach ($groupStatuses as $statusId) {
$dataList[$groupId]['statuses'][$statusId]['statusName'] =
Hr_Model_Status::getStatusName($statusId);
$dataList[$groupId]['statuses'][$statusId]['statusId'] = $statusId;
$vacCntSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->where('self.status',$statusId)
->where('self.trash','f');
if( $post ){
$vacCntSelect->where('self.post_id',$post);
if($vacancy){
$vacCntSelect->where('self.vacancy_id',$vacancy);
}
}
$vacCnt = $vacCntSelect->execute()->fetchOne();
$dataList[$groupId]['statuses'][$statusId]['cntByVacancy'] = $vacCnt;
}
}elseif($groupId == Hr_Model_Status::GROUP_NEW){
$dataList[$groupId]['statuses'][0]['statusName'] = 'Сегодня';
$dataList[$groupId]['statuses'][0]['statusId'] = Hr_Model_Status::NOT_VIEWED;
$dataList[$groupId]['statuses'][0]['day'] = date('d.m.Y');
$dataList[$groupId]['statuses'][1]['statusName'] = 'Вчера';
$dataList[$groupId]['statuses'][1]['statusId'] = Hr_Model_Status::NOT_VIEWED;
$dataList[$groupId]['statuses'][1]['day'] = date('d.m.Y', strtotime('-1 day'));
$todayVacSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->where('self.status',Hr_Model_Status::NOT_VIEWED)
->where('self.trash','f')
->where('date(self.date) = date(\''.date('Y-m-d').'\')');
$yesterdayVacSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->where('self.status',Hr_Model_Status::NOT_VIEWED)
->where('self.trash','f')
->where('date(self.date) = date(\''.date('Y-m-d',strtotime('-1 day')).'\')');
if($post){
$todayVacSelect->where('self.post_id',$post);
$yesterdayVacSelect->where('self.post_id',$post);
if($vacancy){
$todayVacSelect->where('self.vacancy_id',$vacancy);
$yesterdayVacSelect->where('self.vacancy_id',$vacancy);
}
}
$todayVacCnt = $todayVacSelect->execute()->fetchOne();
$yesterdayVacCnt = $yesterdayVacSelect->execute()->fetchOne();
$dataList[$groupId]['statuses'][0]['cntByVacancy'] = $todayVacCnt;
$dataList[$groupId]['statuses'][1]['cntByVacancy'] = $yesterdayVacCnt;
}elseif($groupId == Hr_Model_Status::GROUP_ACCEPT){
$dataList[$groupId]['month'] = date('m');
}
}
$dataList['trash']['statusGroupName'] = 'Архив';
$dataList['trash']['statusId'] = 'trash';
$dataList['trash']['statuses'][0]['statusName'] = 'Автоматически';
$dataList['trash']['statuses'][0]['statusId'] = 'trash';
$dataList['trash']['statuses'][0]['autoTrash'] = 't';
$dataList['trash']['statuses'][1]['statusName'] = 'Вручную';
$dataList['trash']['statuses'][1]['statusId'] = 'trash';
$dataList['trash']['statuses'][1]['autoTrash'] = 'f';
$vacTrashCntSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->where('self.trash','t');
$autoVacTrashCntSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->where('self.trash','t')
->where('self.auto_trash','t');
$manualVacTrashCntSelect = $tblCandidate->createSelect()
->clearFields()
->columns('count(self.id) as count')
->where('self.trash','t')
->where('self.auto_trash','f');
if($post){
$vacTrashCntSelect->where('self.post_id',$post);
$autoVacTrashCntSelect->where('self.post_id',$post);
$manualVacTrashCntSelect->where('self.post_id',$post);
if($vacancy){
$vacTrashCntSelect->where('self.vacancy_id',$vacancy);
$autoVacTrashCntSelect->where('self.vacancy_id',$vacancy);
$manualVacTrashCntSelect->where('self.vacancy_id',$vacancy);
}
}
$vacTrashCnt = $vacTrashCntSelect->execute()->fetchOne();
$autoVacTrashCnt = $autoVacTrashCntSelect->execute()->fetchOne();
$manualVacTrashCnt = $manualVacTrashCntSelect->execute()->fetchOne();
$dataList['trash']['cntByVacancy'] = $vacTrashCnt;
$dataList['trash']['statuses'][0]['cntByVacancy'] = $autoVacTrashCnt;
$dataList['trash']['statuses'][1]['cntByVacancy'] = $manualVacTrashCnt;
$this->_assign('dataList', $dataList);
}
}
?>
Revise this Paste