예제 #1
0
function plugin_moreticket_getAddSearchOptions($itemtype)
{
    $sopt = array();
    if ($itemtype == "Ticket") {
        if (Session::haveRight("plugin_moreticket", READ)) {
            $config = new PluginMoreticketConfig();
            $sopt[3451]['table'] = 'glpi_plugin_moreticket_waitingtickets';
            $sopt[3451]['field'] = 'date_report';
            $sopt[3451]['name'] = __('Postponement date', 'moreticket');
            $sopt[3451]['datatype'] = "datetime";
            $sopt[3451]['joinparams'] = array('jointype' => 'child');
            $sopt[3451]['massiveaction'] = false;
            $sopt[3452]['table'] = 'glpi_plugin_moreticket_waitingtypes';
            $sopt[3452]['field'] = 'name';
            $sopt[3452]['name'] = PluginMoreticketWaitingType::getTypeName(1);
            $sopt[3452]['datatype'] = "dropdown";
            $sopt[3452]['joinparams'] = array('beforejoin' => array('table' => 'glpi_plugin_moreticket_waitingtickets', 'joinparams' => array('jointype' => 'child')));
            $sopt[3452]['massiveaction'] = false;
            if ($config->closeInformations()) {
                $sopt[3453]['table'] = 'glpi_plugin_moreticket_closetickets';
                $sopt[3453]['field'] = 'date';
                $sopt[3453]['name'] = __('Close ticket informations', 'moreticket') . " : " . __('Date');
                $sopt[3453]['datatype'] = "datetime";
                $sopt[3453]['joinparams'] = array('jointype' => 'child');
                $sopt[3453]['massiveaction'] = false;
                $sopt[3454]['table'] = 'glpi_plugin_moreticket_closetickets';
                $sopt[3454]['field'] = 'comment';
                $sopt[3454]['name'] = __('Close ticket informations', 'moreticket') . " : " . __('Comments');
                $sopt[3454]['datatype'] = "text";
                $sopt[3454]['joinparams'] = array('jointype' => 'child');
                $sopt[3454]['massiveaction'] = false;
                $sopt[3455]['table'] = 'glpi_plugin_moreticket_closetickets';
                $sopt[3455]['field'] = 'requesters_id';
                $sopt[3455]['name'] = __('Close ticket informations', 'moreticket') . " : " . __('Writer');
                $sopt[3455]['datatype'] = "dropdown";
                $sopt[3455]['joinparams'] = array('jointype' => 'child');
                $sopt[3455]['massiveaction'] = false;
                $sopt[3486]['table'] = 'glpi_documents';
                $sopt[3486]['field'] = 'name';
                $sopt[3486]['name'] = __('Close ticket informations', 'moreticket') . " : " . _n('Document', 'Documents', Session::getPluralNumber());
                $sopt[3486]['forcegroupby'] = true;
                $sopt[3486]['usehaving'] = true;
                $sopt[3486]['datatype'] = 'dropdown';
                $sopt[3486]['massiveaction'] = false;
                $sopt[3486]['joinparams'] = array('beforejoin' => array('table' => 'glpi_documents_items', 'joinparams' => array('jointype' => 'itemtype_item', 'specific_itemtype' => 'PluginMoreticketCloseTicket', 'beforejoin' => array('table' => 'glpi_plugin_moreticket_closetickets', 'joinparams' => array()))));
            }
        }
    }
    return $sopt;
}
 /**
  * Print the wainting ticket form
  *
  * @param $ID integer ID of the item
  * @param $options array
  *     - target filename : where to go when done.
  *     - withtemplate boolean : template or basic item
  *
  * @return Nothing (display)
  * */
 static function showForTicket($item)
 {
     global $CFG_GLPI;
     // validation des droits
     if (!Session::haveRight('plugin_moreticket', READ)) {
         return false;
     }
     if (isset($_REQUEST["start"])) {
         $start = $_REQUEST["start"];
     } else {
         $start = 0;
     }
     // Total Number of events
     $number = countElementsInTable("glpi_plugin_moreticket_waitingtickets", "`tickets_id`='" . $item->getField('id') . "'");
     if ($number < 1) {
         echo "<div class='center'>";
         echo "<table class='tab_cadre_fixe'>";
         echo "<tr><th>" . __('No historical') . "</th></tr>";
         echo "</table>";
         echo "</div><br>";
         return;
     } else {
         echo "<div class='center'>";
         // Display the pager
         Html::printAjaxPager(__('Ticket suspension history', 'moreticket'), $start, $number);
         echo "<table class='tab_cadre_fixe'>";
         echo "<tr>";
         echo "<th>" . __('Suspension date', 'moreticket') . "</th>";
         echo "<th>" . __('Reason', 'moreticket') . "</th>";
         echo "<th>" . PluginMoreticketWaitingType::getTypeName(1) . "</th>";
         echo "<th>" . __('Postponement date', 'moreticket') . "</th>";
         echo "<th>" . __('Suspension end date', 'moreticket') . "</th>";
         echo "</tr>";
         foreach (self::getWaitingTicketFromDB($item->getField('id'), array('start' => $start, 'limit' => $_SESSION['glpilist_limit'])) as $waitingTicket) {
             echo "<tr class='tab_bg_2'>";
             echo "<td>";
             echo Html::convDateTime($waitingTicket['date_suspension']);
             echo "</td>";
             echo "<td>";
             echo $waitingTicket['reason'];
             echo "</td>";
             echo "<td>";
             echo Dropdown::getDropdownName('glpi_plugin_moreticket_waitingtypes', $waitingTicket['plugin_moreticket_waitingtypes_id']);
             echo "</td>";
             echo "<td>";
             if ($waitingTicket['date_report'] == "0000-00-00 00:00:00") {
                 echo _x('periodicity', 'None');
             } else {
                 echo Html::convDateTime($waitingTicket['date_report']);
             }
             echo "</td>";
             echo "<td>";
             echo Html::convDateTime($waitingTicket['date_end_suspension']);
             echo "</td>";
             echo "</tr>";
         }
         echo "</table>";
         echo "</div>";
         Html::printAjaxPager(__('Ticket suspension history', 'moreticket'), $start, $number);
     }
 }