public function init() { global $settings; $names = new Application_Model_DbTable_Setup(); $names->setTableName('name'); $names_values = $names->getValues(); $types = new Application_Model_DbTable_Setup(); $types->setTableName('type'); $types_values = $types->getValues(); $status = new Application_Model_DbTable_Setup(); $status->setTableName('status'); $status_values = $status->getValues(); $users = new Application_Model_DbTable_Setup(); $users->setTableName('user'); $users_values = $users->getValues(); $owners = new Application_Model_DbTable_Setup(); $owners->setTableName('owner'); $owners_values = $owners->getValues(); // Задаём имя форме $this->setName('devices'); // Создаём элемент формы – text c именем = number $number = new Zend_Form_Element_Text('number', array('class' => 'form-control')); $number->setLabel('Номер')->setRequired(true)->setAttrib('placeholder', 'S/N:')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[A-Za-z1-90 \\.\\-]{3,20}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); //проверка редактирования или добавления елемента if ($_SESSION['edit'] == false) { $number->addValidator('Db_NoRecordExists', true, array('table' => 'devices', 'field' => 'number', 'messages' => $settings['messages']['db'])); } else { $_SESSION['edit'] = false; } $name = new Zend_Form_Element_Select('name', array('class' => 'form-control', "multiOptions" => $names_values)); $name->setLabel('Имя')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $type = new Zend_Form_Element_Select('type', array('class' => 'form-control', "multiOptions" => $types_values)); $type->setLabel('Группа аппаратов')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $owner = new Zend_Form_Element_Select('owner', array('class' => 'form-control', "multiOptions" => $owners_values)); $owner->setLabel('Принадлежность')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $user = new Zend_Form_Element_Select('user', array('class' => 'form-control', "multiOptions" => $users_values)); $user->setLabel('Территория')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $status = new Zend_Form_Element_Select('status', array('class' => 'form-control', "multiOptions" => $status_values)); $status->setLabel('Статус')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); // Создаём элемент формы – ТОРГОВАЯ ТОЧКА $city = new Zend_Form_Element_Text('city', array('class' => 'form-control')); $city->setLabel('Город')->setRequired(true)->setAttrib('placeholder', 'пример: Киев')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[А-Яа-яA-Za-z1-90 \\.\\-\\,\"\\№]{3,200}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $tt_name = new Zend_Form_Element_Text('tt_name', array('class' => 'form-control')); $tt_name->setLabel('Название "Торговой точки"')->setRequired(true)->setAttrib('placeholder', 'пример: магазин Novus')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[А-Яа-яA-Za-z1-90 \\.\\-\\,\"\\№\\)\\(]{3,200}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $tt_user = new Zend_Form_Element_Text('tt_user', array('class' => 'form-control')); $tt_user->setLabel('Контактные данные')->setRequired(true)->setAttrib('placeholder', 'пример: директор Олег Олегович')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[А-Яа-яA-Za-z1-90 \\.\\-\\,\"\\№\\)\\(]{3,200}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $tt_phone = new Zend_Form_Element_Text('tt_phone', array('class' => 'form-control')); $tt_phone->setLabel('Номер договора')->setRequired(true)->setAttrib('placeholder', 'пример: 1234567')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[А-Яа-яA-Za-z1-90 \\.\\-\\,\"\\№\\+\\(\\)]{3,200}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $adress = new Zend_Form_Element_Text('adress', array('class' => 'form-control')); $adress->setLabel('Адрес "Торговой точки"')->setRequired(true)->setAttrib('placeholder', 'привер: ул.Зоологическая 23')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[А-Яа-яA-Za-z1-90 \\.\\-\\,\"\\№\\)\\(]{3,200}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); // Создаём элемент hidden c именем = id $id = new Zend_Form_Element_Hidden('id'); // Указываем, что данные в этом элементе фильтруются как число int $id->addFilter('Int')->removeDecorator('label')->removeDecorator('element'); // Создаём элемент формы Submit c именем = submit $submit = new Zend_Form_Element_Submit('submit', array('class' => 'btn btn-default')); // Добавляем все созданные элементы к форме. $this->addElements(array($id, $number, $name, $type, $owner, $user, $status, $city, $adress, $tt_name, $tt_user, $tt_phone, $submit)); }
public function init() { global $settings; $names = new Application_Model_DbTable_Setup(); $names->setTableName('name'); $names_values = $names->getValues(); $status = new Application_Model_DbTable_Setup(); $status->setTableName('status'); $status_values = $status->getValues(); // Задаём имя форме $this->setName('sales'); // Создаём элемент формы – text c именем = number $number = new Zend_Form_Element_Text('number', array('class' => 'form-control')); $number->setLabel('Номер')->setRequired(true)->setAttrib('placeholder', 'S/N:')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[A-Za-z1-90 \\.\\-\\А\\П\\Н]{3,20}\$/i", 'messages' => $settings['messages']['error']))->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); //проверка редактирования или добавления елемента if ($_SESSION['edit'] == false) { $number->addValidator('Db_NoRecordExists', true, array('table' => 'sales', 'field' => 'number', 'messages' => $settings['messages']['db'])); } else { $_SESSION['edit'] = false; } $name = new Zend_Form_Element_Select('name', array('class' => 'form-control', "multiOptions" => $names_values)); $name->setLabel('Имя')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); // Создаём элемент формы – text c именем = number $buyer = new Zend_Form_Element_Text('buyer', array('class' => 'form-control')); $buyer->setLabel('Покупатель')->setAttrib('placeholder', 'Введите покупателя')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('regex', true, array("/^[A-Za-z1-90 \\.\\-\\А\\П\\Н]{3,20}\$/i", 'messages' => $settings['messages']['error']))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); $status = new Zend_Form_Element_Select('status', array('class' => 'form-control', "multiOptions" => $status_values)); $status->setLabel('Статус')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $settings['messages']['empty'])))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('class' => 'test')), array('Label', array('tag' => 'div', 'class' => 'form-control-static')), array('Errors', array('tag' => 'div', 'class' => 'form-control-static')), array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-group')))); // Создаём элемент hidden c именем = id $id = new Zend_Form_Element_Hidden('id'); // Указываем, что данные в этом элементе фильтруются как число int $id->addFilter('Int')->removeDecorator('label')->removeDecorator('element'); // Создаём элемент формы Submit c именем = submit $submit = new Zend_Form_Element_Submit('submit', array('class' => 'btn btn-default')); // Добавляем все созданные элементы к форме. $this->addElements(array($id, $number, $name, $buyer, $status, $submit)); }
public function indexAction() { // создаем модель $devices = new Application_Model_DbTable_Devices(); //если идет запрос сортировки if ($this->getRequest()->getParam('sort')) { $sort = $this->getRequest()->getParam('sort'); } else { $sort = $this->_helper->navigation->sortby(); } //если идет запрос количества записей на странице if ($this->getRequest()->isPost('select_limit')) { $select_limit = $this->getRequest()->getPost('select_limit'); $page = 1; } else { $select_limit = $this->_helper->navigation->selectlimit(); //если идет запрос страницы if ($this->getRequest()->getParam('page')) { $page = $this->getRequest()->getParam('page'); } else { $page = $this->_helper->navigation->page(); } } //если идет запрос типа if ($this->getRequest()->isPost('select_type')) { $select_type = $this->getRequest()->getPost('select_type'); } elseif ($this->getRequest()->getParam('select_type')) { $select_type = $this->getRequest()->getParam('select_type'); } else { $select_type = $this->_helper->navigation->selecttype(); } //обработка параметров поиска if ($this->getRequest()->isPost('search_catalog')) { $search = $this->getRequest()->getPost('search_catalog'); } elseif ($this->getRequest()->getParam('search_catalog')) { $search = $this->getRequest()->getParam('search_catalog'); } if ($search != '') { $data_array = $devices->fetchAll($devices->searchDevice($search)); } elseif ($select_type != 'all') { $data_array = $devices->fetchAll($devices->select()->where("type = '{$select_type}'")); } else { $data_array = $devices->fetchAll(); } //вывод навигации $this->_helper->navigation->initNav($sort, $select_limit, $select_type, $page, $data_array); $this->_helper->navigation->setView($this->view); $count = $select_limit; $offset = $page * $select_limit - $select_limit; //формируем запрос //запрос поиска if ($search != '') { $select = $devices->searchDevice($search)->order($sort)->limit($count, $offset); $this->view->search_param = "/search_catalog/{$search}"; //запрос конкретного типа } elseif ($select_type != 'all') { $select = $devices->select()->where("type = '{$select_type}'")->order($sort)->limit($count, $offset); //запрос типа 'все' } else { $select = $devices->select()->order($sort)->limit($count, $offset); } $type = new Application_Model_DbTable_Setup(); $type->setTableName('type'); $this->view->types = $type->getValues(); $this->view->devices = $devices->fetchAll($select); // var_dump($this->view->devices); die; $this->view->search = $search; }
public function setModel() { $this->setTableName(); $model = new Application_Model_DbTable_Setup(); $model->setTableName($this->tableName); return $model; }
public function editAction() { $number = $this->getRequest()->getParam('number'); $this->view->number = $number; //принимаем номер аппарата $id = $this->getRequest()->getParam('id'); $devices = new Application_Model_DbTable_Devices(); $device = $devices->getName($number); $this->view->name = $device['name']; //название аппарата $status = new Application_Model_DbTable_Setup(); $status->setTableName('status'); $status_values = $status->getValues(); $this->view->status = $status_values; //доступные статусы аппарата $this->view->status_ch = $device['status']; //текущий статус аппарата $repaire = new Application_Model_DbTable_Repairs(); $repaire_data = $repaire->getRepaire($id); //загружаем данные о ремонте //вырезаем лишнюю информацию о ремонте $repaire_data['spares'] = substr($repaire_data['spares'], 0, strpos($repaire_data['spares'], '||')); //загружаем текущее состояние склада запчастей $warehouse = new Application_Model_DbTable_Warehouse(); $warehouse_data = $warehouse->fetchAll(); //добавляем к текущему состоянию значения которые редактируются if ($repaire_data['serialize_data'] != 'N;') { //проверяем не является ли запись пустой foreach (unserialize($repaire_data['serialize_data']) as $repaire_id => $repaire_value) { foreach ($warehouse_data as $rows) { if ($rows['id'] == $repaire_id) { $rows['remain'] += $repaire_value; } } } } $this->view->warehouse = $warehouse_data; // Если к нам идёт Post запрос if ($this->getRequest()->isPost()) { // Принимаем его $formData = $this->getRequest()->getPost(); //принимаем данные $repaire = new Application_Model_Repaire($formData); //валидация данных $error = $repaire->checkForm(); //если нет ошибкок if (!$error) { $repaire->editRepair($id, $number, $device); $this->_helper->redirector->gotoUrl("repairs/index/number/{$number}"); //если есть ошибки } else { $this->view->error_message = 'error_message'; $this->view->claim = $repaire->claim; $this->view->diagnos = $repaire->diagnos; $this->view->spares = $repaire->spares; $this->view->work = $repaire->work; $this->view->comments = $repaire->comments; $this->view->counter = $repaire->counter; $this->view->check_data = $repaire->check_data; $this->view->checked = $repaire->checked; $this->view->status = $status_values; $this->view->status_ch = $repaire->status; $this->view->error = $error; } //если запроса ПОСТ нету, заполняем поля редактирования из базы } else { $this->view->claim = $repaire_data['claim']; $this->view->diagnos = $repaire_data['diagnos']; $this->view->spares = $repaire_data['spares']; $this->view->work = $repaire_data['work']; $this->view->comments = $repaire_data['comments']; $this->view->counter = $repaire_data['counter']; $this->view->check_data = unserialize($repaire_data['serialize_data']); $this->view->checked = unserialize($repaire_data['serialize_checked']); } }
public function indexAction() { //подсчет обсчего количества аппаратов в базе $devices = new Application_Model_DbTable_Devices(); $dd = $devices->getCountDevices(); $this->view->devices = $dd[0]['count']; //подсчет обсчего количества ремонтов в базе $repairs = new Application_Model_DbTable_Repairs(); $dd = $repairs->getCountRepairs(); $this->view->repairs = $dd[0]['count']; //передача в индекс списка имен аппаратов $devices_list = new Application_Model_DbTable_Setup(); $devices_list->setTableName('name'); $devices_names = $devices_list->fetchAll()->toArray(); $this->view->devices_list = $devices_names; $this->view->repairs_list = $devices_names; //передача в индекс списка имен аппаратов $types_list = new Application_Model_DbTable_Setup(); $types_list->setTableName('type'); $devices_types = $types_list->fetchAll()->toArray(); $this->view->devices_types = $devices_types; //передача в индекс списка статусов аппаратов $status_list = new Application_Model_DbTable_Setup(); $status_list->setTableName('status'); $devices_status = $status_list->fetchAll()->toArray(); $this->view->status_list = $devices_status; //передача в индекс списка принадлежности аппаратов $owner_list = new Application_Model_DbTable_Setup(); $owner_list->setTableName('owner'); $devices_owner = $owner_list->fetchAll()->toArray(); $this->view->owner_list = $devices_owner; //передача в индекс списка пользователей аппаратов $user_list = new Application_Model_DbTable_Setup(); $user_list->setTableName('user'); $devices_user = $user_list->fetchAll()->toArray(); $this->view->user_list = $devices_user; //проверка селектов if ($this->getRequest()->isPost()) { if ($this->getRequest()->getPost('select_device')) { $name = $this->getRequest()->getPost('select_device'); $type = $this->getRequest()->getPost('select_type'); $status = $this->getRequest()->getPost('select_status'); $owner = $this->getRequest()->getPost('select_owner'); $user = $this->getRequest()->getPost('select_user'); $repair_name = $this->getRequest()->getPost('select_repair'); } else { $name = $devices_names[0]['name']; $type = $devices_types[0]['type']; $status = $devices_status[0]['status']; $owner = $devices_owner[0]['owner']; $user = $devices_user[0]['user']; $repair_name = $devices_names[0]['name']; } } else { $name = $devices_names[0]['name']; $type = $devices_types[0]['type']; $status = $devices_status[0]['status']; $owner = $devices_owner[0]['owner']; $user = $devices_user[0]['user']; $repair_name = $devices_names[0]['name']; } //передача в индекс количестка аппаратов с именем $dd = $devices->getCountDevices($name); $this->view->count_names = $dd[0]['count']; $this->view->name = $name; //передача в индекс количестка аппаратов с именем $dd = $devices->getCountDevices($type); $this->view->count_types = $dd[0]['count']; $this->view->type = $type; //передача в индекс количестка аппаратов со статусом $dd = $devices->getCountDevices($status); $this->view->count_status = $dd[0]['count']; $this->view->status = $status; //передача в индекс количестка аппаратов с принадлежностью $dd = $devices->getCountDevices($owner); $this->view->count_owner = $dd[0]['count']; $this->view->owner = $owner; //передача в индекс количестка аппаратов с пользователем $dd = $devices->getCountDevices($user); $this->view->count_user = $dd[0]['count']; $this->view->user = $user; //передача в индекс количестка аппаратов с пользователем $dd = $repairs->getCountRepairsbyName($repair_name); $this->view->count_repair_name = $dd[0]['count']; $this->view->repair_name = $repair_name; //принимаем данные о визитерах с базы $visitor = new Application_Model_DbTable_Visitors(); $visitors = $visitor->fetchAll(); $unique_users = 0; $visits = 0; //сравниваем текущего визитера с визитерами в базе foreach ($visitors as $rows) { $unique_users++; $visits += $rows['visits']; } $this->view->unique_users = $unique_users; $this->view->visits = $visits; }