<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Handler_AdmTeachers extends Controller_Handler {

        public function before() {
            parent::before();

            $role = $this->user->RoleMark;
            Access::instance($role)->checkAccess(Access::RIGHTS_ADMIN);
        }
        
        protected function action_createTeacher()
        {
            $response['success'] = false;
            $this->post
                    ->rule('firstName', 'not_empty')
                    // ->rule('firstName', 'alpha_dash', array(':value', TRUE))
                    // ->rule('secondName', 'not_empty')
                    // ->rule('secondName', 'alpha_dash', array(':value', TRUE))
                    ->rule('lastName', 'not_empty')
                    // ->rule('lastName', 'alpha_dash', array(':value', TRUE))
                    ->rule('jobPositionID', 'not_empty')
                    ->rule('jobPositionID', 'digit')
                    ->rule('departmentID', 'not_empty')
                    ->rule('departmentID', 'digit');
            if($this->post['jobPositionID'] == 0)
            {
                $this->post->error('jobPositionID', 'not_empty');
                $response['success'] = false;
            }
            if($this->post['departmentID'] == 0)
            {
                $this->post->error('departmentID', 'not_empty');
                $response['success'] = false;
            }
            if($this->post->check())
            {
                $code = Account::instance()
                    ->createTeacher(
                        $this->post['lastName'],
                        $this->post['firstName'],
                        $this->post['secondName'],
                        $this->post['jobPositionID'],
                        $this->post['departmentID']
                    );
                if($code != -1)
                {
                    $response['success'] = true;
                    $response['messages'][1] = 'Всё ОК! Вот код активации: '.$code;
                }
                else {
                    $response['success'] = false;
                    $response['messages'][1] = 'Неверные входные данные.';
                }
            }
            else
            {
                $response['success'] = false;
                $response['messages'] = $this->post->errors();
            }
            $this->response->body(json_encode($response));
        }
        
        public function action_getTeachersList()
        {
            $departmentID = $this->post['departmentID'];
            $facultyID = $this->post['facultyID'];
            if($departmentID != 0)
                $teachers = Model_Teachers::byDepartment($departmentID);
            elseif($facultyID != 0)
                $teachers = Model_Teachers::byFaculty($facultyID);
            $twig = Twig::factory('admin/teachers/handler/listOutput');
            $twig->List = $teachers;
            $this->response->body($twig);
        }
        
        public function action_getDepartmentsList() {
            $facultyID = $this->post['facultyID'];
            $departments = Model_Departments::byFaculty($facultyID);
            $this->response->body(json_encode($departments));
        }
}