/**
  * Редактируем события
  * @param Calendar_Event $event
  * @return bool
  */
 public function edit(Calendar_Event $event)
 {
     $eventArray = Calendar_Model::getByChain($this->_user, $event->getChain());
     if (count($eventArray) == 0) {
         $this->_errors[] = "Событие не найдено";
     }
     // Если повторять каждый день
     if ($event->getEvery() == 1) {
         $arrayDays = $this->_repeat($event, 'day');
         // Неделя
     } elseif ($event->getEvery() == 7) {
         $arrayDays = $this->_repeat($event, 'week');
         // Месяц
     } elseif ($event->getEvery() == 30) {
         $arrayDays = $this->_repeat($event, 'month');
         // Квартал (сейчас не работает!)
     } elseif ($event->getEvery() == 90) {
         $arrayDays = $this->_repeat($event, '3 month');
         // Год
     } elseif ($event->getEvery() == 365) {
         $arrayDays = $this->_repeat($event, 'year');
         // Без повторения
     } else {
         $arrayDays = array($event->getDate());
     }
     if (count($this->getErrors()) == 0) {
         // Сперва удаляем все подтверждённые, затем создаём новые :)
         if ($this->deleteEvents($event->getChain())) {
             $model = Calendar_Model::update($this->_user, $event, $arrayDays);
         }
     } else {
         return false;
     }
     return true;
 }
Exemple #2
0
 /**
  * Добавляет рег. операции
  * @param oldUser $user
  * @param Calendar_Event $event
  * @param int $chain
  * @param array $arrayDays
  */
 private function createOperations(oldUser $user, Calendar_Event $event, $chain, $arrayDays)
 {
     // Создаём повторы события в виде неподтверждённых операций
     $operationsArray = array();
     foreach ($arrayDays as $value) {
         // @TODO Посмотреть, как можно адаптировать $event->__getArray()
         $operationsArray[] = array('type' => $event->getType(), 'account' => $event->getAccount(), 'amount' => $event->getAmount(), 'category' => $event->getCategory(), 'date' => $value, 'comment' => $event->getComment(), 'tags' => $event->getTags(), 'convert' => $event->getConvert(), 'close' => $event->getClose(), 'currency' => $event->getCurrency(), 'toAccount' => $event->getToAccount(), 'target' => $event->getTarget(), 'last' => $event->getLast(), 'time' => $event->getTime(), 'every' => $event->getEvery(), 'repeat' => $event->getRepeat(), 'week' => $event->getWeek(), 'accepted' => 0, 'chain' => $chain, 'mailEnabled' => $event->getMailEnabled(), 'mailDaysBefore' => $event->getMailDaysBefore(), 'mailHour' => $event->getMailHour(), 'mailMinutes' => $event->getMailMinutes(), 'smsEnabled' => $event->getSmsEnabled(), 'smsDaysBefore' => $event->getSmsDaysBefore(), 'smsHour' => $event->getSmsHour(), 'smsMinutes' => $event->getSmsMinutes());
     }
     $operation = new Operation_Model();
     // Расход и доход
     if ($event->getType() <= 1) {
         return $operation->addSome($operationsArray);
     } elseif ($event->getType() == 2) {
         return $operation->addSomeTransfer($operationsArray);
     }
 }