Présentation Plugin : Gestion de Stock

Pour la gestion des produits non présents, il semble qu’il y a qq raté, j’ai des produits qui sont partis et 1 qui est resté (l’ensemble des produits étaient indépendants, pas dans des groupes). Les anciennes listes sont toujours présentes, à voir si tu peux les inclure dans la suppression.
Pas vu de logs qui correspondaient pour t’aider dsl.

Oui j’ai pareil, j’ai des produits qui ne sont plus dans Grocy mais qui n’ont pas été effacé dans Jeedom malgré la synchronisation.

Pour info si ce n’est pas encore corrigé :

PHP Notice:  Undefined index: globalMin in /var/www/html/plugins/stock/core/class/stock.class.php on line 213
PHP Warning:  implode(): Invalid arguments passed in /var/www/html/plugins/stock/core/class/stock.class.php on line 213

Je viens de corriger celui là
Pour le panel, et bien effectivement je me retrouve à nouveau avec un bandeau ridicule, je rejette un oeil

Je valide, correction ok chez moi, plus de produits qui n’existaient plus dans Grocy.
Les listes sont elles encore présentes.

Tks

Je viens de pousser une correction pour le panel et les listes qui restaient avec la purge.

La purge m’a laissé plus que 4 éléments, pourtant j’en ai une vingtaine en stock. Je ne sais pas si ça vient de ses erreurs qu’on trouve dans les logs :

PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/stock/core/class/stock.class.php on line 171
PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/stock/core/class/stock.class.php on line 345
PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/stock/core/class/stock.class.php on line 383
PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/stock/core/class/stock.class.php on line 400

Là je comprend pas, erreur à la ligne 345,383 et 400 alors que la class fait 250 lignes …
Et ligne 171 pas de foreach

Chez moi à la ligne 171 j’ai bien un foreach :

    foreach ($result as $product) {
      $eqLogic=stock::byLogicalId($product['product_id'], 'stock');
      if (!is_object($eqLogic)) {
        $eqLogic = new stock();
        $eqLogic->setEqType_name('stock');
        $eqLogic->setLogicalId($product['product_id']);
        $eqLogic->setIsEnable(1);
        $eqLogic->setIsVisible(0);
        $eqLogic->setName($product['product_id'] . ' - ' . $product['product']['name']);
        if (config::byKey('object_id', 'stock') != '') {
          $eqLogic->setObject_id(config::byKey('object_id', 'stock'));
        }
        $eqLogic->save();
      }

Et aussi à la ligne 345 :

    foreach ($result as $product) {
      $eqLogic=stock::byLogicalId('list' . $product['id'], 'stock');
      if (!is_object($eqLogic)) {
        $eqLogic = new stock();
        $eqLogic->setEqType_name('stock');
        $eqLogic->setLogicalId('list' . $product['id']);
        $eqLogic->setIsEnable(1);
        $eqLogic->setIsVisible(0);
        $eqLogic->setName('Liste ' . $product['id'] . ' - ' . $product['name']);
        if (config::byKey('object_id', 'stock') != '') {
          $eqLogic->setObject_id(config::byKey('object_id', 'stock'));
        }
        $eqLogic->setConfiguration('type','list');
        $eqLogic->save();
      }
      $eqLogic->loadCmdFromConf();
      $eqLogic->checkAndUpdateCmd('name', $product['name']);
      $selectValue[] = $product['id'] . '|' . $product['name'];
    }

Je n’ai pas la bonne version ?

Chez moi la classe elle fait 574 lignes…

Autant pour moi, je regardais l’ancienne version de stock
Donc les 3 erreurs me feraient dire qu’à cet apel là il a pas eu de retour de grocy, comme si il n’arrivait pas à le joindre, donc appel en échec retour vide
Faut que je regarde comment traiter ce point, tu as les lignes correspondantes dans le log stock ?

1 « J'aime »

J’ai que les logs que j’ai déjà fourni, pas d’autres. J’étais en HTTPS en local avec certificat autosigné, pas de souci en ouvrant Grocy dans le panel, donc joignable sans problème. Je suis repassé en HTTP depuis et j’ai de nouveau des éléments, donc problème effectivement dans la récupération des éléments en HTTPS.

Pour info, en repassant de HTTPS en HTTP, j’ai eu cette erreur sans conséquence car j’arrive à rafraichir et à synchroniser les éléments supprimés :

[MySQL] Error code : 23000 (1062). Duplicate entry '596-Alerte le stock disponible est inférieur au seuil' for key 'unique' : INSERT INTO cmdSETid= :id,logicalId= :logicalId,generic_type= :generic_type,eqType= :eqType,name= :name,order= :order,type= :type,subType= :subType,eqLogic_id= :eqLogic_id,isHistorized= :isHistorized,unite= :unite,configuration= :configuration,template= :template,display= :display,value= :value,isVisible= :isVisible,alert = :alert