Example #1
0
 public function editRepaire(Application_Model_Repaire $repaire)
 {
     // редактируем запись
     $this->update($repaire->makearray(), 'id=' . (int) $repaire->id);
 }
Example #2
0
 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']);
     }
 }