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

A última entrada de cada item


Frank K Hosaka

Pergunta

Eu tenho um projeto chamado Orçamento, e dentro dele eu tenho uma rotina chamada baixa de estoque, mas ele é lento no PHP e mais ainda no Laravel.

Passei o dia todo pensando numa nova rotina, agora com a ajuda do copilot.microsoft.com

Talvez seja possível obter a última entrada de cada item pelo MySQL, mas eu pedi para o Copilot desistir da ideia.

Eu montei uma consulta de todos itens que entraram no mês. A partir daí pedi para o Copilot montar um vetor que pegasse a última entrada de cada item.

A rotina do Copilot começa com $ultimo=[ ] e pega todo o ciclo do foreach($previa as $prod). Ele é muito bacana, parece que funciona, só não sei ainda como conferir, mas é bem mais rápido que a rotina que inventei antes do Copilot aparecer:

<?php
$pdo=new PDO("mysql:host=localhost;dbname=teste","root","");
$inicio=date('2024-10-01');
$fim=date('2024-10-31');
$previa=$pdo->query("SELECT * FROM tbhistprod 
        WHERE custototal > 0 And dia BETWEEN '$inicio' and '$fim'
        order by dia desc")->fetchAll(PDO::FETCH_ASSOC);
$ultimo = [];
foreach ($previa as $prod) 
{
    if (!isset($ultimo[$prod['codprod']]) || 
        $prod['dia'] > $ultimo[$prod['codprod']]['dia']) 
    {
        $ultimo[$prod['codprod']] = $prod;
    }
}
?>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" 
    rel="stylesheet">
<table class='container mt-5 table table-striped table-sm'>
    <th class=text-end>CodProd
    <th>Descrição
    <th class=text-end>Lcto
    <th class=text-end>Qt
    <th class=text-end>Custo
    <th class=text-end>Estoque
    <th class=text-end>Total
    <th>História
<?php foreach ($ultimo as $prod):
$detalhe=$pdo->query("select * from tbprod where codprod=".$prod['codprod'])
                ->fetch(PDO::FETCH_OBJ);
$hist=$pdo->query("select * from tbdiario where lcto=".$prod['lcto'])
                ->fetch(PDO::FETCH_OBJ);
$total=$pdo->query("select sum(custototal) as soma from tbhistprod 
                where codprod=".$prod['codprod'])
                ->fetch(PDO::FETCH_OBJ)->soma;
?>
    <tr><td class=text-end><?=$prod['codprod']?>
        <td><?=$detalhe->prod?>
        <td class=text-end><?=$prod['lcto']?>
        <td class=text-end><?=$prod['qt']?>
        <td class=text-end><?=$prod['custototal']?>
        <td class=text-end><?=$detalhe->estoque?>
        <td class=text-end><?=$total?>
        <td><?=$hist->hist?>
<?php endforeach; ?>
</table>

 

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

1 resposta a esta questão

Posts Recomendados

  • 0

O cálculo vetorial do Copilot é muito inteligente, o problema é que levei um tempão para entender, mas eu consegui:

Se o vetor do código não existir, então crie o vetor. Se ele existir, então atualize o vetor se a data for mais recente. Depois de entender, fica bem mais fácil memorizar.

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...