How to create programming logic to disable a button after an action?

Asked

Viewed 69 times

1

Context:

The approval data will only be saved if there is a saved amendment, initially the button of 'salvage' should stay disabled. When saving the seam the button 'salvage' is disabled and the approval data will be saved. But, how to make this logic?

inserir a descrição da imagem aqui


Method of "registration" of the class "Projectocontroller.php"

 //Cadastra os dados da aba de aprovação
         public function cadastroAprovacao(Request $request)
         {
           $projeto = Projeto::find($request->get('id'));
    /* 
           $emendas = DB::table('emendas_detalhes')
           ->where('projeto_id', $projeto->id)
           ->sum('valor');  */


           $vlInterno =  $this->formatacaoMoeda($request->get('valorInterno'));
           //$vlEmenda =  $this->formatacaoMoeda($emendas);
           //$vlEmenda =  $emendas;
           $vlEmenda = $request->get('valorEmenda');


            $projeto->valor_aprovado_total = 0;
            $projeto->valor_aprovado_total =  $vlInterno + $vlEmenda;
            $projeto->valor_emendas = $vlEmenda; 
            $projeto->valor_interno = $vlInterno;
           // $projeto->valor_contrapartida = $this->formatacaoMoeda($request->get('contrapartida'));
           $projeto->valor_contrapartida =  $request->get('contrapartida') == null ? 0 : $this->formatacaoMoeda($request->get('contrapartida'))  ;
           $projeto->nome_fiscal = $request->get('nomeFiscal'); 
           $projeto->matricula_fiscal = $request->get('matriculaFiscal'); 
           $projeto->dt_pag_autorizado = $request->get('dtAutPagamento'); 
           $projeto->observacao_autorizacao = $request->get('observacaoAprovacao');

           $response =  $projeto->salvarAprovacao($projeto);  

          //Cadastro das ocorrências dos dados da aprovação
           $ocorrencia = new Ocorrencia();
           $ocorrencia->projeto_id = $projeto->id;
           $ocorrencia->usuario_id = Auth::user()->id;
           $ocorrencia->origem = 'A'; //A origem é Automática (A) pois o sistema que registra a ocorrência
           $ocorrencia->tipo = 'I'; //É do tipo Informação (I), pois é feita automática
           $ocorrencia->descricao = "Cadastro dos Dados da Aprovação";
           $ocorrencia->dt_ocorrencia =  date('Y-m-d H:i:s');
           $ocorrencia->save();


           if($response['success'])
           {
               return redirect()
                         ->route('projeto.edita',$projeto->id) 
                         ->with('success',$response['message']);
           }else
           {
               return redirect()
                         ->back()
                         ->with('error',$response['message']); 

           }   
         }


Template: Project.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use DB;
use SoftDeletes;
use Carbon\Carbon;

class Projeto extends Model
{
    protected $table = "projetos";
    protected $primaryKey = 'id';
    //public $incrementing = false;
    public $timestamps = false;
    protected  $fillable  = ['tipo_processo','processo','dt_protocolo', 'demo','setor_origem_id','proponente_id','nome_projeto',
                               'dt_inicio','dt_fim','dias_intercalados','tipo_projeto_id','modalidade_apoio_id','localidade_id',
                               'valor_solicitado','arquivo_fisico','dt_lancamento','dt_alteracao','dt_alteracao','usu_lancamento_id', 
                               'usu_responsavel_id'];


    public function salvar(array $data)
    {
        $dataInsert['tipo_processo'] = $data['tipoProcesso'];
        $dataInsert['processo'] = $data['numProcesso'];
        $dataInsert['dt_protocolo'] = $data['dtProtocolo'];
        $dataInsert['setor_origem_id'] = $data['setor'];
        $dataInsert['proponente_id'] = $data['proponente'];
        $dataInsert['nome_projeto'] = $data['nomeProjeto'];
        $dataInsert['dt_inicio'] = $data['dtInicio'];
        $dataInsert['dt_fim'] = $data['dtFim'];
        $dataInsert['dias_intercalados'] = $data['diasIntercalados'];
        $dataInsert['tipo_projeto_id'] = $data['tipoProjeto'];
        $dataInsert['modalidade_apoio_id'] = $data['modalidadeApoio'];
        $dataInsert['localidade_id'] = $data['localidade'];
        $cleanPoint = str_replace('.', '', $data['vlSolicitado']);
        $formatedValue = str_replace(',', '.', $cleanPoint);
        $dataInsert['valor_solicitado'] =  $formatedValue;
        $dataInsert['arquivo_fisico'] = $data['arquivo'];
        $dataInsert['dt_lancamento'] = \Carbon\Carbon::now();
        $dataInsert['dt_alteracao'] = null;
        $dataInsert['usu_lancamento_id'] = auth()->user()->id; //recebe o id do usuário logado
        $dataInsert['usu_responsavel_id'] = auth()->user()->id; //recebe o id do usuário logado

        return $this->create($dataInsert);   
    }


