Ir para conteúdo
Fórum Script Brasil
  • 0

A tabela produtos no Laravel


Frank K Hosaka

Pergunta

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');

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...