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();
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'/> "; _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') . " "; 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') . " "; 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'> "; 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); }