Test conditionnements pour article 22607

1. État brut dans ARTICLE_EXISTER_CONDITIONNEMENT

ConditionnementPrixACTIVEDISPONEGOCEStockDELETE
Container de 3 litres 20.00 €220-10

2. Résultat de dl_select_list_condidispo_byid() - Disponibles

Nombre de conditionnements trouvés : 0

✓ Aucun conditionnement disponible (CORRECT - BE_AEC_DISPO=1)

Requête SQL utilisée par dl_select_list_condidispo_byid() :

SELECT distinct * 
FROM ARTICLE_EXISTER_CONDITIONNEMENT 
INNER JOIN REF_TARIF ON ID_REF_TARIF=PKFKID_REF_TARIF 
INNER JOIN CONDITIONNEMENT ON ID_CONDITIONNEMENT=PKFKID_CONDITIONNEMENT
WHERE PKFKID_ARTICLE=22607 
  AND BE_AEC_ACTIVE=1 
  AND BE_AEC_DELETE<>1 
  AND BE_AEC_DISPO=1 
ORDER BY VAL_RT_PRIXPART ASC

3. Résultat de dl_select_list_condiindispo_byid() - Indisponibles

Nombre de conditionnements trouvés : 1

IDConditionnementPrixDISPONEGOCE
Container de 3 litres 20.00 €20

Requête SQL utilisée par dl_select_list_condiindispo_byid() :

SELECT distinct * 
FROM ARTICLE_EXISTER_CONDITIONNEMENT 
INNER JOIN REF_TARIF ON ID_REF_TARIF=PKFKID_REF_TARIF 
INNER JOIN CONDITIONNEMENT ON ID_CONDITIONNEMENT=PKFKID_CONDITIONNEMENT
WHERE PKFKID_ARTICLE=22607 
  AND BE_AEC_ACTIVE=1 
  AND BE_AEC_DELETE<>1 
ORDER BY VAL_RT_PRIXPART ASC

⚠️ ATTENTION : Cette fonction ne filtre PAS sur BE_AEC_DISPO, elle retourne TOUS les conditionnements non supprimés !

4. Conclusion

❌ PROBLÈME DÉTECTÉ :

La fonction dl_select_list_condiindispo_byid() retourne des conditionnements même si BE_AEC_DISPO=2.

C'est probablement cette fonction qui est utilisée par detail-article.php pour afficher les conditionnements.

Solution : Modifier cette fonction pour qu'elle filtre aussi sur BE_AEC_DISPO.