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