public function postInsert($event) { // send message to ticket creator and observers if (!$this->getSkipNotification()) { // to creator if ($this->getCreatedBy() != $this->getTicket()->getCreatedBy()) { $to = $this->getTicket()->getRealSender() ?: $this->getTicket()->getCreator()->getEmailAddress(); Email::send($to, Email::generateSubject($this->getTicket()), EmailTemplate::newComment($this)); } // to observers and responsibles $usersToNotify = $this->getTicket()->getResponsiblesAndObserversForNotification(); foreach ($usersToNotify as $user) { if ($user->getId() != $this->getCreatedBy() and $user->getId() != $this->getTicket()->getCreatedBy()) { Email::send($user->getEmailAddress(), Email::generateSubject($this->getTicket()), EmailTemplate::newComment($this)); } } } // send messages to mentioned users $mentions = Helpdesk::findMentions($this->getText()); foreach ($mentions as $mention) { if ($mention->getId() != $this->getCreatedBy() and $mention->getId() != $this->getTicket()->getCreatedBy()) { Email::send($mention->getEmailAddress(), Email::generateSubject($this->getTicket()), EmailTemplate::newComment($this, 'mention')); $observingAlready = Doctrine_Query::create()->from('RefTicketObserver ref')->addWhere('ref.user_id = ?', $mention->getId())->addWhere('ref.ticket_id = ?', $this->getTicket()->getId())->count() !== 0; $isResponsible = Doctrine_Query::create()->from('RefTicketResponsible ref')->addWhere('ref.user_id = ?', $mention->getId())->addWhere('ref.ticket_id = ?', $this->getTicket()->getId())->count() !== 0; if (!$observingAlready and !$isResponsible) { $observeRecord = RefTicketObserver::createFromArray(['user_id' => $mention->getId(), 'ticket_id' => $this->getTicket()->getId()]); // workaround for mentions in comments created from email if (!sfContext::getInstance()->getUser()->getGuardUser()) { $observeRecord->setCreatedBy($this->getCreatedBy()); } $observeRecord->save(); } } } }
public function renderMenu() { if (Helpdesk::module('user')->user()->superuser) { $this->widget('AdminMenu'); } else { if (!Yii::app()->user->isGuest) { $this->widget('UserMenu'); } } }
public function beforeAction($action) { $this->layout = Helpdesk::module('helpdesk')->layout; return parent::beforeAction($action); }
} ?> <?php if (!isset($dontShowApply)) { $applier = $ticket->getApplier(); ?> <td> <?php if ($applier) { ?> в работе с <?php echo date('d.m.Y H:i:s', strtotime($applier->getCreatedAt())); ?> <?php } elseif (!$ticket->getIsClosed() and $sf_user->getGuardUser()->getType() === 'it-admin' and Helpdesk::checkIfImInList($sf_user->getRawValue()->getGuardUser(), $ticket->getRawValue()->getResponsibles())) { ?> <a href="<?php echo url_for('tickets/apply?id=' . $ticket->getId()); ?> " class="btn">принять в работу</a> <?php } else { ?> ещё не обработана <?php } ?> </td> <?php }
</div> <div class="btn-group" ng-controller="TicketShowPageController"> <?php if ($sf_user->hasCredential('can mark tickets as duplicates')) { ?> <button class="btn" ng-click="closeAsDup(<?php echo $ticket->getId(); ?> )">Закрыть как дубликат</button> <?php } ?> <?php if (Helpdesk::checkIfImInList($sf_user->getRawValue()->getGuardUser(), $ticket->getRawValue()->getResponsibles())) { ?> <button class="btn" ng-click="iAmNotResponsibleForThis(<?php echo $ticket->getId(); ?> )">Отказаться от заявки</button> <?php } ?> </div> <div class="btn-group pull-right"> <?php if ($canManipulateThisTicket) { ?> <?php
"></span> <?php echo isset($approvingTime) ? Helpdesk::formatDurationDigital($approvingTime) : ''; ?> <span class="tablesorter-value hidden"><?php echo $approvingTime; ?> </span> </td> <td> <span class="icon icon-<?php echo $isDeadlineOk ? 'ok' : 'remove'; ?> "></span> <?php echo Helpdesk::formatDurationDigital($deadlineTime); ?> <span class="tablesorter-value hidden"><?php echo $deadlineTime; ?> </span> </td> </tr> <?php $i++; } ?> </tbody> </table> <div class="alert alert-info">
public function postHelpFix() { $input = Input::all(); $dd = new DateTime('NOW'); $y = $dd->format('Y'); $m = $dd->format('m'); $d = $dd->format('d'); if ($m >= 10) { $btw1 = $y . "-10-01"; $btw2 = $y + 1 . "-09-30"; $slash = substr($y + 544, 2, 2); } if ($m < 10) { $btw1 = $y - 1 . "-10-01"; $btw2 = $y . "-09-30"; $slash = substr($y + 543, 2, 2); } $num = DB::table('tb_durable_repair')->whereBetween('repair_date', array($btw1, $btw2))->max('id_get_year') + 1; $auto_set = DB::table('tb_durable_repair')->select('auto_set_get_name')->orderBy('repair_id', 'desc')->take(1)->get(); switch ($auto_set) { case '': $next_auto_set = "1"; break; case '1': $next_auto_set = "2"; break; default: $next_auto_set = "1"; break; } $s = $num . "/" . $slash; $get_id = str_pad($num, 5, '0', STR_PAD_LEFT); $dr = new DurableRepair(); $dr->id_get_year = $num; $dr->repair_id_get = $get_id . "/" . $slash; $dr->repair_date = $dd->format('Y-m-d'); $dr->dept_id = $input['dept_id']; $dr->sub_dept_id = $input['sub_dept_id']; $dr->sub_dept2 = $input['sub_dept_name']; $dr->tel = $input['tel']; $dr->repair_type = '1'; $dr->ruin_type = $input['ruin_type_id']; $dr->ruin = $input['ruin']; $dr->repair_name = $input['contact_name']; $dr->repair_status_report = '0'; $dr->repair_status = '0'; $dr->insert_date = $dd->format('Y-m-d'); $dr->insert_time = $dd->format('H:i:s'); $dr->insert_from_ip = $_SERVER['REMOTE_ADDR']; $dr->auto_set_get_name = $next_auto_set; $dr->symptom = $input['symptoms_id']; $dr->urgency = $input['urgency']; $dr->important_work = $input['important_work']; $dr->risk = $input['risk']; $dr->save(); $helpdesk = Helpdesk::find($input['helpdesk_id']); $helpdesk->repair_id = $dr->repair_id; $helpdesk->save(); return Redirect::to('helpdesk/help-message/' . Crypt::encrypt($dr->repair_id)); }