[3.1.45] liaison entre le type de ticket et la categorie

Décrivez les améliorations que vous souhaiteriez pour les prochaines versions.
Répondre
dilan
Gsup LEVEL 1
Messages : 20
Enregistré le : lun. 28 oct. 2019 12:51

Bonjour à tous,
j'aimerai pourvoir lier le type de ticket et les catégories comme fonctionne les catégories et les sous-catégories.
pouvez-vous m'orienter?
merci d'avance
dilan
Gsup LEVEL 1
Messages : 20
Enregistré le : lun. 28 oct. 2019 12:51

toujours pas de réaction?
Avatar du membre
Flox
Administrateur du site
Messages : 8973
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

l'application ne dispose pas de cette fonctionnalité dans sa version actuelle, une évolution logiciel est nécessaire.
Vous pouvez-voter dans la section roadmap pour que cette demande soit intégrer en priorité.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
bertrandkama
Gsup LEVEL 2
Messages : 36
Enregistré le : mer. 1 août 2018 07:09

J'ai pu le faire en faisant ceci:

Modifier la table "tsubcat" dans la base de données en ajoutant un champ "id_type"
tsubcat.png
tsubcat.png (6.34 Kio) Vu 4868 fois
Ensuite j'ai modifié le code source du fichier: \ticket.php ainsi qu'il suit

<select title="<?php echo T_('Sous-catégorie'); ?>" id="subcat" name="subcat" onchange="loadVal(); <?php if($rright['ticket_cat_mandatory']) {echo 'FormValidation();';} ?>" <?php if(($rright['ticket_cat']==0 && $_GET['action']!='new') || ($rright['ticket_new_cat']==0 && $_GET['action']=='new')) echo ' disabled="disabled" ';?> >
<?php
if ($_POST['category'])
{$query= $db->query("SELECT id,name FROM `tsubcat` WHERE id_type= '$_POST[type]' and cat LIKE '$_POST[category]' ORDER BY name ASC");}
else
{$query= $db->query("SELECT id,name FROM `tsubcat` WHERE cat LIKE '$globalrow[category]' ORDER BY name ASC");}
while ($row = $query->fetch())
{
if ($row['id']==0) {$row['name']=T_($row['name']);}
if ($_POST['subcat'])
{
if ($_POST['subcat']==$row['id']) echo '<option value="'.$row['id'].'" selected>'.T_($row['name']).'</option>'; else echo '<option value="'.$row['id'].'">'.T_($row['name']).'</option>';
}
else
{
if ($globalrow['subcat']==$row['id']) echo '<option value="'.$row['id'].'" selected>'.T_($row['name']).'</option>'; else echo '<option value="'.$row['id'].'">'.T_($row['name']).'</option>';
}
}
$query->closeCursor();
if ($globalrow['subcat']==0 && $_POST['subcat']==0) echo "<option value=\"\" selected></option>";
?>
</select>

ça marche super bien chez moi
Mechayem
Gsup LEVEL 0
Messages : 6
Enregistré le : jeu. 17 sept. 2020 10:25

Je n'ai pas encore essayé d'implémenter cette solution mais cela me parait être une bonne solution pour ajouter un troisième niveau de catégorisation.
Dans notre emploi de la solution nous avons été à plusieurs reprises limité par les deux niveaux de catégorie.

Avec le code présent et si cela ne représente pas une charge de travail conséquente serait-il possible de l'intégrer dans une future évolution ?

Encore une fois très bon produit ! Merci pour tout le travail effectué
Mechayem
Gsup LEVEL 0
Messages : 6
Enregistré le : jeu. 17 sept. 2020 10:25

Alors ça n'avait pas le comportement que je pensais ou alors je n'ai pas bien compris la modification :)

Cela m'a néanmoins inspiré pour faire les modifications suivantes :
- Le champ Type et le champ Catégorie sont liés de la même manière que Catégorie et Sous-catégorie sont liés
- Dans l'ajout et la modification de ticket, les champs Catégorie et Sous-catégorie se mettent à jour en changeant le champ Type
- Dans l'ajout et la modification de ticket, le champ Type est au dessus de la Catégorie
- Dans l'administration, l'ajout et la modification d'une Catégorie a maintenant une liste déroulante des Types

Les soucis qui restent :
- Affichage d'un champ vide ou bien de "Aucune" assez aléatoire quand l'id de la Catégorie ou de la Sous-catégorie est à 0. Je ne comprend pas bien pourquoi un coup il n'y a rien et pourquoi un coup on a "Aucune".

Les fichiers modifiés sont les suivants :
- /admin/list.php
- /ticket.php
- /js/ticket.js
- /ajax/ticket_category_db.php (nouveau fichier créé à partir de ticket_subcat_db.php, pensez à mettre les bons droits sur le fichier : chown -R gestsup:www-data /var/www/html/ajax/ticket_category_db.php)

La nouvelle entrée en base de donnée :

Code : Tout sélectionner

ALTER TABLE tcategory ADD COLUMN id-type INT DEFAULT 0 AFTER number;
Fichiers joints
fichiers.zip
(29.84 Kio) Téléchargé 141 fois
Mechayem
Gsup LEVEL 0
Messages : 6
Enregistré le : jeu. 17 sept. 2020 10:25

Je n'ai pas vu comment éditer un précédent message, désolé pour les réponse en suivant.

Petite faute dans la requête :

Code : Tout sélectionner

ALTER TABLE tcategory ADD COLUMN id_type INT DEFAULT 0 AFTER number;
Quelques corrections dans les fichiers, je les remets aussi.
Fichiers joints
fichiers.zip
(29.75 Kio) Téléchargé 143 fois
Répondre