Ajout de la case "Société" lors de la création d'un ticket

Contribuer au projet de part vos connaissances: PHP, HTML, CSS, SQL, JS ....
Répondre
letouane
Gsup LEVEL 0
Messages : 5
Enregistré le : jeu. 19 mai 2016 20:12

Salut à vous,

J'ai ajouté une nouvelle petite fonctionnalité à mon instance GestSup : lors de l'ajout d'un ticket je peux choisir la société et cela vient limiter le nombre de demandeurs affichés. Pour cela j'ai modifié le fichier ticket.php à partir de la ligne <!-- START sender part -->.

Code : Tout sélectionner

<!-- START sender part -->	
<div class="form-group" >
	<label class="col-sm-2 control-label no-padding-right" for="company">
		Société:
	</label>
<div class="col-sm-9">
	<!-- If company is changed, overriding the select "user" value to '0' to avoid minor display bug-->
	<select id="company" name="company" onchange="loadVal(); $('#user').find('option').attr('selected', 'selected').val(0); submit();">
	<option value="0"></option>
	<?php
		// display company list 
		$query = $db->query("SELECT * FROM `tcompany` ORDER BY name ASC");
		while ($row = $query->fetch()) {echo "<option value=\"$row[id]\">$row[name]</option>";}
	?>
	<?php
		// add selected company at the end of the <select> if it was previously selected on a new ticket.
		if($_POST['company'] != '') {
			$fwCompany = $_POST['company'];
			$query = $db->query("SELECT * FROM `tcompany` WHERE id=$fwCompany");
			$row=$query->fetch();
			$query->closeCursor();
			echo "<option selected value=\"$fwCompany\">$row[name]</option>";
		}
		// add selected company at the end of the <select> if it was previously selected on an existing ticket.
		if ($u_group=='') {
			if ($_POST['user']) {
				$query = $db->query("SELECT * FROM `tusers` WHERE id LIKE '$_POST[user]'"); 
			} else {
				$query = $db->query("SELECT * FROM `tusers` WHERE id LIKE '$globalrow[user]'"); 
			}
			$row=$query->fetch();
			$query->closeCursor(); 
			if ($row['company']!=0) {
				$query=$db->query("SELECT * FROM tcompany WHERE id='$row[company]'"); 
				$g_company_name=$query->fetch();
				$query->closeCursor();
				echo "<option selected value=\"$g_company_name[id]\">$g_company_name[name]</option>";
			}
		}
	?>
	</select>
