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
[3.1.45] liaison entre le type de ticket et la categorie
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
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.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
-
- 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"
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
Modifier la table "tsubcat" dans la base de données en ajoutant un champ "id_type"
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
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é
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é
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 :
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é 217 fois
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 :
Quelques corrections dans les fichiers, je les remets aussi.
Petite faute dans la requête :
Code : Tout sélectionner
ALTER TABLE tcategory ADD COLUMN id_type INT DEFAULT 0 AFTER number;
- Fichiers joints
-
- fichiers.zip
- (29.75 Kio) Téléchargé 228 fois