/** * @todo Sprawdzić wysyłanie maili, być może jest zdublowany mechanizm wysyłania powiadomien w przypadku akceptacji * * @param type $data * @param Zend_Db_Table_Row $row * @return type * @throws Exception */ public function saveFormData($data, Zend_Db_Table_Row $row = null) { $utils = new Logic_Utilities(); $delegation = new Delegation(); $dataRow = array_shift($data); if (null === $row) { $id_state = $dataRow["id_state"]; unset($dataRow["id_state"]); try { $idRow = $delegation->createRow($dataRow)->save(); } catch (Exception $exc) { throw new Exception('Błąd podczas zapisu do bazy danych! Treść: ' . $exc->getMessage()); } $delegationNo = Logic_Utilities::generate_deleg_no($idRow); try { $delegation->findOne($idRow)->setFromArray(array('deleg_no' => $delegationNo, 'id_state' => $id_state, 'send_mail' => $dataRow['send_mail']))->save(); } catch (Exception $exc) { throw new Exception('Błąd podczas zapisu numeru delegacji! Treść: ' . $exc->getMessage()); } } else { try { if ($data['id_state'] != Logic_ItemAbstract::STATE_NEW) { if ($row->id_state != $data['id_state']) { $row->setFromArray($data)->save(); } else { throw new Exception('Krok który próbowałeś zapisać został już wykonany.'); } } else { if (!(($row->id_state == Logic_ItemAbstract::STATE_APPROVED || $row->id_state == Logic_ItemAbstract::STATE_ACCEPTED) && $data['id_state'] == Logic_ItemAbstract::STATE_NEW)) { $row->setFromArray($data)->save(); } else { throw new Exception('Delegacja jest już w przesłana do kolejnego etapu'); } } } catch (Exception $exc) { throw new Exception('Błąd podczas zapisu do bazy danych! Treść: ' . $exc->getMessage()); } } if ($dataRow['id_state'] === self::STATE_NEW) { return $delegationNo; } // to może być zdublowany mechanizm wysyłania maila /* if ($dataRow['id_state'] !== self::STATE_ACCEPTED) { $mailer = new Logic_Mailer(Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view'), null); $user = Zend_Auth::getInstance()->getIdentity(); $params['user_full_name'] = $user->first_name . ' ' . $user->surname; $params['email'] = $user->email; try { $mailer->acceptDelegation($params); } catch (Exception $exc) { throw new Exception('Błąd podczas wysyłania maila do osoby akceptującej delegację! Treść: ' . $exc->getMessage()); } } */ return $delegationNo; }
/** * * @param type $pk * @return Zend_Db_Table_Row * @throws Exception */ public function getItemByPK($pk) { try { $row = $this->_model->findOne($pk); } catch (Exception $exc) { throw new Exception("Wystąpił błąd podczas pobierania wiersza delegacji! Treść: " . $exc->getMessage()); } if (null == $row) { return null; } if (!Logic_Utilities::delegationAccessControl($row)) { throw new Exception("Brak uprawnień do wglądu."); } return $row; }