示例#1
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = self::getTypeName(2);
     $tab[1]['table'] = $this->table;
     $tab[1]['field'] = 'registration_number';
     $tab[1]['name'] = __('Administrative number');
     $tab[1]['datatype'] = 'string';
     $tab[2]['table'] = $this->table;
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[34]['table'] = $this->table;
     $tab[34]['field'] = 'realname';
     $tab[34]['name'] = __('Surname');
     $tab[34]['datatype'] = 'string';
     $tab[9]['table'] = $this->table;
     $tab[9]['field'] = 'firstname';
     $tab[9]['name'] = __('First name');
     $tab[9]['datatype'] = 'string';
     $tab[5]['table'] = 'glpi_useremails';
     $tab[5]['field'] = 'email';
     $tab[5]['name'] = _n('Email', 'Emails', 2);
     $tab[5]['datatype'] = 'email';
     $tab[5]['joinparams'] = array('jointype' => 'child');
     $tab[5]['forcegroupby'] = true;
     $tab[5]['massiveaction'] = false;
     $tab += Location::getSearchOptionsToAdd();
     $tab[6]['table'] = $this->table;
     $tab[6]['field'] = 'phone';
     $tab[6]['name'] = __('Phone');
     $tab[6]['datatype'] = 'string';
     $tab[10]['table'] = $this->table;
     $tab[10]['field'] = 'phone2';
     $tab[10]['name'] = __('Phone 2');
     $tab[10]['datatype'] = 'string';
     $tab[11]['table'] = $this->table;
     $tab[11]['field'] = 'mobile';
     $tab[11]['name'] = __('Mobile phone');
     $tab[11]['datatype'] = 'string';
     // FROM employee
     $tab[4313]['table'] = 'glpi_plugin_resources_employers';
     $tab[4313]['field'] = 'completename';
     $tab[4313]['name'] = PluginResourcesEmployer::getTypeName(1);
     $tab[4313]['datatype'] = 'dropdown';
     $tab[4314]['table'] = 'glpi_plugin_resources_clients';
     $tab[4314]['field'] = 'name';
     $tab[4314]['name'] = PluginResourcesClient::getTypeName(1);
     $tab[4314]['datatype'] = 'dropdown';
     // FROM resources
     $tab[4315]['table'] = 'glpi_plugin_resources_contracttypes';
     $tab[4315]['field'] = 'name';
     $tab[4315]['name'] = PluginResourcesContractType::getTypeName(1);
     $tab[4315]['datatype'] = 'dropdown';
     $tab[4316]['table'] = 'glpi_plugin_resources_managers';
     $tab[4316]['field'] = 'name';
     $tab[4316]['name'] = __('Resource manager', 'resources');
     $tab[4316]['searchtype'] = 'contains';
     $tab[4316]['datatype'] = 'dropdown';
     $tab[4317]['table'] = 'glpi_plugin_resources_resources';
     $tab[4317]['field'] = 'date_begin';
     $tab[4317]['name'] = __('Arrival date', 'resources');
     $tab[4317]['datatype'] = 'date';
     $tab[4318]['table'] = 'glpi_plugin_resources_resources';
     $tab[4318]['field'] = 'date_end';
     $tab[4318]['name'] = __('Departure date', 'resources');
     $tab[4318]['datatype'] = 'date';
     $tab[4319]['table'] = 'glpi_plugin_resources_departments';
     $tab[4319]['field'] = 'name';
     $tab[4319]['name'] = PluginResourcesDepartment::getTypeName(1);
     $tab[4319]['datatype'] = 'dropdown';
     $tab[4320]['table'] = 'glpi_plugin_resources_resourcestates';
     $tab[4320]['field'] = 'name';
     $tab[4320]['name'] = PluginResourcesResourceState::getTypeName(1);
     $tab[4320]['datatype'] = 'dropdown';
     return $tab;
 }
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Resources is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Resources. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
//Options for GLPI 0.71 and newer : need slave db to access the report
$USEDBREPLICATE = 1;
$DBCONNECTION_REQUIRED = 0;
include "../../../../inc/includes.php";
//"Rapport listant les ressources sans emploi";
//"Report listing resource without employment";
// Instantiate Report with Name
$titre = $LANG['plugin_resources']['resourcewithoutemployment'];
$report = new PluginReportsAutoReport($titre);
// Columns title (optional)
$report->setColumns(array(new PluginReportsColumnInteger('registration_number', __('Administrative number'), array('sorton' => 'registration_number')), new PluginReportsColumnLink('resource_id', __('Name'), 'PluginResourcesResource', array('sorton' => 'resource_name')), new PluginReportsColumn('firstname', __('First name'), array('sorton' => 'firstname')), new PluginReportsColumn('rank', PluginResourcesRank::getTypeName(1), array('sorton' => 'rank')), new PluginReportsColumn('situation', PluginResourcesResourceSituation::getTypeName(1), array('sorton' => 'situation')), new PluginReportsColumn('state', PluginResourcesResourceState::getTypeName(1), array('sorton' => 'state')), new PluginReportsColumnDate('date_begin', __('Arrival date', 'resources'), array('sorton' => 'date_begin')), new PluginReportsColumnDate('date_end', __('Departure date', 'resources'), array('sorton' => 'date_end'))));
// SQL statement
$condition = getEntitiesRestrictRequest(' AND ', "glpi_plugin_resources_resources", '', '', false);
$date = date("Y-m-d");
//display only resource without user linked
$query = "SELECT `glpi_users`.`registration_number`,\n                 `glpi_users`.`id` as user_id,\n                 `glpi_plugin_resources_resources`.`id` as resource_id,\n                 `glpi_plugin_resources_resources`.`name` as resource_name,\n                 `glpi_plugin_resources_resources`.`firstname`,\n                 `glpi_plugin_resources_ranks`.`name` AS rank,\n                 `glpi_plugin_resources_resourcesituations`.`name` AS situation,\n                 `glpi_plugin_resources_resourcestates`.`name` AS state,\n                 `glpi_plugin_resources_resources`.`date_begin`,\n                 `glpi_plugin_resources_resources`.`date_end`\n          FROM `glpi_users`\n          LEFT JOIN `glpi_plugin_resources_resources_items`\n               ON (`glpi_users`.`id` = `glpi_plugin_resources_resources_items`.`items_id`\n                  AND `glpi_plugin_resources_resources_items`.`itemtype`= 'User')\n          LEFT JOIN `glpi_plugin_resources_resources`\n               ON (`glpi_plugin_resources_resources`.`id` = `glpi_plugin_resources_resources_items`.`plugin_resources_resources_id`)\n          LEFT JOIN `glpi_plugin_resources_ranks`\n               ON (`glpi_plugin_resources_resources`.`plugin_resources_ranks_id` = `glpi_plugin_resources_ranks`.`id`)\n          LEFT JOIN `glpi_plugin_resources_resourcesituations`\n               ON (`glpi_plugin_resources_resources`.`plugin_resources_resourcesituations_id` = `glpi_plugin_resources_resourcesituations`.`id`)\n          LEFT JOIN `glpi_plugin_resources_resourcestates`\n               ON (`glpi_plugin_resources_resources`.`plugin_resources_resourcestates_id` = `glpi_plugin_resources_resourcestates`.`id`)\n          WHERE (`glpi_plugin_resources_resources`.`is_leaving` = 0\n             AND `glpi_users`.`is_active` = 1\n             AND `glpi_plugin_resources_resources`.`is_deleted` = '0'\n             AND `glpi_plugin_resources_resources`.`is_template` = '0'\n             AND `glpi_plugin_resources_resources`.`id` NOT IN\n                     (SELECT DISTINCT(`plugin_resources_resources_id`)\n                      FROM `glpi_plugin_resources_employments`\n                      WHERE ((`glpi_plugin_resources_employments`.`end_date` IS NULL )\n                          OR (`glpi_plugin_resources_employments`.`end_date` > '" . $date . "' ))\n                          AND ((`glpi_plugin_resources_employments`.`begin_date` IS NULL)\n                          OR ( `glpi_plugin_resources_employments`.`begin_date` < '" . $date . "')))\n             " . $condition . ")\n                          AND ((`glpi_plugin_resources_resources`.`date_end` IS NULL )\n                          OR (`glpi_plugin_resources_resources`.`date_end` > '" . $date . "' ))\n                          AND ((`glpi_plugin_resources_resources`.`date_begin` IS NULL)\n                          OR ( `glpi_plugin_resources_resources`.`date_begin` < '" . $date . "'))" . $report->getOrderBy('resource_id');
$report->setSqlRequest($query);
$report->execute();
示例#3
0
 function wizardSecondForm($ID, $options = array())
 {
     global $CFG_GLPI;
     $empty = 0;
     if ($ID > 0) {
         $this->check($ID, 'r');
     } else {
         // Create item
         $this->check(-1, 'w');
         $this->getEmpty();
         $empty = 1;
     }
     $rank = new PluginResourcesRank();
     if (!isset($options["requiredfields"])) {
         $options["requiredfields"] = 0;
     }
     if (($options['withtemplate'] == 2 || $options["new"] != 1) && $options["requiredfields"] != 1) {
         $options["name"] = $this->fields["name"];
         $options["firstname"] = $this->fields["firstname"];
         $options["locations_id"] = $this->fields["locations_id"];
         $options["users_id"] = $this->fields["users_id"];
         $options["plugin_resources_departments_id"] = $this->fields["plugin_resources_departments_id"];
         $options["date_begin"] = $this->fields["date_begin"];
         $options["date_end"] = $this->fields["date_end"];
         $options["comment"] = $this->fields["comment"];
         $options["quota"] = $this->fields["quota"];
         $options["plugin_resources_resourcesituations_id"] = $this->fields["plugin_resources_resourcesituations_id"];
         $options["plugin_resources_contractnatures_id"] = $this->fields["plugin_resources_contractnatures_id"];
         $options["plugin_resources_ranks_id"] = $this->fields["plugin_resources_ranks_id"];
         $options["plugin_resources_resourcespecialities_id"] = $this->fields["plugin_resources_resourcespecialities_id"];
         $options["plugin_resources_leavingreasons_id"] = $this->fields["plugin_resources_leavingreasons_id"];
     }
     echo "<div align='center'>";
     echo "<form action='" . $options['target'] . "' method='post'>";
     echo "<table class='plugin_resources_wizard'>";
     echo "<tr>";
     echo "<td class='plugin_resources_wizard_right_area' valign='top'>";
     echo "<div class='plugin_resources_wizard_title'><p>";
     echo "<img class='plugin_resource_wizard_img' src='" . $CFG_GLPI['root_doc'] . "/plugins/resources/pics/newresource.png' alt='newresource'/>&nbsp;";
     _e('Enter general information about the resource', 'resources');
     echo "</p></div>";
     echo "<div class='center'>";
     if (!$this->canView()) {
         return false;
     }
     echo "<table class='plugin_resources_wizard_table'>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td width='30%'>" . PluginResourcesContractType::getTypeName(1) . "</td><td width='70%'>";
     if ($this->fields["plugin_resources_contracttypes_id"]) {
         echo Dropdown::getDropdownName("glpi_plugin_resources_contracttypes", $this->fields["plugin_resources_contracttypes_id"]);
     } else {
         _e('Without contract', 'resources');
     }
     echo "</td>";
     echo "</tr></table>";
     echo "<br>";
     echo "<table class='plugin_resources_wizard_table'>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     $required = array();
     $input = array();
     if (isset($this->fields["entities_id"]) || $empty == 1) {
         if ($empty == 1) {
             $input['plugin_resources_contracttypes_id'] = 0;
             $input['entities_id'] = $_SESSION['glpiactive_entity'];
             echo "<input type='hidden' name='entities_id' value='" . $_SESSION['glpiactive_entity'] . "'>";
         } else {
             $input['plugin_resources_contracttypes_id'] = $this->fields["plugin_resources_contracttypes_id"];
             if (isset($options['withtemplate']) && $options['withtemplate'] == 2) {
                 $input['entities_id'] = $_SESSION['glpiactive_entity'];
                 echo "<input type='hidden' name='entities_id' value='" . $_SESSION['glpiactive_entity'] . "'>";
             } else {
                 $input['entities_id'] = $this->fields["entities_id"];
                 echo "<input type='hidden' name='entities_id' value='" . $this->fields["entities_id"] . "'>";
             }
         }
     }
     $required = $this->checkRequiredFields($input);
     $alert = " class='red' ";
     if (Session::isMultiEntitiesMode()) {
         echo "<tr class='plugin_resources_wizard_explain'>";
         echo "<td width='30%'>";
         _e('Entity');
         echo "</td>";
         echo "<td width='50%'>";
         echo Dropdown::getDropdownName("glpi_entities", $input['entities_id']);
         echo "</td>";
         echo "</tr>";
     }
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("name", $required)) {
         echo $alert;
     }
     echo ">";
     _e('Name');
     echo "</td>";
     echo "<td>";
     $option = array('value' => $options["name"], 'option' => "onchange=\"javascript:this.value=this.value.toUpperCase();\"");
     Html::autocompletionTextField($this, "name", $option);
     echo "</td>";
     echo "<td rowspan='2' class='plugin_resources_wizard_comment red'>";
     _e("Thank you for paying attention to the spelling of the name and the firstname of the resource. For compound firstnames, separate them with a dash \"-\".", "resources");
     echo "</td>";
     echo "</tr>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("firstname", $required)) {
         echo $alert;
     }
     echo ">";
     _e('First name');
     echo "</td>";
     echo "<td>";
     $option = array('value' => $options["firstname"], 'option' => "onChange='First2UpperCase(this.value);' style='text-transform:capitalize;'");
     Html::autocompletionTextField($this, "firstname", $option);
     echo "</td>";
     echo "</tr>";
     if ($this->fields["plugin_resources_resourcestates_id"]) {
         echo "<tr class='plugin_resources_wizard_explain'>";
         echo "<td>" . PluginResourcesResourceState::getTypeName(1) . "</td><td>";
         echo Dropdown::getDropdownName("glpi_plugin_resources_resourcestates", $this->fields["plugin_resources_resourcestates_id"]);
         echo "</td>";
         echo "</tr>";
     }
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("locations_id", $required)) {
         echo $alert;
     }
     echo ">";
     _e('Location');
     echo "</td>";
     echo "<td>";
     Dropdown::show('Location', array('name' => "locations_id", 'value' => $options["locations_id"]));
     echo "</td>";
     echo "</tr>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("quota", $required)) {
         echo $alert;
     }
     echo ">";
     _e('Quota', 'resources');
     echo "</td>";
     echo "<td>";
     echo "<input type='text' name='quota' value='" . Html::formatNumber($options["quota"], true, 4) . "' size='14'>";
     echo "</td>";
     echo "</tr></table>";
     echo "<br>";
     if ($rank->canView()) {
         echo "<table class='plugin_resources_wizard_table'>";
         echo "<tr class='plugin_resources_wizard_explain'>";
         echo "<td width='30%' ";
         if (in_array("plugin_resources_resourcesituations_id", $required)) {
             echo $alert;
         }
         echo ">";
         echo PluginResourcesResourceSituation::getTypeName(1);
         echo "</td>";
         echo "<td width='70%'>";
         $params = array('name' => 'plugin_resources_resourcesituations_id', 'value' => $options['plugin_resources_resourcesituations_id'], 'entity' => $this->fields["entities_id"], 'action' => $CFG_GLPI["root_doc"] . "/plugins/resources/ajax/dropdownContractnature.php", 'span' => 'span_contractnature');
         self::showGenericDropdown('PluginResourcesResourceSituation', $params);
         echo "</td>";
         echo "</tr>";
         echo "<tr class='plugin_resources_wizard_explain'>";
         echo "<td";
         if (in_array("plugin_resources_contractnatures_id", $required)) {
             echo $alert;
         }
         echo ">";
         echo PluginResourcesContractNature::getTypeName(1);
         echo "</td><td>";
         echo "<span id='span_contractnature' name='span_contractnature'>";
         if ($options["plugin_resources_contractnatures_id"] > 0) {
             echo Dropdown::getDropdownName('glpi_plugin_resources_contractnatures', $options["plugin_resources_contractnatures_id"]);
         } else {
             echo "<input type='hidden' name='plugin_resources_contractnatures_id' value='0'>";
             _e('None');
         }
         echo "</span>";
         echo "</td>";
         echo "</tr>";
         echo "<tr class='plugin_resources_wizard_explain'>";
         echo "<td";
         if (in_array("plugin_resources_ranks_id", $required)) {
             echo $alert;
         }
         echo ">";
         echo PluginResourcesRank::getTypeName(1);
         echo "</td>";
         echo "<td>";
         $params = array('name' => 'plugin_resources_ranks_id', 'value' => $options['plugin_resources_ranks_id'], 'entity' => $this->fields["entities_id"], 'action' => $CFG_GLPI["root_doc"] . "/plugins/resources/ajax/dropdownSpeciality.php", 'span' => 'span_speciality');
         self::showGenericDropdown('PluginResourcesRank', $params);
         echo "</td>";
         echo "</tr>";
         echo "<tr class='plugin_resources_wizard_explain'>";
         echo "<td";
         if (in_array("plugin_resources_resourcespecialities_id", $required)) {
             echo $alert;
         }
         echo ">";
         echo PluginResourcesResourceSpeciality::getTypeName(1);
         echo "</td><td>";
         echo "<span id='span_speciality' name='span_speciality'>";
         if ($options["plugin_resources_resourcespecialities_id"] > 0) {
             echo Dropdown::getDropdownName('glpi_plugin_resources_resourcespecialities', $options["plugin_resources_resourcespecialities_id"]);
         } else {
             echo "<input type='hidden' name='plugin_resources_resourcespecialities_id' value='0'>";
             _e('None');
         }
         echo "</span>";
         echo "</td>";
         echo "</tr></table>";
         echo "<br>";
     } else {
         echo "<input type='hidden' name='plugin_resources_resourcesituations_id' value='0'>";
         echo "<input type='hidden' name='plugin_resources_contractnatures_id' value='0'>";
         echo "<input type='hidden' name='plugin_resources_ranks_id' value='0'>";
         echo "<input type='hidden' name='plugin_resources_resourcespecialities_id' value='0'>";
     }
     echo "<table class='plugin_resources_wizard_table'>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td width='30%' ";
     if (in_array("users_id", $required)) {
         echo $alert;
     }
     echo ">";
     echo __('Resource manager', 'resources') . "</td>";
     echo "<td width='70%'>";
     User::dropdown(array('value' => $options["users_id"], 'name' => "users_id", 'entity' => $input['entities_id'], 'right' => 'all'));
     echo "</td>";
     echo "</tr>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("plugin_resources_departments_id", $required)) {
         echo $alert;
     }
     echo ">";
     echo PluginResourcesDepartment::getTypeName(1) . "</td><td>";
     Dropdown::show('PluginResourcesDepartment', array('name' => "plugin_resources_departments_id", 'value' => $options["plugin_resources_departments_id"], 'entity' => $this->fields["entities_id"]));
     echo "</td>";
     echo "</tr>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("date_begin", $required)) {
         echo $alert;
     }
     echo ">";
     _e('Arrival date', 'resources');
     echo "</td>";
     echo "<td>";
     Html::showDateFormItem("date_begin", $options["date_begin"], true, true);
     echo "</td>";
     echo "</tr>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td";
     if (in_array("date_end", $required)) {
         echo $alert;
     }
     echo ">";
     echo __('Departure date', 'resources') . "&nbsp;";
     if (!in_array("date_end", $required)) {
         Html::showToolTip(nl2br(__('Empty for non defined', 'resources')));
     }
     echo "</td>";
     echo "<td>";
     Html::showDateFormItem("date_end", $options["date_end"], true, true);
     echo "</td>";
     echo "</tr></table>";
     echo "<br>";
     echo "<table class='plugin_resources_wizard_table'>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td colspan='4'>" . __('Description') . "</td>";
     echo "</tr>";
     echo "<tr><td colspan='4'>";
     echo "<textarea cols='95' rows='6' name='comment' >" . $options["comment"] . "</textarea>";
     echo "</td></tr>";
     echo "<tr class='plugin_resources_wizard_explain'>";
     echo "<td colspan='2'>" . __('Send a notification') . "&nbsp;";
     echo "<input type='checkbox' name='send_notification' checked = true";
     if ($_SESSION['glpiactiveprofile']['interface'] != 'central') {
         echo " disabled='true' ";
     }
     echo " value='1'>";
     if ($_SESSION['glpiactiveprofile']['interface'] != 'central') {
         echo "<input type='hidden' name='send_notification' value=\"1\">";
     }
     echo "</td></tr>";
     echo "<tr><td colspan='4'>&nbsp;";
     echo "</td></tr>";
     if (!empty($required)) {
         echo "<tr>";
         echo "<td class='right plugin_resources_wizard_explain red' colspan='4'>";
         _e('The fields in red must be completed', 'resources');
         echo "</td>";
         echo "</tr>";
     }
     echo "</table>";
     echo "</div></td>";
     echo "</tr>";
     $contract = $this->fields["plugin_resources_contracttypes_id"];
     if ($empty == 1) {
         $contract = $input['plugin_resources_contracttypes_id'];
     }
     echo "<input type='hidden' name='plugin_resources_contracttypes_id' value=\"" . $contract . "\">";
     echo "<input type='hidden' name='plugin_resources_resourcestates_id' value=\"" . $this->fields["plugin_resources_resourcestates_id"] . "\">";
     echo "<input type='hidden' name='withtemplate' value=\"" . $options['withtemplate'] . "\" >";
     echo "<input type='hidden' name='date_declaration' value=\"" . $_SESSION["glpi_currenttime"] . "\">";
     echo "<input type='hidden' name='users_id_recipient' value=\"" . Session::getLoginUserID() . "\">";
     echo "<input type='hidden' name='id' value=\"" . $ID . "\">";
     echo "<input type='hidden' name='plugin_resources_leavingreasons_id' value='0'>";
     if ($this->canCreate() && (empty($ID) || $options['withtemplate'] == 2)) {
         echo "<tr><td class='plugin_resources_wizard_button' colspan='2'>";
         echo "<div class='preview'>";
         echo "<input type='submit' name='undo_first_step' value='" . _sx('button', '< Previous', 'resources') . "' class='submit' />";
         echo "</div>";
         echo "<div class='next'>";
         echo "<input type='submit' name='second_step' value='" . _sx('button', 'Next >', 'resources') . "' class='submit' />";
         echo "<input type='hidden' name='plugin_resources_resources_id' value='" . $this->fields["id"] . "'/>";
         echo "</div>";
         echo "</td></tr>";
     } else {
         if ($this->canCreate() && !empty($ID) && $options["new"] != 1) {
             echo "<tr><td class='plugin_resources_wizard_button' colspan='2'>";
             echo "<div class='preview'>";
             echo "<input type='submit' name='undo_first_step' value='" . _sx('button', '< Previous', 'resources') . "' class='submit' />";
             echo "</div>";
             echo "<div class='next'>";
             echo "<input type='submit' name='second_step_update' value='" . _sx('button', 'Next >', 'resources') . "' class='submit' />";
             echo "<input type='hidden' name='plugin_resources_resources_id' value='" . $this->fields["id"] . "'/>";
             echo "</div>";
             echo "</td></tr>";
         }
     }
     echo "</table>";
     Html::closeForm();
     echo "</div>";
 }
