Exemplo n.º 1
0
 /**
  * @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;
 }
Exemplo n.º 2
0
 /**
  *
  * @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;
 }