/** * @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); }
/** * @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); }
/** * @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; }
/** * @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; }
/** * @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()))); }
/** * @param string $data * @param AW_Helpdesk3_Model_Ticket_History $history * * @return $this */ public function process($data, $history) { $history->getTicket()->setIsDepartmentChanged(true); return $this; }