Resources is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Resources is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Resources. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
//Options for GLPI 0.71 and newer : need slave db to access the report
$USEDBREPLICATE = 1;
$DBCONNECTION_REQUIRED = 0;
include "../../../../inc/includes.php";
//"Rapport listant les ressources partantes ayant des emplois actifs"
//"Report listing resource leaving with employment active";
// Instantiate Report with Name
$titre = $LANG['plugin_resources']['resourceleavingwithactiveemployment'];
$report = new PluginReportsAutoReport($titre);
// Columns title (optional), from $LANG
$report->setColumns(array(new PluginReportsColumnInteger('registration_number', __('Administrative number'), array('sorton' => 'registration_number')), new PluginReportsColumnLink('resource_id', __('Name'), 'PluginResourcesResource', array('sorton' => 'resource_name')), new PluginReportsColumn('firstname', __('First name'), array('sorton' => 'firstname')), new PluginReportsColumn('resource_rank', PluginResourcesRank::getTypeName(1), array('sorton' => 'resource_rank')), new PluginReportsColumn('resources_situation', PluginResourcesResourceSituation::getTypeName(1), array('sorton' => 'resources_situation')), new PluginReportsColumn('resource_state', PluginResourcesResourceState::getTypeName(1), array('sorton' => 'resource_state')), new PluginReportsColumnDate('date_begin', __('Arrival date', 'resources'), array('sorton' => 'date_begin')), new PluginReportsColumnDate('date_end', __('Departure date', 'resources'), array('sorton' => 'date_end')), new PluginReportsColumnLink('employment_id', __('Name') . " - " . _n('Employment', 'Employments', 1, 'resources'), 'PluginResourcesEmployment', array('sorton' => 'employment_name')), new PluginReportsColumn('employment_profession', _n('Employment', 'Employments', 1, 'resources') . " - " . _n('Profession', 'Professions', 2, 'resources'), array('sorton' => 'employment_profession')), new PluginReportsColumn('employment_state', _n('Employment state', 'Employment states', 1, 'resources'), array('sorton' => 'employment_state')), new PluginReportsColumn('employer_name', __('Name') . " - " . _n('Employer', 'Employers', 1, 'resources'), array('sorton' => 'employer_name'))));
// SQL statement
$condition = getEntitiesRestrictRequest(' AND ', "glpi_plugin_resources_resources", '', '', false);
//display only leaving resource with active employment
$query = "SELECT `glpi_users`.`registration_number`,\n                 `glpi_users`.`id` as user_id,\n                 `glpi_plugin_resources_resources`.`id` as resource_id,\n                 `glpi_plugin_resources_resources`.`name` as resource_name,\n                 `glpi_plugin_resources_resources`.`firstname`,\n                 `glpi_plugin_resources_ranks`.`name` AS resource_rank,\n                 `glpi_plugin_resources_resourcesituations`.`name` AS resources_situation,\n                 `glpi_plugin_resources_resourcestates`.`name` AS resource_state,\n                 `glpi_plugin_resources_resources`.`date_begin`,\n                 `glpi_plugin_resources_resources`.`date_end`,\n                 `glpi_plugin_resources_employments`.`name` AS employment_name,\n                 `glpi_plugin_resources_employments`.`id` AS employment_id,\n                 `glpi_plugin_resources_employmentprofessions`.`name` AS employment_profession,\n                        `glpi_plugin_resources_employmentstates`.`name` AS employment_state,\n                 `glpi_plugin_resources_employers`.`completename` AS employer_name\n          FROM `glpi_users`\n          LEFT JOIN `glpi_plugin_resources_resources_items`\n               ON (`glpi_users`.`id` = `glpi_plugin_resources_resources_items`.`items_id`\n                  AND `glpi_plugin_resources_resources_items`.`itemtype`= 'User')\n          LEFT JOIN `glpi_plugin_resources_resources`\n               ON (`glpi_plugin_resources_resources`.`id` = `glpi_plugin_resources_resources_items`.`plugin_resources_resources_id`)\n          LEFT JOIN `glpi_plugin_resources_resourcesituations`\n               ON (`glpi_plugin_resources_resources`.`plugin_resources_resourcesituations_id` = `glpi_plugin_resources_resourcesituations`.`id`)\n          LEFT JOIN `glpi_plugin_resources_resourcestates`\n               ON (`glpi_plugin_resources_resources`.`plugin_resources_resourcestates_id` = `glpi_plugin_resources_resourcestates`.`id`)\n          LEFT JOIN `glpi_plugin_resources_employments`\n               ON (`glpi_plugin_resources_resources`.`id` = `glpi_plugin_resources_employments`.`plugin_resources_resources_id` )\n          LEFT JOIN `glpi_plugin_resources_ranks`\n               ON (`glpi_plugin_resources_resources`.`plugin_resources_ranks_id` = `glpi_plugin_resources_ranks`.`id`)\n          LEFT JOIN `glpi_plugin_resources_professions` AS `glpi_plugin_resources_employmentprofessions`\n               ON (`glpi_plugin_resources_employments`.`plugin_resources_professions_id` = `glpi_plugin_resources_employmentprofessions`.`id`)\n          LEFT JOIN `glpi_plugin_resources_employers`\n               ON (`glpi_plugin_resources_employments`.`plugin_resources_employers_id` = `glpi_plugin_resources_employers`.`id`)\n          LEFT JOIN `glpi_plugin_resources_employmentstates`\n               ON (`glpi_plugin_resources_employments`.`plugin_resources_employmentstates_id` = `glpi_plugin_resources_employmentstates`.`id`)\n          WHERE (`glpi_plugin_resources_resources`.`is_leaving` = 1\n             AND `glpi_users`.`is_active` = 1\n             AND `glpi_plugin_resources_employments`.`plugin_resources_resources_id` <> 0\n             AND `glpi_plugin_resources_resources`.`is_deleted` = '0'\n             AND `glpi_plugin_resources_resources`.`is_template` = '0'\n             AND `glpi_plugin_resources_employmentstates`.`is_active` = 1\n             " . $condition . " )\n             GROUP BY `glpi_plugin_resources_employments`.`id`, `glpi_users`.`id`" . $report->getOrderBy('registration_number');
$report->setSqlRequest($query);
$report->execute();
 function getTags()
 {
     $tags = array('resource.id' => 'ID', 'resource.name' => __('Name'), 'resource.firstname' => __('First name'), 'resource.type' => PluginResourcesContractType::getTypeName(1), 'resource.quota' => __('Quota', 'resources'), 'resource.situation' => PluginResourcesResourceSituation::getTypeName(1), 'resource.contractnature' => PluginResourcesContractNature::getTypeName(1), 'resource.rank' => PluginResourcesRank::getTypeName(1), 'resource.speciality' => PluginResourcesResourceSpeciality::getTypeName(1), 'resource.users' => __('Resource manager', 'resources'), 'resource.usersrecipient' => __('Requester'), 'resource.datedeclaration' => __('Request date'), 'resource.datebegin' => __('Arrival date', 'resources'), 'resource.dateend' => __('Departure date', 'resources'), 'resource.department' => PluginResourcesDepartment::getTypeName(1), 'resource.location' => __('Location'), 'resource.comment' => __('Description'), 'resource.usersleaving' => __('Informant of leaving', 'resources'), 'resource.leaving' => __('Declared as leaving', 'resources'), 'resource.leavingreason' => PluginResourcesLeavingReason::getTypeName(1), 'resource.helpdesk' => __('Associable to a ticket'), 'resource.action_user' => __('Last updater'), 'update.name' => __('Name'), 'update.firstname' => __('First name'), 'update.type' => PluginResourcesContractType::getTypeName(1), 'update.quota' => __('Quota', 'resources'), 'update.situation' => PluginResourcesResourceSituation::getTypeName(1), 'update.contractnature' => PluginResourcesContractNature::getTypeName(1), 'update.rank' => PluginResourcesRank::getTypeName(1), 'update.speciality' => PluginResourcesResourceSpeciality::getTypeName(1), 'update.users' => __('Resource manager', 'resources'), 'update.usersrecipient' => __('Requester'), 'update.datedeclaration' => __('Request date'), 'update.datebegin' => __('Arrival date', 'resources'), 'update.dateend' => __('Departure date', 'resources'), 'update.department' => PluginResourcesDepartment::getTypeName(1), 'update.status' => PluginResourcesResourceState::getTypeName(1), 'update.location' => __('Location'), 'update.comment' => __('Description'), 'update.usersleaving' => __('Informant of leaving', 'resources'), 'update.leaving' => __('Declared as leaving', 'resources'), 'update.leavingreason' => PluginResourcesLeavingReason::getTypeName(1), 'update.helpdesk' => __('Associable to a ticket'), 'task.name' => __('Name'), 'task.type' => __('Type'), 'task.users' => __('Technician'), 'task.groups' => __('Group'), 'task.datebegin' => __('Begin date'), 'task.dateend' => __('End date'), 'task.planned' => __('Used for planning', 'resources'), 'task.realtime' => __('Effective duration', 'resources'), 'task.finished' => __('Carried out task', 'resources'), 'task.comment' => __('Description'));
     foreach ($tags as $tag => $label) {
         $this->addTagToList(array('tag' => $tag, 'label' => $label, 'value' => true));
     }
     $this->addTagToList(array('tag' => 'resource', 'label' => __('At creation, update, removal of a resource', 'resources'), 'value' => false, 'foreach' => true, 'events' => array('new', 'update', 'delete', 'report', 'newresting', 'updateresting', 'deleteresting', 'newholiday', 'updateholiday', 'deleteholiday')));
     $this->addTagToList(array('tag' => 'updates', 'label' => __('Modified fields', 'resources'), 'value' => false, 'foreach' => true, 'events' => array('update', 'updateresting', 'updateholiday')));
     $this->addTagToList(array('tag' => 'tasks', 'label' => __('At creation, update, removal of a task', 'resources'), 'value' => false, 'foreach' => true, 'events' => array('newtask', 'updatetask', 'deletetask')));
     asort($this->tag_descriptions);
 }