Beispiel #1
0
 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();
             }
         }
     }
 }
Beispiel #2
0
 public function renderMenu()
 {
     if (Helpdesk::module('user')->user()->superuser) {
         $this->widget('AdminMenu');
     } else {
         if (!Yii::app()->user->isGuest) {
             $this->widget('UserMenu');
         }
     }
 }
Beispiel #3
0
 public function beforeAction($action)
 {
     $this->layout = Helpdesk::module('helpdesk')->layout;
     return parent::beforeAction($action);
 }
Beispiel #4
0
        }
        ?>

      <?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 
        }
Beispiel #5
0
    </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 
Beispiel #6
0
"></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));
 }