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 2011-12-06 17:16:33

skol
Member
Registered: 2011-12-06
Posts: 2

Problème date de garantie DELL avec le plugin "manufacturersimports"

Bonjour,

Utilisateur du plugin "manufacturersimports", j'ai récemment rencontré des problèmes de calcul des dates de garantie pour certaines machines DELL. En regardant un peu dans le code du plugin, il semble que ça soit lié à l'utilisation de la fonction "max" et "min" sur les dates. Par exemple, dans la fonction "importWarranty" de "postimport.class.php", on trouve le code suivant :

$masque='([0-9]{1,2}/[0-9]{1,2}/[0-9]{4})';
preg_match_all ($masque, $contents, $liste_resultat);
$maDateFin = max($liste_resultat[0]);

Or les fonctions min / max ne semble pas bien opérer sur les dates ayant un format "d/m/Y" ou "m/d/Y" mais sans problème sur des dates avec format "Y-m-d" :

$ cat /tmp/example.php
<?php
print "MAX1 : ".max(array('10/23/2007', '10/23/2011', '10/23/2012', '10/24/2010', '10/24/2011', '10/23/2007', '10/23/2010', '10/23/2007', '10/23/2008', '10/23/2007', '10/23/2008'))."\n";
print "MAX2 : ".max(array('2007-23-10', '2011-23-10', '2012-23-10', '2010-24-10', '2011-24-10', '2007-23-10', '2010-23-10', '2007-23-10', '2008-23-10', '2007-23-10', '2008-23-10'))."\n";
print "MAX3 : ".max(array('23/10/2007', '23/10/2011', '23/10/2012', '24/10/2010', '24/10/2011', '23/10/2007', '23/10/2010', '23/10/2007', '23/10/2008', '23/10/2007', '23/10/2008'))."\n";
?>
$ php /tmp/example.php
MAX1 : 10/24/2011
MAX2 : 2012-23-10
MAX3 : 24/10/2011

Du coup, pas mal de calculs sur les dates de garanties sont faux. En modifiant le code avec qq chose du genre :

$liste_resultat2 = array_map(function($my_date){return date("Y-m-d",strtotime($my_date));}, $liste_resultat[0]);
$maDateFin = max($liste_resultat2);

on obtient les bonnes valeurs.

Est ce que le problème est lié à une version particulière de php et d'OS où est-ce plus général ?

l'OS est une debian Debian GNU/Linux 6.0.2 64bits et les version de php sont en  "5.3.3-7+squeeze3".

Offline

#2 2011-12-06 23:26:27

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: Problème date de garantie DELL avec le plugin "manufacturersimports"

Version du plugin et de GLPI ?


Xavier Caillaud
Blog GLPI Infotel

Offline

#3 2011-12-07 10:52:50

skol
Member
Registered: 2011-12-06
Posts: 2

Re: Problème date de garantie DELL avec le plugin "manufacturersimports"

GLPI version 0.80.2 et plugin "Imports fabricants" version 1.4.0.

En vérifiant sur la forge, le code pour le tri des dates "récupérées" dans le contenu html  pour DELL est identique dans les dernières versions et ce problème semble plutôt lié à l'utilisation de la fonction max (resp. min) de PHP.

Le problème de min/max est le même sur une centos 5.6 avec php 5.1.6-27.el5.

Offline

Board footer

Powered by FluxBB