You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2024-07-02 16:17:54

MartyG
Member
Registered: 2024-06-26
Posts: 1

[Formcreator] recherche "valideur du ticket" n'affiche pas tout

Bonjour

En "Self-service" les tickets affichés lors de la recherche "valideur du ticket" ne sont que ceux venant d'un formulaire ayant fait plusieurs tickets.
Explication :
En sql la requête suivante sort 3 tickets

select 
    glpi_users.name, 
    glpi_ticketvalidations.tickets_id,
    glpi_items_tickets.items_id,
    glpi_plugin_formcreator_formanswers.id,
    glpi_plugin_formcreator_issues.id,
    glpi_plugin_formcreator_issues.items_id    
from
    glpi_users
JOIN
    (glpi_ticketvalidations, glpi_items_tickets)    
    ON
    (
    glpi_items_tickets.tickets_id = glpi_ticketvalidations.tickets_id
    AND
    glpi_ticketvalidations.users_id_validate = glpi_users.id
    )
JOIN
    glpi_plugin_formcreator_formanswers
    ON
    glpi_plugin_formcreator_formanswers.id = glpi_items_tickets.items_id
JOIN
    glpi_plugin_formcreator_issues
    ON
    (
    glpi_plugin_formcreator_issues.items_id = glpi_items_tickets.items_id
    OR
    glpi_plugin_formcreator_issues.items_id = glpi_ticketvalidations.tickets_id
    )
WHERE
    glpi_ticketvalidations.status = 2
    AND
    glpi_users.name = 'toto@tartuf.rire'

"name","tickets_id","glpi_items_tickets.items_id","glpi_plugin_formcreator_formanswers.id","glpi_plugin_formcreator_issues.id","glpi_plugin_formcreator_issues.items_id"
"toto@tartuf.rire",95334,12691,12691,191271,12691
"toto@tartuf.rire",95320,12673,12673,191253,95320
"toto@tartuf.rire",95322,12675,12675,191255,95322

mais lors de la recherche de "valideur du ticket" est "moi-même",connecté avec session de toto en self-service je n'ai que le formulaire 12691 qui s'affiche.
Cela revient à "#"     

OR
    glpi_plugin_formcreator_issues.items_id = glpi_ticketvalidations.tickets_id

dans la requête SQL

J'ai regardé dans le PHP glpi/marketplace/formcreator/inc/issues.class.php

    654       $newtab = [
    655          'id'                 => '11',
    656          'table'              => User::getTable(),
    657          'field'              => 'name',
    658          'linkfield'          => 'users_id_validate',
    659          'name'               => __('Ticket approver', 'formcreator'),
    660          'datatype'           => 'itemlink',
    661          'right'              => [
    662             '0'                  => 'validate_request',
    663             '1'                  => 'validate_incident'
    664          ],
    665          'forcegroupby'       => true,
    666          'massiveaction'      => false,
    667          'joinparams'         => [
    668             'beforejoin'         => [
    669                [
    670                   'table'              => TicketValidation::getTable(),
    671                   'joinparams'         => [
    672                      'jointype'           => 'child',
    673                      'beforejoin'         => [
    674                         'table'              => Ticket::getTable(),
    675                         'joinparams'         => [
    676                            'jointype'        => 'itemtype_item_revert',
    677                            'specific_itemtype'  => Ticket::class,
    678                         ]
    679                      ]
    680                   ]
    681                ],
    682                [
    683                   'table'              => TicketValidation::getTable(),
    684                   'joinparams'         => [
    685                      'jointype'           => 'child',
    686                      'beforejoin'         => [
    687                         'table'              => Ticket::getTable(),
    688                         'joinparams'      => [
    689                            'jointype'        => 'empty',
    690                            'condition'       => [
    691                               new \QueryExpression(
    692                                  '1=1'
    693                               ),
    694                            ],
    695                            'beforejoin'      => [
    696                               'table'           => Item_Ticket::getTable(),
    697                               'joinparams'      => [
    698                                  'jointype'        => 'itemtype_item',
    699                                  'specific_itemtype' => PluginFormcreatorFormAnswer::class,
    700                                  'beforejoin'      => [
    701                                     'table'           => PluginFormcreatorFormAnswer::getTable(),
    702                                     'joinparams'      => [
    703                                        'jointype'          => 'itemtype_item_revert',
    704                                        'specific_itemtype' => PluginFormcreatorFormAnswer::class,
    705                                     ],
    706                                  ],
    707                               ],
    708                            ],
    709                         ],
    710                      ]
    711                   ]
    712                ],
    713             ],
    714          ]
    715       ];

Il me semble que cela est mal interprété.
Si je ne conserve que les lignes 654 à 681, j'obtiens bien les deux "tickets" 95320 et 95322 mais pas le 95334.
Cela correspond à :

glpi_plugin_formcreator_issues.items_id = glpi_ticketvalidations.tickets_id

Si je supprime les lignes 669 à 681, j'obtiens que le ticket 95334 et pas les tickets 95320 et 95322.
Cela correspond à :

glpi_plugin_formcreator_issues.items_id = glpi_items_tickets.items_id

Mais avec le tout, j'ai l'impression que cela ne fait pas comme une fusion des deux requêtes mais n'applique que la dernière.
Je ne suis pas suffisamment calé en développement pour voir comment résoudre l'incident.

Cordialement

GLPI 10.0.15
Formcreator 2.13.9
php 8.2

Last edited by MartyG (2024-08-19 16:55:26)

Offline

Board footer

Powered by FluxBB