I'm developing a modal checklist where new protocol data will be registered. Each attribute of the item will be informed by the user and this information will be registered to the checklist_protocolo
table of the database.
But information such as the item description and the checklist template are queried from other database tables. The information of the model (table checklist_modelo
) I was able to load in the modal, but the information of the description of the item (table checklist_item
) I could not because it is iterate it inside the loop and the data are coming out duplicates.
How to solve this problem? Here are the images that illustrate the problem.
Modal Checklists
ModalChecklists[ERROR]-duplicatedata
ERTemplate<
Followthesnippetsofthecodesresponsibleforperformingthisfunctionality.
MethodeditofclassProjectController.php:
//MétodoqueredirecionaparaapáginadeeditaroProjetopublicfunctionedita($id,Request$request){$projetoCriado=Projeto::findOrFail($id);$this->flagStatusDoc=$projetoCriado->status_documentacao=='A'?true:false;$this->flagAprovacao=$projetoCriado->situacao_projeto=='AP'?true:false;$this->flagStatusPagamento=$projetoCriado->usu_auto_pag_id!=null&&$projetoCriado->dt_pag_autorizado!=null?true:false;$flagHabilitaEmenda=$projetoCriado->valor_interno==0?false:true;$flagHabilitaTabsFinanceiro=$projetoCriado->projeto_atividade_id==null&&$projetoCriado->elemento_despesa_id==null&&$projetoCriado->fonte_recurso_id==null&&$projetoCriado->dt_ordenador==null&&$projetoCriado->valor_ordenador==0?false:true;$usuarios=User::where('autoriza','=','S')->get();//armazenatodososusuáriosquetempermissãodeautorização(autoriza=S)$usuariosAtivos=User::all();//armazenatodososusuárioscadastradosnosistema$setores=Setor::all();$proponentes=Proponente::all();$tipoProjetos=TipoProjeto::all();$modalidadeApoios=ModalidadeApoio::all();$ocorrencias=DB::table('ocorrencias')->join('users','users.id','=','ocorrencias.usuario_id')->where('ocorrencias.projeto_id','=',$id)->select('ocorrencias.id','ocorrencias.origem','ocorrencias.tipo','users.name','ocorrencias.descricao','ocorrencias.dt_ocorrencia')->get();$categoriaInstrumentos=CategoriaInstrumento::all();$modalidadeLicitacoes=ModalidadeLicitacao::all();$historicoErratas=HistoricoErrata::where('projeto_id','=',$id)->get();$historicoNotificacoes=HistoricoNotificacao::where('projeto_id','=',$id)->get();$projetoAtividades=ProjetoAtividade::all();$elementoDespesas=ElementoDespesa::all();$fonteRecursos=FonteRecurso::all();$detalhamentoEmpenhos=DetalhamentoEmpenho::where('projeto_id','=',$id)->get();$detalhamentoLiquidacoes=DetalhamentoLiquidacao::where('projeto_id','=',$id)->get();$detalhamentoPagamentos=DetalhamentoPagamento::where('projeto_id','=',$id)->get();$detalhamentoEmendas=DetalhamentoEmenda::where('projeto_id','=',$id)->get();$localidades=Localidade::all();$localidadesAtivas=Localidade::where('ativo','=','S')->orderBy('localidade','asc')->get();$permissoesAprovacao=verificarPermissao('Aprovação');$permissoesJuridico=verificarPermissao('Juridico');$permissoesGestaoContrato=verificarPermissao('GestãoContratoseConvênios');$permissoesFinanceiro=verificarPermissao('Financeiro');$permissoesOcorrencia=verificarPermissao('Ocorrência');$permissoesAbas=verificarPermissao('AbasdoProjeto');$permissoesDadosGeraisProj=verificarPermissao('DadosGeraisdoProjeto');//Variáveisdafuncionalidade"Movimentar Projeto"
$movimentacaoResponsavel = MovimentacaoResponsavel::where('projeto_id', '=',$id)->orderBy('dt_movimentacao','desc')->first();
$usuarioDestino = empty($movimentacaoResponsavel) ? Auth::user() : User::where('id','=', $movimentacaoResponsavel->usu_destino_id)->first();
$usuarioResponsavel = $usuarioDestino;
$checklistsModelo = ChecklistModelo::all();
$checklistsEstrutura = ChecklistEstrutura::all();
$checklistsEstruturaModelo = ChecklistModelo::whereIn('id', $checklistsEstrutura->pluck('modelo_id'))->get();
$statusDocumentacao = $projetoCriado->status_documentacao == 'P' ? 'Pendente' : 'Autorizado';
$statusProjeto = $projetoCriado->situacao_projeto;
switch ($statusProjeto){
case 'AA':
$statusProjeto = 'Aguardando Autorização';
break;
case 'AP':
$statusProjeto = 'Aprovado';
break;
case 'CS':
$statusProjeto = 'Cancelado Suspenso';
break;
case 'RP':
$statusProjeto = 'Reprovado';
break;
default:
$statusProjeto = 'Aguardando Autorização';
break;
}
$userAutorizaDoc = User::find($projetoCriado->usu_autoriza_doc_id);
$usuarioAutorizaDoc = $userAutorizaDoc == null ? 'Indefinido' : $userAutorizaDoc->name ;
$userAutorizaProjeto = User::find($projetoCriado->usu_situacao_id);
$usuarioAutorizaProjeto = $userAutorizaProjeto == null ? 'Indefinido' : $userAutorizaProjeto->name ;
$userAutorizaPagamento = User::find($projetoCriado->usu_auto_pag_id);
$usuarioAutorizaPagamento = $userAutorizaPagamento == null ? 'Indefinido' : $userAutorizaPagamento->name ;
$countLocalidadesProjeto = count(LocalidadeProjeto::where('projeto_id','=',$id)->distinct()->get());
$localidadesProjeto = Localidade::join('localidades_projeto', function ($join) use ($id) {
$join->on('localidade.id','=','localidades_projeto.localidade_id')
->where('localidades_projeto.projeto_id','=', $id ); })->distinct()->get();
//Variáveis da aba de Aprovação
$valorEmenda = DB::table('emendas_detalhes')
->where('projeto_id', $id)
->sum('valor');
$valorAprovado = $valorEmenda + $projetoCriado->valor_aprovado_total;
$checklistsItens = ChecklistItem::all();
//Variáveis da aba de Financeiro
$valorEmpenho = DB::table('detalhamento_empenho')
->where('projeto_id', $id)
->sum('valor_empenho');
$valorLiquidacao = DB::table('detalhamento_liquidacao')
->where('projeto_id', $id)
->sum('valor_liquidacao');
$valorPagamento = DB::table('detalhamento_pagamento')
->where('projeto_id', $id)
->sum('valor_pagamento');
//Contador do Checklist de Protocolo
$countChecklistProtocolo = count(ChecklistProtocolo::where('projeto_id','=', $id)->distinct()->get());
$checklistProtocolo = ChecklistProtocolo::where('projeto_id','=', $id)->distinct()->get();
$arrayChecklistProtocolo = [];
$arrayChecklistProtocolo = (array) array_values($checklistProtocolo->toArray());
//Modelo do Protocolo
$modelo = ChecklistModelo::where( 'id','=',$arrayChecklistProtocolo[0]['modelo_id'])->distinct()->get();
$modeloProtocolo = (array) array_values($modelo->toArray());
//Consulta de todos os 'id' de itens do modelo selecionado
$itens_id = DB::table('checklist_estrutura')
->where('checklist_estrutura.modelo_id','=', $modeloProtocolo[0]['id'])
->select('checklist_estrutura.itens_id' )
->get();
//Converte o conjunto de dados para Array
$array_itens_id = (array) array_values($itens_id->toArray());
$arrayIdItens = [];
foreach ($array_itens_id as $item) {
$arrayIdItens[] = $item->itens_id;
}
//Consulta de todos as descrições do itens (descricao_item) do modelo selecionado
$array_descricao_item = DB::table('checklist_itens')->whereIn('id',$arrayIdItens)->get();
$arrayItens = [];
$arrayItens = (array) array_values($array_descricao_item->toArray());
//dd($arrayItens);
// dd($checklistProtocolo);
/*
foreach ($checklistProtocolo as $chktProtocolo) {
$protocolo = new stdClass;
$protocolo->projeto_id = $arrayChecklistProtocolo ;
$protocolo->modelo_id = $modeloProtocolo[0]['id'];
$protocolo->modelo_nome = $modeloProtocolo[0]['modelo'] ;
$protocolo->item = $chktProtocolo->item;
$protocolo->item_descricao_id = $chktProtocolo->item_descricao_id ;
$protocolo->item_nome = "bffff";
$protocolo->sim_nao = $chktProtocolo->sim_nao;
$protocolo->nao_atende = $chktProtocolo->nao_atende ;
$protocolo->dt_validade = $chktProtocolo->dt_validade ;
$protocolo->pagina_documento = $chktProtocolo->pagina_documento ;
$protocolo->observacao = $chktProtocolo->observacao ;
} */
// foreach ($array_descricao_item as $itens) {
// dd($protocolo->projeto_id);
return view('admin.projeto.edita', ['projeto' => Projeto::find($id), 'permissoesAprovacao' => $permissoesAprovacao, 'permissoesJuridico' => $permissoesJuridico,
'permissoesGestaoContrato' => $permissoesGestaoContrato , 'permissoesFinanceiro' => $permissoesFinanceiro,
'permissoesOcorrencia'=> $permissoesOcorrencia, 'permissoesDadosGeraisProj' => $permissoesDadosGeraisProj,
'permissoesAbas' => $permissoesAbas, 'setores' => $setores, 'proponentes' => $proponentes, 'tipoProjetos' => $tipoProjetos, 'usuarios' => $usuarios, 'usuariosAtivos' => $usuariosAtivos,
'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'usuarioResponsavel'=>$usuarioResponsavel,'statusDocumentacao'=>$statusDocumentacao,
'usuarioAutorizaDoc' => $usuarioAutorizaDoc,'localidadesAtivas'=> $localidadesAtivas,'flagHabilitaEmenda'=> $flagHabilitaEmenda, 'flagHabilitaTabsFinanceiro' => $flagHabilitaTabsFinanceiro,
'flagStatusDoc' =>$this->flagStatusDoc, 'flagAprovacao' => $this->flagAprovacao, 'flagStatusPagamento' => $this->flagStatusPagamento,
'countLocalidadesProjeto' => $countLocalidadesProjeto, 'localidadesProjeto' => $localidadesProjeto, 'statusProjeto' => $statusProjeto, 'usuarioAutorizaProjeto' => $usuarioAutorizaProjeto,
'usuarioAutorizaPagamento' => $usuarioAutorizaPagamento, 'categoriaInstrumentos' => $categoriaInstrumentos, 'modalidadeLicitacoes' => $modalidadeLicitacoes,
'historicoErratas' => $historicoErratas, 'historicoNotificacoes' => $historicoNotificacoes, 'checklistsEstruturaModelo' => $checklistsEstruturaModelo,
'projetoAtividades' => $projetoAtividades, 'elementoDespesas' => $elementoDespesas, 'fonteRecursos' => $fonteRecursos,
'detalhamentoEmpenhos' => $detalhamentoEmpenhos, 'detalhamentoLiquidacoes' => $detalhamentoLiquidacoes, 'detalhamentoPagamentos' => $detalhamentoPagamentos,
'detalhamentoEmendas' => $detalhamentoEmendas , 'valorEmenda' => $valorEmenda, 'valorAprovado' => $valorAprovado, 'valorEmpenho' => $valorEmpenho,
'valorLiquidacao' => $valorLiquidacao, 'valorPagamento' => $valorPagamento, 'ocorrencias' => $ocorrencias, 'countChecklistProtocolo' => $countChecklistProtocolo,
'checklistsModelos' => $checklistsModelo, 'checklistsEstruturas' => $checklistsEstrutura, 'checklistsItens' => $checklistsItens,
'checklistsProtocolos' => $checklistProtocolo,'arrayItens' => $arrayItens, 'modeloProtocolo' => $modeloProtocolo]);
}
Edita.blade.php page: I tried to put the break
variable in the conditional to get the item description name but an error occurred.
<!--Inicio do modal de Checklist do Projeto-->
<div class="modal fade modal-default" id="modalChecklist" aria-hidden="true" aria-labelledby="examplePositionCenter"
role="dialog" tabindex="-1">
<div class="modal-dialog2 modal-center">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Checklists</h4>
</div>
<div class="form-group col-md-4">
<input type="hidden" id="idProjeto" name="idProjeto" value="{{$projeto->id}}">
<input type="hidden" id="idModeloProcesso" name="idModeloProcesso" value="{{$modeloProtocolo[0]['id']}}">
<label class="control-label">Modelo</label>
<input type="text" class="form-control" name="modeloProcesso" value="{{$modeloProtocolo[0]['modelo']}}" disabled>
</div>
<div class="modal-body">
<div class="form-group col-md-18">
<input type="hidden" id="idProjeto" name="idProjeto" value="{{$projeto->id}}">
<table id="checklist" class="table table-hover table-striped table-responsive toggle-arrow-tiny" >
<caption></caption>
<thead>
<tr>
<th>Item</th>
<th>Descrição</th>
<th>Sim/Não</th>
<th>Não Atende</th>
<th>Data de Validade</th>
<th>Página do Documento</th>
<th>Observações </th>
<th class="text-center"></th>
</tr>
</thead>
<tbody id="bodyUsers">
@foreach($checklistsProtocolos as $checklistProtocolo)
@foreach($arrayItens as $item)
<tr>
<td><input type="text" class="form-control" name="item_protocolo" value="{{$checklistProtocolo->item}}" size ="2"></td>
<td>{{$item->id == $checklistProtocolo->item_descricao_id ? $item->descricao_item : break }}</td>
<td><input type="checkbox" name="simNao_protocolo"{{$checklistProtocolo->sim_nao == null ? '' : 'checked'}}></td>
<td><input type="checkbox" name="naoAtende_protocolo" {{$checklistProtocolo->nao_atende == null ? '' : 'checked'}} ></td>
<td><input type="date" class="form-control" name="dtValidade_protocolo" value="{{$checklistProtocolo->dt_validade}}"></td>
<td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->pagina_documento}}" size ="1"></td>
<td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->observacao}}" size ="1"></td>
</tr>
@endforeach
@endforeach
</tbody>
</table>
</div>
</div><!--Fim do modal-body-->
<div class="modal-footer">
<center>
<a id="btnSalvarChecklist" type="button" class="btn btn-primary salvarChecklist" data-dismiss="modal" align="center" style="width: 300px; height: 40px">Salvar</a>
</center>
</div>
</div>
</div>
</div>
<!--Fim do modal do Checklist do Projeto-->
AppServiceProvider.php class
Home
The break
command is not supported in the Laravel version I am using, so within the boot()
method of the AppServieProvider
class I define the following function.
public function boot () { Blade :: directive ('break', function () {return "";}); }
<?php
namespace App\Providers;
use Blade;
//use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
/* public function boot()
{
//
} */
public function boot()
{
Blade::directive('break', function() { return "<?php break; ?>"; });
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
ERROR:, but the error shown in this image occurred.