Your IP : 216.73.216.224


Current Path : /var/www/html/administrator/components/com_jssupportticket/models/
Upload File :
Current File : /var/www/html/administrator/components/com_jssupportticket/models/priority.php

<?php

/**
 * @Copyright Copyright (C) 2015 ... Ahmad Bilal
 * @license GNU/GPL http://www.gnu.org/copyleft/gpl.html
 * Company:     Buruj Solutions
  + Contact:    www.burujsolutions.com , info@burujsolutions.com
 * Created on:	May 22, 2015
  ^
  + Project:    JS Tickets
  ^
 */
defined('_JEXEC') or die('Not Allowed');
jimport('joomla.application.component.model');
jimport('joomla.html.html');

class JSSupportticketModelPriority extends JSSupportTicketModel {

    function __construct() {
        parent::__construct();
    }

    function storePriority($data) {
        $row = $this->getTable('priorities');
        if (!$row->bind($data)) {
            $this->setError($row->getError());
            return SAVE_ERROR;
        }
        if (!$row->store()) {
            $this->getJSModel('systemerrors')->updateSystemErrors($row->getError());
            $this->setError($row->getError());
            return SAVE_ERROR;
        }
        if($row->isdefault == 1){
            $this->makePriorityDefault($row->id);
        }
        JSSupportticketMessage::$recordid = $row->id;
        return SAVED;
    }
    
    function makePriorityDefault($priorityid) {
        if (!is_numeric($priorityid))
            return false;
        $result = $this->setAllPrioritiesNotDefault();
        if ($result == false) {
            return SET_DEFAULT_ERROR;
        }
        $db = $this->getDbo();
        $query = "UPDATE `#__js_ticket_priorities` set isdefault = 1 WHERE id = " . $priorityid;
        $db->setQuery($query);
        if (!$db->execute()) {
            return SET_DEFAULT_ERROR;
        }
        $configresult = $this->setPriorityConfig($priorityid);
        if ($configresult == false) {
            return SET_DEFAULT_ERROR;
        }
        return SET_DEFAULT;
    }

    function setPriorityConfig($priorityid) {
        if (!is_numeric($priorityid))
            return false;
        $db = $this->getDbo();
        $query = "UPDATE `#__js_ticket_config` set configvalue = " . $priorityid . " WHERE configname = 'priority'";
        $db->setQuery($query);
        if (!$db->execute()) {
            return false;
        }
        return true;
    }

    function setAllPrioritiesNotDefault() {
        $db = $this->getDbo();
        $query = "UPDATE `#__js_ticket_priorities` set isdefault = 0";
        $db->setQuery($query);
        if (!$db->execute()) {
            return false;
        }
        return true;
    }

    function getAllPriorities($searchpriority,$limitstart, $limit) {
        $wherequery = '';
        $db = $this->getDbo();
        $query = "SELECT COUNT(id) FROM `#__js_ticket_priorities`";
        if($searchpriority){
            $searchpriority= trim($searchpriority);
            $wherequery = " WHERE priority LIKE ".$db->quote('%'.$searchpriority.'%');
        }
        $query .= $wherequery;
        $db->setQuery($query);
        $total = $db->loadResult();
        $query = "SELECT * FROM `#__js_ticket_priorities`";
        $query .= $wherequery;
        $db->setQuery($query, $limitstart, $limit);
        $priorites = $db->loadObjectList();
        $result[0] = $priorites;
        $result[1] = $total;
        $result[2] = $searchpriority;
        return $result;
    }
    
    function getFormData($id) {
        if($id){ 
            if(!is_numeric($id))
                return false;
            $db = $this->getDbo();
            $query = "SELECT * FROM `#__js_ticket_priorities` WHERE id =".$id;
            $db->setQuery($query);
            $priority = $db->loadObject();
            $result[0] = $priority;
            return $result;
        }
    }

    function deletePriority() {
        $row = $this->getTable('priorities');
        $c_id = JFactory::getApplication()->input->get('cid', array(0), '', 'array');
        $deleteall = 1;
        foreach ($c_id as $id) {
            if(is_numeric($id)){
                if ($this->priorityCanDelete($id) == true) {
                    if (!$row->delete($id)) {
                        $this->setError($row->getErrorMsg());
                        return DELETE_ERROR;
                    }
                } else
                    $deleteall++;
            }else{
                return false;
            }
        }
        if($deleteall == 1){
            return DELETED;
        }else{
            $deleteall = $deleteall-1;
            JSSupportticketMessage::$recordid = $deleteall;
            return DELETE_ERROR;
        }
    }

    function priorityCanDelete($id) {
        if (!is_numeric($id))
            return false;
        $db = $this->getDBO();
        $query = "SELECT 
                    (SELECT COUNT(id) FROM `#__js_ticket_tickets` WHERE priorityid = $id) + 
                    (SELECT COUNT(id) FROM `#__js_ticket_priorities` WHERE id = $id AND isdefault = 1)";
        $db->setQuery($query);
        $total = $db->loadResult();
        if ($total == 0)
            return true;
        else
            return false;
    }

    function getPriorities() {
        $priorities = array();
        $db = $this->getDbo();
        $query = "SELECT * FROM `#__js_ticket_priorities`";
        $db->setQuery($query);
        $results = $db->loadObjectList();
        if ($results) {
            $priorities[] = array('value' => null, 'text' => JText::_('Select priority'));
            foreach ($results as $result) {
                $priorities[] = array('value' => $result->id, 'text' => $result->priority);
            }
        }
        return $priorities;
    }

    function getPriority($title) {
        $db = $this->getDbo();
        $query = "SELECT id, priority FROM `#__js_ticket_priorities` WHERE id != 0 ORDER BY priority ASC";
        try{
            $db->setQuery($query);
            $rows = $db->loadObjectList();
            $priority = array();
            if ($title)
                $priority[] = array('value' => '', 'text' => $title);
            foreach ($rows as $row) {
                $priority[] = array('value' => $row->id, 'text' => JText::_($row->priority));
            }
            return $priority;
        }
        catch (RuntimeException $e){
            return false;
        }
        
    }

    function getPriorityById($id) {
        if (!is_numeric($id))
            return false;
        $db = $this->getDbo();
        $query = "SELECT priority FROM `#__js_ticket_priorities` WHERE id = $id";
        $db->setQuery($query);
        $priority = $db->loadObject();
        return $priority;
    }
    function getDefaultPriorityID() {
        $db = $this->getDbo();
        $query = "SELECT id FROM `#__js_ticket_priorities` WHERE isdefault = 1";
        $db->setQuery($query);
        $priorityid = $db->loadResult();
        return $priorityid;
    }
    
    function getOverDueValues(){
        $db = $this->getDbo();
        $overduetype = $this->getJSModel('config')->getConfigurationByName('ticket_overdue_type');
        $overdueinterval = $this->getJSModel('config')->getConfigurationByName('ticket_overdue_indays');
        
        // Update Overdue type and interval
        $query = "UPDATE `#__js_ticket_priorities` set overduetypeid = " . $overduetype . " , overdueinterval =" .$overdueinterval;
        $db->setQuery($query);
        $db->execute();
    }
}

?>