Soit une commande avec au moins deux lignes.
- La première est un produit,
- La dernière est un service personnalisé, donc ayant le champ fk_product non renseigné, et qui ne doit donc pas être réceptionnée. (le fait qu’elle soit en dernière position est important pour que le bug se produise)
Dans le formulaire de création de réception, seule la première ligne apparait… Jusque là, c’est normal… Sauf que la création de la réception échoue avec l’erreur ErrorWarehouseRequiredIntoReceptionLine
La cause est l’utilisation de la mauvaise variable, en ligne 323 de fourn/reception/card.php
if (!($linesrc->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
Si on regarde plus haut dans le code on a lignes 302 à 304
foreach ($objectsrc->lines as $linesrc) {
if ($linesrc->id == GETPOST($idl, ‹ int ›)) $lineToTest = $linesrc;
}
Donc à l’issue de ce code $lignesrc correspond toujours à la dernière ligne de la commande (donc dans ce cas précis, celle qui ne doit pas être réceptionnée) alors que la variable qui nous intéresse est en réalité $lineToTest
La ligne 323 devient donc
if (!($lineToTest->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
Et là, plus d’erreur, la création de la réception se passe bien