</div></div>
<div class="form-group <?php if(($rright['ticket_user_disp']==0 && $_GET['action']!='new') || ($rright['ticket_new_user_disp']==0 && $_GET['action']=='new')) echo 'hide';?>" >
	<label class="col-sm-2 control-label no-padding-right" for="user">
		<?php if (($_POST['user']==0) && ($globalrow['user']==0) && ($u_group=='')) echo '<i title="selectionner un demandeur." class="icon-warning-sign red bigger-130"></i>&nbsp;'; ?>
		Demandeur:
	</label>
	<div class="col-sm-9">
		<select id="user" name="user" onchange="loadVal(); submit();" <?php if(($rright['ticket_user']==0 && $_GET['action']!='new') || ($rright['ticket_new_user']==0 && $_GET['action']=='new')) echo ' disabled="disabled" ';?> >
			<?php
			//diplay user list
			if($_POST['company'] != '') {
				// If a company has been selected (so, posted from <select> "company"), display only users belonging to that company
				$query = $db->query("SELECT * FROM `tusers` WHERE disable='0' AND company=$fwCompany ORDER BY lastname ASC, firstname ASC");
			} else {
				$query = $db->query("SELECT * FROM `tusers` WHERE disable='0' ORDER BY lastname ASC, firstname ASC");
			}
			while ($row = $query->fetch()) {echo "<option value=\"$row[id]\">$row[lastname] $row[firstname]</option>";}
			//group
			$query = $db->query("SELECT * FROM `tgroups` WHERE disable='0' and type='0' ORDER BY name");
			while ($row = $query->fetch()) {echo "<option value=\"G_$row[id]\">[G] $row[name]</option>";} 
			//selection
			
			if (($globalrow['u_group']==0 && $u_group=='') || $_POST['user']!='')
			{
				if ($_POST['user'])	{$user=$_POST['user'];}	elseif ($globalrow['user']!=''){$user=$globalrow['user'];} else {$user=0;}
				$query=$db->query("SELECT * FROM tusers WHERE id LIKE '$user'");
				$row=$query->fetch();
				$query->closeCursor();
				echo "<option selected value=\"$user\">$row[lastname] $row[firstname]</option>";
			} else {
				if (($globalrow['u_group']!=$u_group) && $u_group!=''){$group=$u_group;}else {$group=$globalrow['u_group'];}
				$query=$db->query("SELECT * FROM `tgroups` WHERE id=$group");
				$row=$query->fetch();
				$query->closeCursor();
				echo "<option selected value=\"G_$u_group\">[G] $row[name]</option>";
			}
			if ($_POST['user']=='0') echo "<option selected value=\"0\">Aucun</option>";
			?>
		</select>
		<?php if(($rright['ticket_user']==0 && $_GET['action']!='new') || ($rright['ticket_new_user']==0 && $_GET['action']=='new')) echo ' <input type="hidden" name="user" value='.$globalrow['user'].' /> '; //send data in disabled case?>
		
		<!-- START sender actions part -->
		<?php
		if ($rright['ticket_user_actions']!=0)
		{
			echo'<input type="hidden" name="action" value="">';
			echo'<input type="hidden" name="edituser" value="">';
			echo '&nbsp;&nbsp;<i class="icon-plus-sign green bigger-130" title="Ajouter un utilisateur" onclick="loadVal(); document.forms[\'myform\'].action.value=\'adduser\';document.forms[\'myform\'].submit();"></i>&nbsp;&nbsp;';
			if ($u_group!=0)
			{
				echo "<i class=\"icon-pencil orange bigger-130\" title=\"Modifier le groupe\" value=\"useredit\" onClick=\"parent.location='./index.php?page=ticket&id=$_GET[id]&userid=$_GET[userid]&action=edituser&edituser=$u_group'\" \"  /></i>&nbsp;&nbsp;";
			}
			else
			{
				if ($_POST['user']) $selecteduser=$_POST['user']; else $selecteduser=$globalrow['user'];
				echo '<i class="icon-pencil orange bigger-130" title="Modifier un utilisateur" onclick="loadVal(); document.forms[\'myform\'].action.value=\'edituser\';document.forms[\'myform\'].edituser.value=\''.$selecteduser.'\';document.forms[\'myform\'].submit();"></i>&nbsp;&nbsp;';
			}
		}	
		?>
<!-- END sender actions part -->
Fonctionnalités dans l'ordre d'apparition :
- Création du bloc du formulaire Société avec la même présentation que le reste.
- Lorsque l'on change la société, le demandeur éventuellement sélectionné est outrepassé à l'aide de javascript pour sélectionner "Aucun" de nouveau (sans ça l'utilisateur restait sur le précédent sélectionné).
- Reprise de la société sélectionnée lors de la validation du formulaire d'un nouveau ticket par changement de société dans le select Société.
- Reprise de la société sélectionnée lors de l'ouverture d'un ticket existant.
- Conditionnement des demandeurs affichés par la sélection d'une société.
lionel
Gsup LEVEL 1
Messages : 18
Enregistré le : lun. 28 juil. 2014 11:25

Bonjour, je vais tester cela :)

un ajout de la fonctionnalité par défaut dans GestSup ? :)
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

vous pouvez regarder le droit "ticket_user_company" = Affiche le nom de la société de l'utilisateur dans la liste des utilisateurs sur un ticket

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
lionel
Gsup LEVEL 1
Messages : 18
Enregistré le : lun. 28 juil. 2014 11:25

Merci :) bien
Répondre