Lá em 2020, eu não tinha a conta estoque no plano de contas, mas eu queria ter um pouco mais de controle nas despesas.
Assim eu inventei a tabela produtos e histórico de produtos.
Mas em 2022, surgiu a conta estoque no plano de contas. Para ter um controle melhor, eu precisava impor a regra "a soma dos produtos tem que ser igual à soma dos registros contábeis". O problema é que a tabela produtos já contava com centenas de itens que representavam despesas. Pensei em criar uma nova tabela para separar o que é estoque do que é despesa, mas achei melhor usar a tabela produtos para fazer esse serviço. Encontrei o campo local, e lá eu defini o valor "a24" (abreviatura pessoal para "fora da prateleira").
Tentei fazer uma consulta, o valor do estoque é a soma do custo total onde o produto não está na prateleira "a24". Não deu certo, haviam muitos registros com valor null no local.
Levei um tempão para mudar o valor padrão do campo local de null para ''.
Depois disso, eu fiz a consulta no PHP:
$query=$myqli->query("select sum(custototal) as soma from tbhistprod
join tbprod on tbprod.codprod = tbhistprod.codprod
where loc <> "a24" and custototal > 0");
$total=$query->fetch_all(MYSQLI_ASSOC)[0]['soma'];
O problema é como converter isso na gramática do Eloquent. Pedi ajuda para o Bard, e ele meu um exemplo:
Pergunta
Frank K Hosaka
Lá em 2020, eu não tinha a conta estoque no plano de contas, mas eu queria ter um pouco mais de controle nas despesas.
Assim eu inventei a tabela produtos e histórico de produtos.
Mas em 2022, surgiu a conta estoque no plano de contas. Para ter um controle melhor, eu precisava impor a regra "a soma dos produtos tem que ser igual à soma dos registros contábeis". O problema é que a tabela produtos já contava com centenas de itens que representavam despesas. Pensei em criar uma nova tabela para separar o que é estoque do que é despesa, mas achei melhor usar a tabela produtos para fazer esse serviço. Encontrei o campo local, e lá eu defini o valor "a24" (abreviatura pessoal para "fora da prateleira").
Tentei fazer uma consulta, o valor do estoque é a soma do custo total onde o produto não está na prateleira "a24". Não deu certo, haviam muitos registros com valor null no local.
Levei um tempão para mudar o valor padrão do campo local de null para ''.
Depois disso, eu fiz a consulta no PHP:
$query=$myqli->query("select sum(custototal) as soma from tbhistprod join tbprod on tbprod.codprod = tbhistprod.codprod where loc <> "a24" and custototal > 0"); $total=$query->fetch_all(MYSQLI_ASSOC)[0]['soma'];
O problema é como converter isso na gramática do Eloquent. Pedi ajuda para o Bard, e ele meu um exemplo:
$total = Tbhistprod::join('tbprod', 'tbhistprod.idprod', '=', 'tbprod.id') ->where('tbprod.loc', '!==', 'a24') ->sum('custo');
O código não funcionou, mas desconfiei do operador "!==", ele não é da gramática do MySQL. Ajeitei o meu código, e ele funcionou:
$total=tbhistprod::join('tbprod','tbhistprod.codprod','=','tbprod.codprod') ->where('tbprod.loc','<>','a24') ->where('custototal','>',0) ->sum('custototal');
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.