erro de lógica em um if/else

Enviada por David Eduardo 
David Eduardo
erro de lógica em um if/else
26 de August de 2022 às 03:40PM
Estou com um problema na minha aplicação, eu implantei um if/else e não tá funcionando corretamente, tem 1 único registro no meu banco que faz a lógica do meu código funcionar e entrar no if, porém todos os outros registros q eu incluo e eram pra entrar no if tbm estão entrando no else, já quebrei a cabeça e não consigo entender pq isso está acontecendo (pois são as mesmas condições esses regitros, então eram pra entrar todos no if (só entraria no else caso o registro seja novo), segue uma parte do meu código:

foreach ($todos_inventario as $inventario){

if ($entrada_items->item_id == $inventario->item_id && $entrada->departamento_id == $inventario->departamento_id && $entrada->local_id == $inventario->local_id) {
$inventario->quantidade += $entrada_items->quantidade;
$inventario->save();
break;
} else {
$inventario = new Inventario();
$inventario->departamento_id = $entrada->departamento_id;
$inventario->item_id = $entrada_items->item_id;
$inventario->local_id = $entrada->local_id;
$inventario->quantidade = $entrada_items->quantidade;
$inventario->qtd_alerta = 0;
$inventario->save();
break;
}

}

código completo aqui:
https://github.com/Davidtricolor2021/Erro-if-else/blob/main/EntradaController.php

e tbm tem um imagem do meu banco com uma pequena explicação doq está acontecendo:
https://github.com/Davidtricolor2021/Erro-if-else/blob/main/erro%20bd.png
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.