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

1

Context: Home Approval data will only be saved if there is a saved amendment, the 'save' button should be disabled at first. When you save the amendment the 'save' button is disabled and your approval data will be saved. But how to do this logic?


"TestProfile" method of class "ProjectController.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');
    }

}


    
asked by anonymous 30.08.2018 / 22:09

1 answer

1

Good afternoon,

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

<button <?php echo (!empty($result)) ?: "disabled"; ?> >botão</button>
    
30.08.2018 / 22:45