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;}}?><linkhref="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"rel="stylesheet"><tableclass='container mt-5 table table-striped table-sm'><thclass=text-end>CodProd
<th>Descrição
<thclass=text-end>Lcto
<thclass=text-end>Qt
<thclass=text-end>Custo
<thclass=text-end>Estoque
<thclass=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><tdclass=text-end><?=$prod['codprod']?><td><?=$detalhe->prod?><tdclass=text-end><?=$prod['lcto']?><tdclass=text-end><?=$prod['qt']?><tdclass=text-end><?=$prod['custototal']?><tdclass=text-end><?=$detalhe->estoque?><tdclass=text-end><?=$total?><td><?=$hist->hist?><?php endforeach;?></table>
Pergunta
Frank K Hosaka
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:
Link para o comentário
Compartilhar em outros sites
1 resposta 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.