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 2017-07-24 15:33:01

guest1
Member
Registered: 2017-07-20
Posts: 5

Inventory Number Generation

Bonjour à tous,
Je suis stagiaire dans une entreprise qui travaille avec GLPI v0.95, et j'utilise le plugin Inventory Number Generation pour générer les numéros d'inventaires automatiquement. Le problème c'est que le numéro d'inventaire doit comprendre l’entité et la date d’entrée et non pas des nombres aléatoires.
Si vous avez des solutions ou des idées que je peux essayer je suis preneur
Merci

Offline

#2 2017-07-26 11:07:16

guest1
Member
Registered: 2017-07-20
Posts: 5

Re: Inventory Number Generation

Concernant la date j'ai déjà trouver la solution. Dans le fichier ..\glpi\plugins\geninventorynumber\inc\generation.class.php  j'ai trouver ces lignes de codes:

if (preg_match("/\\#{1,10}/", $autoNum, $mask)) {
            $serial = (isset ($item->fields['serial']) ? $item->fields['serial'] : '');
            $name   = (isset ($item->fields['name']) ? $item->fields['name'] : '');
           
           
            $global  = strpos($autoNum, '\\g') !== false && $type != INFOCOM_TYPE ? 1 : 0;
            $autoNum = str_replace(array ('\\y', '\\Y', '\\m', '\\d', '_', '%', '\\g', '\\s', '\\n', '\\e'),
                                   array (date('y'), date('Y'), date('m'), date('d'), '\\_',
                                           '\\%', '', $serial, $name, $data), $autoNum);

Donc en mettant \\Y j'ai la date mais $name et $serial ne marche pas si je comprends d'où vient l'erreur je peut insérer les entités.

Offline

#3 2017-07-26 12:12:49

bzh
Member
Registered: 2016-09-25
Posts: 417

Re: Inventory Number Generation

Ta demande est impossible :

"doit comprendre l’entité et la date d’entrée "

--
Exemple d'impossibilité  :
si tu fait la réception de 2 pc le même jour pour la même entité

tu auras deux nom identique => conflit de nom !

il te faut une chose en plus un N° incrémental

Exemple
Nom entité + date + N°

Lyon170726001

mais il y a mieux

toujours avec tes besoin
170726LyonUCF001            (Unité central fixe sur le site de Lyon N°001 en date du 26/07/2017)

tu as la date en inverse        année / mois / jours + Entité + indicateur du type de matériel (sur 3 caractères) + N°

pour un écran          170726LyonECR001
pour une imprimantes 170726LyonIMP001

a mon avis tu n'as pas besoin d'indiquer le jour ;-)  1707LyonXXXzzz


a+

Last edited by bzh (2017-07-26 13:32:06)


Virtual Box \ Ubuntu 20.4  \ GLPI 9.5.3

Offline

#4 2017-07-31 16:10:22

guest1
Member
Registered: 2017-07-20
Posts: 5

Re: Inventory Number Generation

Merci pour la remarque, Je l'ai prise en considération j'ai donc un model comme ceci :
</####/\\Y> cela génère un N° du genre : /1234/2017
En ce qui concerne l’entité j'ai décidé d'ajouter un trigger dans la base de donnée sql comme suit:
CREATE TRIGGER `MYTRIGGER`
BEFORE INSERT ON `glpi_plugin_genericobject_materiels`
FOR EACH ROW
BEGIN
   SET NEW.otherserial =  concat((SELECT `name`  FROM `glpi_entities`
   where glpi_entities.id = new.entities_id), new.otherserial);
END

Le numéro généré devient   nom entite/N° incrementale/date  exemple: Lyon/1234/2017

Donc c'est ça la solution.

Offline

Board footer

Powered by FluxBB