On 22/03/2013 12:04, Damien Touraine wrote:
On 22/03/2013 11:49, MoYo wrote:
Le 22/03/2013 11:30, David DURIEUX a écrit :
Le Fri, 22 Mar 2013 11:18:35 +0100
MoYo <m...@indepnet.net> a écrit:

Le 22/03/2013 10:45, David DURIEUX a écrit :
Bonjour,

Ce patch permet de rajouter la frequence aux critères pour l'import
des mémoires
Salut,

Il faudrait préciser l'intérêt les impacts ?
Est-ce que cela ne va pas poser des problèmes pour des différences
minimes à la détection ? 666 <> 667 par exemple.
Oui pardon, en effet je n'ai pas précisé.

Ca peut poser des soucis 666 <> 667 mais au pire ca va en créer 2
C'est un vrai problème. En créer 2 est vraiment un problème pour moi en terme de cohérence.
Bonjour,

Nous pourrions utiliser une méthode getImportCriteria() qui renverrait un tableau dont les indexes sont les champs et les valeurs sont des complèments pour la requète.
Par exemple, pour la mémoire :
array('designation' => 'equal', 'devicememorytypes_id' => 'equal', 'manufacturers_id' => 'equal', 'frequence' => 'delta:100').
Par exemple, nous pourrions avoir quelque chose comme le patch joint.

Damien
Index: inc/devicememory.class.php
===================================================================
--- inc/devicememory.class.php	(revision 20436)
+++ inc/devicememory.class.php	(working copy)
@@ -150,7 +150,8 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'devicememorytypes_id', 'manufacturers_id');
+      return array('designation' => 'equal', 'devicememorytypes_id' => 'equal',
+                   'manufacturers_id' => 'equal', 'frequence' => 'delta:100');
    }
 
 }
Index: inc/devicecase.class.php
===================================================================
--- inc/devicecase.class.php	(revision 20436)
+++ inc/devicecase.class.php	(working copy)
@@ -118,7 +118,8 @@
     * @since version 0.84
     **/
     function getImportCriteria() {
-      return array('designation', 'manufacturers_id', 'devicecasetypes_id');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal',
+                   'devicecasetypes_id' => 'equal');
    }
 
 }
Index: inc/commondevice.class.php
===================================================================
--- inc/commondevice.class.php	(revision 20436)
+++ inc/commondevice.class.php	(working copy)
@@ -225,10 +225,18 @@
       }
       $where      = array();
       $a_criteria = $this->getImportCriteria();
-      foreach ($a_criteria as $criteria) {
-         if (isset($input[$criteria])) {
-            $where[] = "`".$criteria."`='".$input[$criteria]."'";
-
+      foreach ($a_criteria as $field => $compare) {
+         if (isset($input[$field])) {
+            $compare = explode(':', $compare);
+            switch ($compare[0]) {
+               case 'equal':
+                  $where[] = "`".$field."`='".$input[$field]."'";
+                  break;
+               case 'delta':
+                  $where[] = "`".$field."`>'".($input[$field] - $compare[1])."'";
+                  $where[] = "`".$field."`<'".($input[$field] - $compare[1])."'";
+                  break;
+            }
          }
       }
 
@@ -251,7 +259,7 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'manufacturers_id');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal');
    }
 
 }
Index: inc/devicenetworkcard.class.php
===================================================================
--- inc/devicenetworkcard.class.php	(revision 20454)
+++ inc/devicenetworkcard.class.php	(working copy)
@@ -49,7 +49,7 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'manufacturers_id', 'mac');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal', 'mac' => 'equal');
    }
 
 
Index: inc/deviceharddrive.class.php
===================================================================
--- inc/deviceharddrive.class.php	(revision 20436)
+++ inc/deviceharddrive.class.php	(working copy)
@@ -153,7 +153,8 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'manufacturers_id', 'interfacetypes_id');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal',
+                   'interfacetypes_id' => 'equal');
    }
 
 }
Index: inc/devicegraphiccard.class.php
===================================================================
--- inc/devicegraphiccard.class.php	(revision 20436)
+++ inc/devicegraphiccard.class.php	(working copy)
@@ -129,7 +129,8 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'manufacturers_id', 'interfacetypes_id');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal',
+                   'interfacetypes_id' => 'equal');
    }
 
 }
Index: inc/devicedrive.class.php
===================================================================
--- inc/devicedrive.class.php	(revision 20436)
+++ inc/devicedrive.class.php	(working copy)
@@ -149,7 +149,8 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'manufacturers_id', 'interfacetypes_id');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal',
+                   'interfacetypes_id' => 'equal');
    }
 
 }
Index: inc/devicemotherboard.class.php
===================================================================
--- inc/devicemotherboard.class.php	(revision 20436)
+++ inc/devicemotherboard.class.php	(working copy)
@@ -118,7 +118,7 @@
     * @since version 0.84
    **/
    function getImportCriteria() {
-      return array('designation', 'manufacturers_id', 'chipset');
+      return array('designation' => 'equal', 'manufacturers_id' => 'equal', 'chipset' => 'equal');
    }
 
 }
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to