Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: