public function createMailFromNewMessage() { if ($this->_isLocked() || !Mage::helper('aw_hdu3/config')->isEnabled()) { return $this; } $departmentCollection = Mage::getModel('aw_hdu3/department')->getCollection(); $departmentCollection->addActiveFilter()->sortByOrder(); foreach ($departmentCollection as $department) { /** @var AW_Helpdesk3_Model_Gateway $gateway */ $gateway = $department->getGateway(); if (!$gateway->getIsActive()) { continue; } AW_Lib_Helper_Log::start(Mage::helper('aw_hdu3')->__('Start process gateway "%s".', $gateway->getTitle())); try { $gateway->load($gateway->getId()); $gateway->process(); } catch (Exception $e) { AW_Lib_Helper_Log::log($e->getMessage(), AW_Lib_Helper_Log::SEVERITY_ERROR); } AW_Lib_Helper_Log::stop(Mage::helper('aw_hdu3')->__('Stop process gateway "%s".', $gateway->getTitle())); } //remove lock Mage::app()->removeCache(self::LOCK_CACHE_ID); return $this; }
/** * Mark tickets as expire * * @return $this */ public function closeExpireTickets() { if ($this->_isLocked(self::LOCK_CACHE_CLOSE_TICKET_ID) || !Mage::helper('aw_hdu3/config')->isEnabled()) { return $this; } $ticketCollection = Mage::getModel('aw_hdu3/ticket')->getCollection(); $ticketCollection->addFilterByStatus(AW_Helpdesk3_Model_Source_Ticket_Status::WAITING_VALUE); $currentDate = new Zend_Date(); $currentDateString = $currentDate->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); AW_Lib_Helper_Log::stop(Mage::helper('aw_hdu3')->__('Mark tickets as Expired.')); foreach ($ticketCollection as $ticket) { $expireValue = Mage::helper('aw_hdu3/config')->getTicketAutoExpiration($ticket->getStoreId()); if (null === $expireValue) { continue; } $finalDay = new Zend_Date($ticket->getUpdatedAt(), Varien_Date::DATETIME_INTERNAL_FORMAT); $finalDayString = $finalDay->addDay($expireValue)->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); if ($finalDayString <= $currentDateString) { $ticket->setStatus(AW_Helpdesk3_Model_Source_Ticket_Status::CLOSED_VALUE)->save(); AW_Lib_Helper_Log::stop(Mage::helper('aw_hdu3')->__('Ticket UID[%s] marked as expired.', $ticket->getUid())); } } AW_Lib_Helper_Log::stop(Mage::helper('aw_hdu3')->__('Complete.')); //remove lock Mage::app()->removeCache(self::LOCK_CACHE_CLOSE_TICKET_ID); return $this; }
public function createFromOrder() { if (Mage::app()->getRequest()->getParam('create_ticket')) { $order = Mage::getModel('sales/order')->load(Mage::app()->getRequest()->getParam('order_id')); $history = Mage::app()->getRequest()->getPost(); $history = @$history['history']; $body = Mage::app()->getResponse()->getBody(); if (!array_key_exists('comment', $history) || empty($history['comment'])) { $message = Mage::helper('aw_hdu3')->__('Ticket has not been saved. Comment is empty'); $message = Zend_Json::encode($message); $body .= "<script type='text/javascript'>orderTicket.showMessage({$message},'error-msg')</script>"; Mage::app()->getResponse()->setBody($body); return $this; } $department = null; if (Mage::helper('aw_hdu3/config')->isPrimaryDepartmentActive(Mage::app()->getStore()->getId()) && ($defaultDepartmentId = Mage::helper('aw_hdu3/config')->getDefaultDepartmentId(Mage::app()->getStore()->getId()))) { $department = Mage::getModel('aw_hdu3/department')->load($defaultDepartmentId); } if (!$department || !$department->getId()) { $departmentCollection = Mage::getModel('aw_hdu3/department')->getCollection(); $departmentCollection->sortByOrder()->addActiveFilter()->addFilterByStoreId(Mage::app()->getStore()->getId()); $department = $departmentCollection->getFirstItem(); } if (!$department || !$department->getId()) { $message = Mage::helper('aw_hdu3')->__('Ticket has not been saved. There are no Primary Department or any Help Desk Departments configured'); $message = Zend_Json::encode($message); $body .= "<script type='text/javascript'>orderTicket.showMessage({$message},'error-msg')</script>"; Mage::app()->getResponse()->setBody($body); return $this; } $ticket = Mage::getModel('aw_hdu3/ticket'); $ticket->setDepartmentAgentId($department->getPrimaryAgentId())->setDepartmentId($department->getId())->setStatus(AW_Helpdesk3_Model_Source_Ticket_Status::NEW_VALUE)->setPriority(AW_Helpdesk3_Model_Source_Ticket_Priority::TODO_VALUE)->setCustomerName($order->getCustomerName())->setCustomerEmail($order->getCustomerEmail())->setOrderIncrementId($order->getIncrementId())->setSubject(Mage::helper('aw_hdu3')->__('Order #%s', $order->getIncrementId()))->setStoreId($order->getStoreId())->save(); AW_Lib_Helper_Log::start(Mage::helper('aw_hdu3')->__('Got new ticket from order page.')); AW_Lib_Helper_Log::stop(Mage::helper('aw_hdu3')->__('Ticket UID[%s]', $ticket->getUid())); $ticket->addHistory(AW_Helpdesk3_Model_Ticket_History_Event_Message::TYPE, array('content' => trim(@$history['comment']))); $ticketUrl = Mage::helper('adminhtml')->getUrl('helpdesk_admin/adminhtml_ticket/edit', array('id' => $ticket->getId())); $ticketUrlHtml = Mage::helper('aw_hdu3')->__('Ticket %s has been successfully saved', "<a href='{$ticketUrl}'>" . $ticket->getUid() . "</a>"); $ticketUrlHtml = Zend_Json::encode($ticketUrlHtml); $body .= "<script type='text/javascript'>orderTicket.showMessage({$ticketUrlHtml},'success-msg')</script>"; Mage::app()->getResponse()->setBody($body); } }
protected static function _compareSeverities($severity = null) { if (!$severity) { $severity = self::SEVERITY_NOTICE; } self::$_currentSeverity = $severity; if (self::$_severitiesPriority[self::$_maxSeverity] < self::$_severitiesPriority[$severity]) { self::$_maxSeverity = $severity; } }
protected function _convertMessageToMail($message, $messageUid) { $messageNumber = $this->_getMessageNumberByUid($messageUid); $currentDate = new Zend_Date(); $mail = Mage::getModel('aw_hdu3/gateway_mail'); $mail->setUid($this->getMailUidByMessageUid($messageUid))->setGatewayId($this->getId())->setFrom($this->_getMessageFrom($message))->setTo($this->getEmail())->setStatus(AW_Helpdesk3_Model_Gateway_Mail::STATUS_UNPROCESSED)->setBody($this->_getMessageBody($message))->setHeaders($this->_getMessageHeadersByNumber($messageNumber))->setSubject($this->_getMessageSubject($message))->setContentType(strtok($this->_getMessageContentType($message), ';'))->setCreatedAt($currentDate->toString(Varien_Date::DATETIME_INTERNAL_FORMAT)); try { $mail->save(); AW_Lib_Helper_Log::log(Mage::helper('aw_hdu3')->__('Message saved with UID[%s]', $mail->getUid())); } catch (Exception $e) { AW_Lib_Helper_Log::log($e->getMessage(), AW_Lib_Helper_Log::SEVERITY_ERROR); } if ($this->getIsAllowAttachment()) { $attachments = $this->_getMessageAttachment($message); if (is_array($attachments)) { foreach ($attachments as $attach) { if (is_array($attach)) { AW_Lib_Helper_Log::log(Mage::helper('aw_hdu3')->__('Got new attachment (%s)', $attach['filename'])); try { $mail->addAttachmentFromArray($attach); } catch (Exception $e) { AW_Lib_Helper_Log::log($e->getMessage(), AW_Lib_Helper_Log::SEVERITY_ERROR); } } } } } //remove mail from gateway if ($this->getDeleteEmails()) { $this->_removeMessageFromServerByNumber($messageNumber); } return $this; }