   //Este método atualiza os dados do Projeto
   public function alterar(Projeto $projeto) : Array
   {
   DB::beginTransaction();

       $projeto = $this->save();
       if($projeto){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao atualizar o Projeto'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao atualizar o Projeto'
           ]; 
       }
   }


   //Este método remove os dados da Projeto
 public function deletar(Projeto $projeto) : Array
 {
     $projeto = $this->delete();
     if($projeto){
         return[
             'success' => true,
             'message' => 'Sucesso ao excluir'
         ];   
     }
     else{
         return[
             'success' => false,
             'message' => 'Falha ao excluir'
         ]; 
     }
 }

    //Este método remove os dados da Notificação
    public function deletarNotificacao(HistoricoNotificacao $notificacao) : Array
    {
        $notificacao = $this->delete();
        if($notificacao){
            return[
                'success' => true,
                'message' => 'Sucesso ao excluir a notificação'
            ];   
        }
        else{
            return[
                'success' => false,
                'message' => 'Falha ao excluir a notificação'
            ]; 
        }
    }

        //Este método remove os dados da Errata
        public function deletarErrata(HistoricoErrata $errata) : Array
        {
            $errata = $this->delete();
            if($errata){
                return[
                    'success' => true,
                    'message' => 'Sucesso ao excluir a errata'
                ];   
            }
            else{
                return[
                    'success' => false,
                    'message' => 'Falha ao excluir a errata'
                ]; 
            }
        }


 public function salvarAprovacao(Projeto $projeto)
    {
        DB::beginTransaction();

       $projeto = $this->save();
       if($projeto){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao Salvar a Aprovação'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao ao Salvar a Aprovação'
           ]; 
       }
    }

    public function salvarJuridico(Projeto $projeto)
    {
        DB::beginTransaction();

       $projeto = $this->save();
       if($projeto){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao Salvar o Jurídico'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao ao Salvar o Jurídico'
           ]; 
       }
    }


    public function salvarContratosConvenios(Projeto $projeto)
    {
        DB::beginTransaction();

       $projeto = $this->save();
       if($projeto){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao Salvar Gestão de Contrato e Convênios'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao ao Salvar Gestão de Contrato e Convênios'
           ]; 
       }
    }

    public function salvarFinanceiro(Projeto $projeto)
    {
        DB::beginTransaction();

       $projeto = $this->save();
       if($projeto){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao Salvar Financeiro'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao ao Salvar Financeiro'
           ]; 
       }
    }

    //Salvar os dados da notificação
    public function salvarNotificacao(HistoricoNotificacao $notificacao)
    {
        DB::beginTransaction();

       $notificacao = $this->save();
       if($notificacao){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao Salvar  a Notificação'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao ao Salvar a Notificação'
           ]; 
       }
    }


    //Salvar os dados da  errata
    public function salvarErrata(HistoricoErrata $errata)
    {
        DB::beginTransaction();

       $errata = $this->save();

       if($errata){
           DB::commit();
           return[
               'success' => true,
               'message' => 'Sucesso ao Salvar a Errata'
           ];   
       }
       else{
           DB::rollback();
           return[
               'success' => false,
               'message' => 'Falha ao ao Salvar a Errata'
           ]; 
       }
    }


   //Relacionamentos entre a tabela Projeto e localidades_projeto (relacionamento m:m "muitos para muitos")
    public function localidades_projeto()
    {
       return  $this->belongsToMany(Localidade::class, 'localidades_projeto', 'projeto_id',  'localidade_id');
    }

}


1 answer

1

Good afternoon,

Make a query in the bank, and check if there is an amendment if the return is null you print in the disabled word inside the button.

<button <?php echo (!empty($result)) ?: "disabled"; ?> >botão</button>
  • Thank you for the reply.

  • I made the following conditional on the page edit.blade. php: if ($countEmendas == 0) <button type="Submit" class="btn btn-Primary" disabled="disabled"><i class="fa fa-floppy-o" Aria-Hidden="true"></i> Save</button> Else<button type="Submit" class="btn btn-Primary"><i class="fa fa-floppy-o" Aria-Hidden="true"></i> Save</button> endif

Browser other questions tagged

You are not signed in. Login or sign up in order to post.