@php $projeto->fase_geral_id=$projeto->fase_geral_id ?? App\Fase::INICIAL; $fase_geral=\App\Fase::find($projeto->fase_geral_id); $condicao=['feito' => '', '' => ' ', 'proximo' => '', 'fechado' => '', 'historico' => '', 'terminado' => '']; $proximo=\App\Regra::proximaOperacaoDoUsuario($projeto); $padrao='fechado'; if($fase_geral->id==\App\Fase::ERRO) $padrao=''; $processos=[]; $paralelos=[]; $p=0; if(CTRL::podeParcial('Projeto',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Projeto'; $processos[$p]['nome'] = 'Projeto'; $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::PROJETO_INSCRITO) $processos[$p]['status'] = 'feito'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; if($fase_geral->id==\App\Fase::ERRO) $processos[$p]['status'] = $padrao; } if(($projeto->fase_geral_id ?? 0)!=\App\Fase::INICIAL) { $operacoes=\App\Regra::projeto_operacoes($projeto) ?: \App\Regra::$operacoes; for($i=1;$iid==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Documentacao'; $processos[$p]['nome'] = 'Documentação'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::DOCUMENTACAO_APROVADA) $processos[$p]['status'] = 'feito'; if(in_array($fase_geral->id,[App\Fase::DOCUMENTACAO_REPROVADA])) $processos[$p]['status'] = 'terminado'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; case('Contratacao'): if(CTRL::podeParcial('Contratacao',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Contratacao'; $processos[$p]['nome'] = 'Contratação'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::CONTRATACAO_APROVADA) $processos[$p]['status'] = 'feito'; if(in_array($fase_geral->id,[App\Fase::CONTRATACAO_REPROVADA])) $processos[$p]['status'] = 'terminado'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; case('Minuta'): if(CTRL::podeParcial('Minuta',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Minuta'; $processos[$p]['nome'] = 'Minuta'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::MINUTA_APROVADA) $processos[$p]['status'] = 'feito'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; case('Faturamento'): if(CTRL::podeParcial('Faturamento',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Faturamento'; $processos[$p]['nome'] = 'Faturamento'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::FATURAMENTO_AUTORIZADO) $processos[$p]['status'] = 'feito'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; case('Programacao'): if(CTRL::podeParcial('Programacao',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Programacao'; $processos[$p]['nome'] = 'Programação'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::PROGRAMACAO_APROVADA) $processos[$p]['status'] = 'feito'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; case('Execucao'): if(CTRL::podeParcial('Execucao',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'Execucao'; $processos[$p]['nome'] = 'Execução'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::EXECUCAO_APROVADA) $processos[$p]['status'] = 'feito'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; case('PrestacaoDeContas'): if(CTRL::podeParcial('PrestacaoDeContas',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $processos[++$p]['id'] = 'PrestacaoDeContas'; $processos[$p]['nome'] = 'Prestação de contas'; $processos[$p]['status'] = $padrao; if($proximo==$processos[$p]['id']) $processos[$p]['status'] = 'proximo'; if($fase_geral->id>=\App\Fase::PRESTACAO_DE_CONTAS_APROVADA) $processos[$p]['status'] = 'feito'; if($processos[$p]['status'] != 'fechado') $processos[$p]['nome'] = "" . $processos[$p]['nome'] . ""; } break; } } $paralelo_fase_id=\App\ComunicacaoRelease::where('projeto_id',$projeto->id)->first()->fase_id ?? null; $p=0; if(CTRL::podeParcial('ComunicacaoRelease',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $paralelos[++$p]['id'] = 'ComunicacaoRelease'; $paralelos[$p]['nome'] = 'Comunicação/Releases'; $paralelos[$p]['status'] = 'fechado'; if($paralelo_fase_id>=\App\Fase::COMUNICACAO_RELEASE_APROVADA) { $paralelos[$p]['status'] = 'feito'; } // else if(!in_array($fase_geral->id,\App\Fase::PROJETO_TERMINADO)) else if($fase_geral->id>\App\Fase::DOCUMENTACAO_APROVADA) do { if(CTRL::podeParcial('ComunicacaoReleasePreenchimento',CTRL::EDITAR)) { if(!in_array($paralelo_fase_id,[\App\Fase::COMUNICACAO_RELEASE_ENTREGUE]) && $fase_geral->id<\App\Fase::EXECUCAO_ENTREGUE) { $paralelos[$p]['status'] = 'proximo'; break; } $paralelos[$p]['status'] = 'historico'; } if(CTRL::podeParcial('ComunicacaoReleaseAnalise',CTRL::EDITAR)) { if(in_array($paralelo_fase_id,[\App\Fase::COMUNICACAO_RELEASE_ENTREGUE]) && $fase_geral->id<\App\Fase::EXECUCAO_ENTREGUE) { $paralelos[$p]['status'] = 'proximo'; break; } $paralelos[$p]['status'] = 'historico'; } } while(false); if($paralelos[$p]['status'] != 'fechado') $paralelos[$p]['nome'] = "" . $paralelos[$p]['nome'] . ""; } $paralelo_fase_id=\App\ComunicacaoPeca::where('projeto_id',$projeto->id)->first()->fase_id ?? null; if(CTRL::podeParcial('ComunicacaoPeca',CTRL::ABRIR) || $fase_geral->id==\App\Fase::ERRO) { $paralelos[++$p]['id'] = 'ComunicacaoPeca'; $paralelos[$p]['nome'] = 'Comunicação/Peças'; $paralelos[$p]['status'] = 'fechado'; if($paralelo_fase_id>=\App\Fase::COMUNICACAO_PECA_APROVADA) { $paralelos[$p]['status'] = 'feito'; } // else if(!in_array($fase_geral->id,\App\Fase::PROJETO_TERMINADO)) else if($fase_geral->id>\App\Fase::DOCUMENTACAO_APROVADA) do { if(CTRL::podeParcial('ComunicacaoPecaPreenchimento',CTRL::EDITAR)) { if(!in_array($paralelo_fase_id,[\App\Fase::COMUNICACAO_PECA_ENTREGUE]) && $fase_geral->id<\App\Fase::EXECUCAO_ENTREGUE) { $paralelos[$p]['status'] = 'proximo'; break; } $paralelos[$p]['status'] = 'historico'; } if(CTRL::podeParcial('ComunicacaoPecaAnalise',CTRL::EDITAR)) { if(in_array($paralelo_fase_id,[\App\Fase::COMUNICACAO_PECA_ENTREGUE]) && $fase_geral->id<\App\Fase::EXECUCAO_ENTREGUE) { $paralelos[$p]['status'] = 'proximo'; break; } $paralelos[$p]['status'] = 'historico'; } } while(false); if($paralelos[$p]['status'] != 'fechado') $paralelos[$p]['nome'] = "" . $paralelos[$p]['nome'] . ""; } } @endphp
Etapas
@if(!empty($projeto->updated_at)) @endif {!! IN::Hidden('fase_geral_id',$fase_geral->id ?? 0) !!} {!! IN::Text('fase_geral_nome',$fase_geral->nome,['Classe' => 'situacao','Complemento' => "style='text-align:center;background-color:$fase_geral->tom'",'Mostrar' =>'S']) !!}
@for($p=1;$p<=count($processos);$p++)
{!! $condicao[$processos[$p]['status']] !!} {!! $processos[$p]['nome'] !!}
@if($p!=count($processos)) @endif @endfor
@for($p=1;$p<=count($paralelos);$p++)
{!! $condicao[$paralelos[$p]['status']] !!} {!! $paralelos[$p]['nome'] !!}
@if($p!=count($paralelos)) @endif @endfor
@if(IN::Forma(9)=='' && !in_array($projeto->fase_geral_id,[\App\Fase::INICIAL,\App\Fase::PROJETO_TERMINADO]))
{!! IN::Check('avisar',0,[[1,'Avisar por e-mail']],['Leitura'=>'X']); !!}
@endif {!! $slot !!}