Beispiel #1
0
 /**
  * @param AW_Helpdesk3_Model_Ticket_History $history
  *
  * @return Varien_Object
  */
 public function getAdditionalData($history)
 {
     $read = $this->_getReadAdapter();
     $select = $read->select()->from(array('tha' => $this->getTable('aw_hdu3/ticket_history_additional')), '*')->where('tha.ticket_history_id = ?', $history->getId());
     $additionalDataArray = $read->fetchRow($select->__toString());
     if (!is_array($additionalDataArray)) {
         $additionalDataArray = array();
     }
     return new Varien_Object($additionalDataArray);
 }
Beispiel #2
0
 /**
  * @param AW_Helpdesk3_Model_Ticket_History $event
  * @param bool $isShort
  *
  * @return Mage_Adminhtml_Block_Abstract
  * @throws Exception
  */
 public function getRendererByEvent(AW_Helpdesk3_Model_Ticket_History $event, $isShort = false)
 {
     $rendererList = array(AW_Helpdesk3_Model_Ticket_History_Event_Assignee::TYPE => 'Assignee', AW_Helpdesk3_Model_Ticket_History_Event_Department::TYPE => 'Department', AW_Helpdesk3_Model_Ticket_History_Event_Escalate::TYPE => 'Escalate', AW_Helpdesk3_Model_Ticket_History_Event_Message::TYPE => 'Message', AW_Helpdesk3_Model_Ticket_History_Event_Note::TYPE => 'Note', AW_Helpdesk3_Model_Ticket_History_Event_Priority::TYPE => 'Priority', AW_Helpdesk3_Model_Ticket_History_Event_Status::TYPE => 'Status');
     $eventType = (int) $event->getEventType();
     if (!array_key_exists($eventType, $rendererList)) {
         throw new Exception('Unexpected event type');
     }
     $blockName = 'AW_Helpdesk3_Block_Adminhtml_Ticket_Edit_Form_Thread_Renderer_' . $rendererList[$eventType];
     $attributes = array('event' => $event, 'is_short' => $isShort);
     return $this->getLayout()->createBlock($blockName, '', $attributes);
 }
Beispiel #3
0
 /**
  * @param string                            $data
  * @param AW_Helpdesk3_Model_Ticket_History $history
  *
  * @return $this
  */
 public function process($data, $history)
 {
     $notification = $history->getTicket()->getDepartment()->getEmailNotification();
     //if current agent = getPrimaryAgent no email
     if (Mage::helper('aw_hdu3/ticket')->getCurrentDepartmentAgent()->getId() != $history->getTicket()->getDepartment()->getPrimaryAgent()->getId()) {
         $notification->sendToPrimaryAgentNotificationReassign($history);
     }
     //if current agent = getDepartmentAgentId no email
     if (Mage::helper('aw_hdu3/ticket')->getCurrentDepartmentAgent()->getId() != $data['to']) {
         $notification->sendToNewAssigneeNotificationReassign($history);
     }
     $history->getTicket()->setIsAgentChanged(true);
     return $this;
 }
Beispiel #4
0
 /**
  * @param AW_Helpdesk3_Model_Ticket_History $event
  *
  * @return string|null
  */
 protected function _getAdditionalTextByEvent(AW_Helpdesk3_Model_Ticket_History $event)
 {
     $eventData = $event->getEventData();
     $text = null;
     switch ($event->getEventType()) {
         case AW_Helpdesk3_Model_Ticket_History_Event_Assignee::TYPE:
             $agent = Mage::getModel('aw_hdu3/department_agent')->load($eventData['to']);
             $agentLabel = $agent->getName();
             $text = $this->__('Assignee changed to %s', "<b>{$agentLabel}</b>");
             break;
         case AW_Helpdesk3_Model_Ticket_History_Event_Department::TYPE:
             $department = Mage::getModel('aw_hdu3/department')->load($eventData['to']);
             $departmentLabel = $department->getTitle();
             $text = $this->__('Department changed to %s', "<b>{$departmentLabel}</b>");
             break;
         case AW_Helpdesk3_Model_Ticket_History_Event_Status::TYPE:
             $status = Mage::getModel('aw_hdu3/ticket_status')->load($eventData['to']);
             $statusLabel = $status->getTitle(Mage::app()->getStore()->getId());
             $text = $this->__('Status changed to %s', "<b>{$statusLabel}</b>");
             break;
         case AW_Helpdesk3_Model_Ticket_History_Event_Priority::TYPE:
             $priority = Mage::getModel('aw_hdu3/ticket_priority')->load($eventData['to']);
             $priorityLabel = $priority->getTitle(Mage::app()->getStore()->getId());
             $text = $this->__('Priority changed to %s', "<b>{$priorityLabel}</b>");
             break;
         case AW_Helpdesk3_Model_Ticket_History_Event_Escalate::TYPE:
             $text = $this->__('Ticket has been escalated');
             break;
     }
     return $text;
 }
Beispiel #5
0
 /**
  * @param string $template
  * @param AW_Helpdesk3_Model_Ticket_History $history
  *
  * @return $this
  */
 protected function _sendNotificationToCustomer($template, $history)
 {
     $ticket = $history->getTicket();
     $message = $history->getEventData();
     $storeId = $ticket->getStoreId();
     $storeLocaleCode = Mage::getStoreConfig('general/locale/code', $storeId);
     Mage::app()->getTranslator()->setLocale($storeLocaleCode);
     Mage::app()->getTranslator()->init('frontend', true);
     return $this->_send($template, $ticket->getCustomerEmail(), $ticket->getCustomerName(), $history->getAttachmentCollection()->getItems(), $ticket, array_merge($this->getTicketEmailVariables($ticket), array('message' => isset($message['content']) ? $message['content'] : '', 'external_link_html' => $this->_getCustomerExternalLinkHtml($ticket), 'allow_rate' => (bool) Mage::helper('aw_hdu3/config')->isAllowRate(), 'external_link_rate_1' => $this->_getRateExternalLinkHtml($ticket, 1), 'external_link_rate_2' => $this->_getRateExternalLinkHtml($ticket, 2), 'external_link_rate_3' => $this->_getRateExternalLinkHtml($ticket, 3), 'external_link_rate_4' => $this->_getRateExternalLinkHtml($ticket, 4), 'external_link_rate_5' => $this->_getRateExternalLinkHtml($ticket, 5), 'is_status_changed' => (bool) $ticket->getIsStatusChanged())));
 }
Beispiel #6
0
 /**
  * @param string                            $data
  * @param AW_Helpdesk3_Model_Ticket_History $history
  *
  * @return $this
  */
 public function process($data, $history)
 {
     $history->getTicket()->setIsDepartmentChanged(true);
     return $this;
 }