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

Usando o PHP para facilitar a consulta no MySQL


Frank K Hosaka

Pergunta

Lá em 2020, gastei quase um mês para montar uma consulta no MySQL para obter todos os documentos da tabela diário que envolviam as contas 130 e 211, eles estavam espalhados nos campos ctad e ctac.

Aqui em 2024 enfrentei problema no Laravel. Ao invés de consultar a internet, achei melhor montar várias consultas simples, e depois pedi para o PHP fazer o resto do serviço. Ficou bem mais fácil, o MySQL é um poderoso banco de dados, mas ao invés de pedir serviços complicados para ele, melhor jogar nas costas do PHP!

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\tbcontacorrente;
use App\Models\tbdiario;
use App\Models\tbpessoa;

class Pagar
{
    function inicio()
    {
        $pendencias=tbcontacorrente::pluck('docto');
        $doc1=tbdiario::where('dia','>','2023-12-31')->where('contad',130)->pluck('docto');
        $doc2=tbdiario::where('dia','>','2023-12-31')->where('contac',130)->pluck('docto');
        $doc3=tbdiario::where('dia','>','2023-12-31')->where('contad',211)->pluck('docto');
        $doc4=tbdiario::where('dia','>','2023-12-31')->where('contac',211)->pluck('docto');
        $documentos=$doc1->merge($doc2)->merge($doc3)->merge($doc4);
        $diferenca=$documentos->diff($pendencias);
        foreach($diferenca as $d)
        {
            $lcto=tbdiario::where('docto',$d)->value('lcto');
            tbcontacorrente::create(['docto'=>$d,'lcto'=>$lcto,'pgto'=>0]);
        }
        $pendencias=[];
        $contas=tbcontacorrente::where('pgto',0)->orderBy('vcto')->get();
        foreach($contas as $conta)
        {
            $doc=tbdiario::where('docto',$conta->docto)->first();
            $vcto=$conta->vcto;
            $docto=$conta->docto;
            $lcto=$doc->lcto;
            if($doc->contad==130 || $doc->contad==211)
            {
                $debito=$doc->valor;
                $credito=null;
            } else {
                $debito=null;
                $credito=$doc->valor;
            }
            $hist=dbr($doc->dia)." ".$doc->hist;
            if($conta->codp)
            {
                $pessoa=tbpessoa::where('codp',$conta->codp)->value('pessoa');
            } else {
                $pessoa="Selecionar";
            }
            $pendencias[]=['vcto'=>$vcto,'docto'=>$docto,'lcto'=>$lcto,'debito'=>$debito,
                'credito'=>$credito,'hist'=>$hist,'pessoa'=>$pessoa];
        }
        $pendencias=json_decode(json_encode($pendencias));
        return view('pagarView',['pendencias'=>$pendencias]);
    }
// ...
}

 

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...