Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace AppHttpControllersAdmin;
- use AppUser;
- use AppHelpershelpers;
- use AppModelsProjeto;
- use AppModelsSetor;
- use AppModelsProponente;
- use AppModelsTipoProjeto;
- use AppModelsLocalidade;
- use AppModelsModalidadeApoio;
- use AppModelsLocalidadeProjeto;
- use IlluminateHttpRequest;
- use AppHttpControllersController;
- use IlluminateSupportFacadesDB;
- use IlluminateSupportFacadesAuth;
- class ProjetoController extends Controller
- {
- private $projeto;
- private $novoProjeto;
- public $autorizaDoc;//revisar a funcionalidade desta variável
- //Construtor do projeto
- public function __construct(Projeto $projeto)
- {
- $this->projeto = $projeto;
- $this->autorizaDoc = false;
- }
- //Redireciona os dados do projeto para a página principal
- public function index(Request $request)
- {
- $permissao = verificarPermissao('Projetos');
- $projetos = Projeto::all();
- return view('admin.projeto.index',['projetos' => $projetos, 'permissoesPerfil' => $permissao]);
- }
- //Este método apresenta o formulário para cadastrar um novo projeto
- public function novo()
- {
- $this->autorizaDoc = false;
- $setores = Setor::all();
- $proponentes = Proponente::all();
- $tipoProjetos = TipoProjeto::all();
- $modalidadeApoios = ModalidadeApoio::all();
- $localidades = Localidade::all();
- $permissoesAprovacao = verificarPermissao('Aprovação');
- $permissoesJuridico = verificarPermissao('Juridico');
- $permissoesGestaoContrato = verificarPermissao('Gestão Contratos e Convênios');
- $permissoesFinanceiro = verificarPermissao('Financeiro');
- $permissoesOcorrencia = verificarPermissao('Ocorrência');
- $permissoesAbas= verificarPermissao('Abas do Projeto');
- $permissoesDadosGeraisProj= verificarPermissao('Dados Gerais do Projeto');
- return view('admin.projeto.novo',
- ['permissoesAprovacao' => $permissoesAprovacao, 'permissoesJuridico' => $permissoesJuridico,
- 'permissoesGestaoContrato' => $permissoesGestaoContrato , 'permissoesFinanceiro' => $permissoesFinanceiro,
- 'permissoesOcorrencia'=> $permissoesOcorrencia, 'permissoesDadosGeraisProj' => $permissoesDadosGeraisProj,
- 'permissoesAbas' => $permissoesAbas, 'setores' => $setores, 'proponentes' => $proponentes, 'tipoProjetos' => $tipoProjetos,
- 'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'autorizaDoc' => $this->autorizaDoc
- ]);
- }
- //Método para a consulta dos projetos
- public function consulta(Request $request){
- $condicoes = [];
- if($request->nome != null){
- $condicoes[] = [DB::raw('upper(nome_projeto)'), 'like', DB::raw('upper("%'.$request->get('nomeProjeto').'%")')];
- }
- if($request->processo != null){
- $condicoes[] = [DB::raw('upper(tipo_processo)'), 'like', DB::raw('upper("%'.$request->get('processo').'%")')];
- }
- if($request->data_inicio != null){
- $condicoes[] = ['dt_inicio', '=', $request->input('dtInicio')];
- if($request->data_final != null){
- $condicoes[] = ['dt_fim', '=', $request->input('dtFim')];
- }
- $request->flash(['nome_projeto', 'tipo_processo', 'dt_inicio', 'dt_fim']);
- $projetos = Projeto::where($condicoes)->orderBy('nome_projeto')->get();
- $permissao = verificarPermissao('Projetos');
- return view('admin.projeto.index',['projetos' => $projetos, 'permissoesPerfil' => $permissao]);
- }
- }
- //Método para cadastrar os dados gerais do projeto
- public function cadastro(Request $request, Projeto $projeto)
- {
- $novoProjeto = $projeto->salvar($request->all());
- return redirect()->route('projeto.edita', $novoProjeto->id)->with('success','Sucesso ao cadastrar');;
- }
- //Método que redireciona para a página de editar o Projeto
- public function edita($id, Request $request)
- {
- $this->autorizaDoc = false;
- $usuarios = User::where('autoriza', '=', 'S')->get();
- $setores = Setor::all();
- $proponentes = Proponente::all();
- $tipoProjetos = TipoProjeto::all();
- $modalidadeApoios = ModalidadeApoio::all();
- $localidades = Localidade::all();
- $localidadesAtivas = Localidade::where('ativo', '=', 'S')->orderBy('localidade', 'asc')->get();
- $permissoesAprovacao = verificarPermissao('Aprovação');
- $permissoesJuridico = verificarPermissao('Juridico');
- $permissoesGestaoContrato = verificarPermissao('Gestão Contratos e Convênios');
- $permissoesFinanceiro = verificarPermissao('Financeiro');
- $permissoesOcorrencia = verificarPermissao('Ocorrência');
- $permissoesAbas= verificarPermissao('Abas do Projeto');
- $permissoesDadosGeraisProj= verificarPermissao('Dados Gerais do Projeto');
- $usuarioResponsavel = Auth::user()->name;
- 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,
- 'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'usuarioResponsavel'=>$usuarioResponsavel, 'localidadesAtivas'=> $localidadesAtivas,
- 'autorizaDoc' =>$this->autorizaDoc]);
- }
- //Método para atualizar o Projeto
- public function atualiza(Request $request)
- {
- $projeto = Projeto::findOrFail($request->get('id'));
- $projeto->tipo_processo = $request->get('tipoProcesso');
- $projeto->processo = $request->get('numProcesso');
- $projeto->dt_protocolo = $request->get('dtProtocolo');
- $projeto->setor_origem_id = $request->get('setor');
- $projeto->proponente_id = $request->get('proponente');
- $projeto->nome_projeto = $request->get('nomeProjeto');
- $projeto->dt_inicio = $request->get('dtInicio');
- $projeto->dt_fim = $request->get('dtFim');
- $projeto->dias_intercalados = $request->get('diasIntercalados');
- $projeto->tipo_projeto_id = $request->get('tipoProjeto');
- $projeto->modalidade_apoio_id = $request->get('modalidadeApoio');
- $projeto->localidade_id = $request->get('localidade');
- $projeto->valor_solicitado = $request->get('vlSolicitado');
- $projeto->arquivo_fisico = $request->get('arquivo');
- $projeto->dt_lancamento = CarbonCarbon::now();
- $projeto->dt_alteracao = null;
- $projeto->usu_lancamento_id = auth()->user()->id; //recebe o id do usuário logado
- $projeto->usu_responsavel_id = auth()->user()->id; //recebe o id do usuário logado
- $response = $projeto->alterar($projeto);
- if($response['success'])
- {
- return redirect()
- ->route('projeto.edita',$projeto->id)
- ->with('success',$response['message']);
- }else
- {
- return redirect()
- ->back()
- ->with('error',$response['message']);
- }
- }
- //Método para autorizar a documentação do Projeto
- public function autorizaDocumentacao(Request $request)
- {
- $usuario = User::findOrFail($request->get('idUsuario'));
- $projeto = Projeto::findOrFail($request->get('numProjeto'));
- $statusDoc = $request->get('statusDoc');
- // $statusDoc = 'A';
- $statusDoc == 'P' ? 'A' :'A'; //Validação: se o status for pendente configura para autorizado (A)
- //Se a senha informada for igual ao do banco de dados o documento é autorizado
- if($usuario->password == $request->get('senha')){
- $this->autorizaDoc = true;
- $projeto->status_documentacao = $statusDoc;
- $response = $projeto->save();
- if($response)
- {
- return response()
- ->json(['success' => 'Sucesso ao Autorizar Documentação '], 200);
- }
- else{
- return redirect()
- ->json(['error' => 'Erro ao Autorizar Documentação'], 500);
- }
- }
- else{
- return redirect()
- ->json(['error' => 'Senha Incorreta'], 500);
- }
- }
- //Finalizar o método
- public function cadastroLocalidadesAtivas(Request $request)
- {
- $novosLocalidades = $projeto->salvar($request->get('numProjeto'),$request>get('localidadesAtivasSelect')) ;
- }
- }
- $(document).on('click', '#btnAutorizar', function () {
- $('#numProjeto').val($(this).data('numProjeto'));
- $('#statusDoc').val($(this).data('statusDoc'));
- $('#idUsuario').val($(this).data('idUsuario'));
- $('#senha').val($(this).data('senha'));
- });
- //Ajax para autorizar documentação , e atualizar a página após a ação
- $('.autorizaDocumentacao').click(function () {
- var numProjeto = $('#numProjeto').val();
- var statusDoc = $('#statusDoc').val();
- var idUsuario = $('#idUsuario').val();
- var senha = $('#senha').val();
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
- }
- });
- $.ajax({
- url: "/projetos/autorizaDocumentacao",
- // url: "http://localhost:8000/projetos/autorizaDocumentacao",
- type: "POST",
- data: {numProjeto:numProjeto,statusDoc:statusDoc,idUsuario:idUsuario, senha:senha},
- //data: "numProjeto=numProjeto&statusDoc=statusDoc&idUsuario=idUsuario&senha=senha",
- dataType: "html"
- }).done(function (response) {
- console.log(response);
- if (response.success) {
- $("#statusDoc").val( $('option:contains("Autorizado")').val() );// muda o status da documentação
- setTimeout(() => {
- alert ('Eu entrei aqui');
- window.location.reload();
- }, 4000);
- }
- else {
- alert(response.error);
- }
- }).fail(function () {
- alert ("Erro ao autorizar documentação");
- });
- return false;
- });
- <!--Inicio do modal de Autorizar Documentação-->
- <div class="modal fade modal-default" id="modalAutorizarDocs" aria-hidden="true" aria-labelledby="examplePositionCenter"
- role="dialog" tabindex="-1">
- <div class="modal-dialog 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">Autorização</h4>
- </div>
- <div class="modal-body">
- <div class="form-group col-md-18" style="text-align:center">
- <select class="form-control" name="idUsuario" required>
- <option value="">Usuário Autorização</option>
- @foreach($usuarios as $usuario)
- <option value="{{$usuario->id}}" {{old('usuario') == $usuario->id ? 'selected' : ''}}>{{$usuario->name}}</option>
- @endforeach
- </select>
- <br/>
- <input type="password" class="form-control" name="senha" placeholder="Senha"/>
- </div>
- </div>
- <div class="modal-footer">
- <center>
- <a type="button" class="btn btn-primary autorizaDocumento" data-dismiss="modal" align="center" style="width: 300px; height: 40px">Autorizar</a>
- </center>
- </div>
- </div>
- </div>
- </div>
- <!--Fim do modal de Autorizar Documentação-->
Add Comment
Please, Sign In to add comment