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?
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');
}
}
Thank you for the reply.
– Ruama
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
– Ruama