Guest User

Untitled

a guest
Apr 19th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.26 KB | None | 0 0
  1. <?php
  2.  
  3. namespace AppHttpControllersAdmin;
  4. use AppUser;
  5. use AppHelpershelpers;
  6. use AppModelsProjeto;
  7. use AppModelsSetor;
  8. use AppModelsProponente;
  9. use AppModelsTipoProjeto;
  10. use AppModelsLocalidade;
  11. use AppModelsModalidadeApoio;
  12. use AppModelsLocalidadeProjeto;
  13. use IlluminateHttpRequest;
  14. use AppHttpControllersController;
  15. use IlluminateSupportFacadesDB;
  16. use IlluminateSupportFacadesAuth;
  17.  
  18. class ProjetoController extends Controller
  19. {
  20. private $projeto;
  21. private $novoProjeto;
  22. public $autorizaDoc;//revisar a funcionalidade desta variável
  23.  
  24. //Construtor do projeto
  25. public function __construct(Projeto $projeto)
  26. {
  27. $this->projeto = $projeto;
  28. $this->autorizaDoc = false;
  29. }
  30.  
  31. //Redireciona os dados do projeto para a página principal
  32. public function index(Request $request)
  33. {
  34. $permissao = verificarPermissao('Projetos');
  35. $projetos = Projeto::all();
  36. return view('admin.projeto.index',['projetos' => $projetos, 'permissoesPerfil' => $permissao]);
  37. }
  38.  
  39. //Este método apresenta o formulário para cadastrar um novo projeto
  40. public function novo()
  41. {
  42. $this->autorizaDoc = false;
  43. $setores = Setor::all();
  44. $proponentes = Proponente::all();
  45. $tipoProjetos = TipoProjeto::all();
  46. $modalidadeApoios = ModalidadeApoio::all();
  47. $localidades = Localidade::all();
  48. $permissoesAprovacao = verificarPermissao('Aprovação');
  49. $permissoesJuridico = verificarPermissao('Juridico');
  50. $permissoesGestaoContrato = verificarPermissao('Gestão Contratos e Convênios');
  51. $permissoesFinanceiro = verificarPermissao('Financeiro');
  52. $permissoesOcorrencia = verificarPermissao('Ocorrência');
  53. $permissoesAbas= verificarPermissao('Abas do Projeto');
  54. $permissoesDadosGeraisProj= verificarPermissao('Dados Gerais do Projeto');
  55.  
  56. return view('admin.projeto.novo',
  57. ['permissoesAprovacao' => $permissoesAprovacao, 'permissoesJuridico' => $permissoesJuridico,
  58. 'permissoesGestaoContrato' => $permissoesGestaoContrato , 'permissoesFinanceiro' => $permissoesFinanceiro,
  59. 'permissoesOcorrencia'=> $permissoesOcorrencia, 'permissoesDadosGeraisProj' => $permissoesDadosGeraisProj,
  60. 'permissoesAbas' => $permissoesAbas, 'setores' => $setores, 'proponentes' => $proponentes, 'tipoProjetos' => $tipoProjetos,
  61. 'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'autorizaDoc' => $this->autorizaDoc
  62. ]);
  63. }
  64.  
  65. //Método para a consulta dos projetos
  66. public function consulta(Request $request){
  67.  
  68. $condicoes = [];
  69.  
  70. if($request->nome != null){
  71. $condicoes[] = [DB::raw('upper(nome_projeto)'), 'like', DB::raw('upper("%'.$request->get('nomeProjeto').'%")')];
  72. }
  73.  
  74. if($request->processo != null){
  75. $condicoes[] = [DB::raw('upper(tipo_processo)'), 'like', DB::raw('upper("%'.$request->get('processo').'%")')];
  76. }
  77.  
  78. if($request->data_inicio != null){
  79. $condicoes[] = ['dt_inicio', '=', $request->input('dtInicio')];
  80.  
  81.  
  82. if($request->data_final != null){
  83. $condicoes[] = ['dt_fim', '=', $request->input('dtFim')];
  84. }
  85.  
  86. $request->flash(['nome_projeto', 'tipo_processo', 'dt_inicio', 'dt_fim']);
  87. $projetos = Projeto::where($condicoes)->orderBy('nome_projeto')->get();
  88. $permissao = verificarPermissao('Projetos');
  89. return view('admin.projeto.index',['projetos' => $projetos, 'permissoesPerfil' => $permissao]);
  90. }
  91.  
  92. }
  93.  
  94.  
  95. //Método para cadastrar os dados gerais do projeto
  96. public function cadastro(Request $request, Projeto $projeto)
  97. {
  98. $novoProjeto = $projeto->salvar($request->all());
  99. return redirect()->route('projeto.edita', $novoProjeto->id)->with('success','Sucesso ao cadastrar');;
  100. }
  101.  
  102.  
  103.  
  104. //Método que redireciona para a página de editar o Projeto
  105. public function edita($id, Request $request)
  106. {
  107. $this->autorizaDoc = false;
  108. $usuarios = User::where('autoriza', '=', 'S')->get();
  109. $setores = Setor::all();
  110. $proponentes = Proponente::all();
  111. $tipoProjetos = TipoProjeto::all();
  112. $modalidadeApoios = ModalidadeApoio::all();
  113. $localidades = Localidade::all();
  114. $localidadesAtivas = Localidade::where('ativo', '=', 'S')->orderBy('localidade', 'asc')->get();
  115. $permissoesAprovacao = verificarPermissao('Aprovação');
  116. $permissoesJuridico = verificarPermissao('Juridico');
  117. $permissoesGestaoContrato = verificarPermissao('Gestão Contratos e Convênios');
  118. $permissoesFinanceiro = verificarPermissao('Financeiro');
  119. $permissoesOcorrencia = verificarPermissao('Ocorrência');
  120. $permissoesAbas= verificarPermissao('Abas do Projeto');
  121. $permissoesDadosGeraisProj= verificarPermissao('Dados Gerais do Projeto');
  122. $usuarioResponsavel = Auth::user()->name;
  123.  
  124. return view('admin.projeto.edita', ['projeto' => Projeto::find($id), 'permissoesAprovacao' => $permissoesAprovacao, 'permissoesJuridico' => $permissoesJuridico,
  125. 'permissoesGestaoContrato' => $permissoesGestaoContrato , 'permissoesFinanceiro' => $permissoesFinanceiro,
  126. 'permissoesOcorrencia'=> $permissoesOcorrencia, 'permissoesDadosGeraisProj' => $permissoesDadosGeraisProj,
  127. 'permissoesAbas' => $permissoesAbas, 'setores' => $setores, 'proponentes' => $proponentes, 'tipoProjetos' => $tipoProjetos, 'usuarios' => $usuarios,
  128. 'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'usuarioResponsavel'=>$usuarioResponsavel, 'localidadesAtivas'=> $localidadesAtivas,
  129. 'autorizaDoc' =>$this->autorizaDoc]);
  130. }
  131.  
  132. //Método para atualizar o Projeto
  133. public function atualiza(Request $request)
  134. {
  135. $projeto = Projeto::findOrFail($request->get('id'));
  136. $projeto->tipo_processo = $request->get('tipoProcesso');
  137. $projeto->processo = $request->get('numProcesso');
  138. $projeto->dt_protocolo = $request->get('dtProtocolo');
  139. $projeto->setor_origem_id = $request->get('setor');
  140. $projeto->proponente_id = $request->get('proponente');
  141. $projeto->nome_projeto = $request->get('nomeProjeto');
  142. $projeto->dt_inicio = $request->get('dtInicio');
  143. $projeto->dt_fim = $request->get('dtFim');
  144. $projeto->dias_intercalados = $request->get('diasIntercalados');
  145. $projeto->tipo_projeto_id = $request->get('tipoProjeto');
  146. $projeto->modalidade_apoio_id = $request->get('modalidadeApoio');
  147. $projeto->localidade_id = $request->get('localidade');
  148. $projeto->valor_solicitado = $request->get('vlSolicitado');
  149. $projeto->arquivo_fisico = $request->get('arquivo');
  150. $projeto->dt_lancamento = CarbonCarbon::now();
  151. $projeto->dt_alteracao = null;
  152. $projeto->usu_lancamento_id = auth()->user()->id; //recebe o id do usuário logado
  153. $projeto->usu_responsavel_id = auth()->user()->id; //recebe o id do usuário logado
  154.  
  155. $response = $projeto->alterar($projeto);
  156.  
  157. if($response['success'])
  158. {
  159. return redirect()
  160. ->route('projeto.edita',$projeto->id)
  161. ->with('success',$response['message']);
  162. }else
  163. {
  164. return redirect()
  165. ->back()
  166. ->with('error',$response['message']);
  167.  
  168. }
  169.  
  170. }
  171.  
  172. //Método para autorizar a documentação do Projeto
  173. public function autorizaDocumentacao(Request $request)
  174. {
  175. $usuario = User::findOrFail($request->get('idUsuario'));
  176. $projeto = Projeto::findOrFail($request->get('numProjeto'));
  177. $statusDoc = $request->get('statusDoc');
  178. // $statusDoc = 'A';
  179. $statusDoc == 'P' ? 'A' :'A'; //Validação: se o status for pendente configura para autorizado (A)
  180.  
  181. //Se a senha informada for igual ao do banco de dados o documento é autorizado
  182. if($usuario->password == $request->get('senha')){
  183. $this->autorizaDoc = true;
  184. $projeto->status_documentacao = $statusDoc;
  185. $response = $projeto->save();
  186. if($response)
  187. {
  188. return response()
  189. ->json(['success' => 'Sucesso ao Autorizar Documentação '], 200);
  190. }
  191. else{
  192. return redirect()
  193. ->json(['error' => 'Erro ao Autorizar Documentação'], 500);
  194. }
  195. }
  196. else{
  197. return redirect()
  198. ->json(['error' => 'Senha Incorreta'], 500);
  199. }
  200.  
  201. }
  202.  
  203. //Finalizar o método
  204. public function cadastroLocalidadesAtivas(Request $request)
  205. {
  206. $novosLocalidades = $projeto->salvar($request->get('numProjeto'),$request>get('localidadesAtivasSelect')) ;
  207.  
  208.  
  209.  
  210. }
  211. }
  212.  
  213. $(document).on('click', '#btnAutorizar', function () {
  214. $('#numProjeto').val($(this).data('numProjeto'));
  215. $('#statusDoc').val($(this).data('statusDoc'));
  216. $('#idUsuario').val($(this).data('idUsuario'));
  217. $('#senha').val($(this).data('senha'));
  218. });
  219.  
  220. //Ajax para autorizar documentação , e atualizar a página após a ação
  221. $('.autorizaDocumentacao').click(function () {
  222. var numProjeto = $('#numProjeto').val();
  223. var statusDoc = $('#statusDoc').val();
  224. var idUsuario = $('#idUsuario').val();
  225. var senha = $('#senha').val();
  226.  
  227. $.ajaxSetup({
  228. headers: {
  229. 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  230. }
  231. });
  232.  
  233. $.ajax({
  234. url: "/projetos/autorizaDocumentacao",
  235. // url: "http://localhost:8000/projetos/autorizaDocumentacao",
  236. type: "POST",
  237. data: {numProjeto:numProjeto,statusDoc:statusDoc,idUsuario:idUsuario, senha:senha},
  238. //data: "numProjeto=numProjeto&statusDoc=statusDoc&idUsuario=idUsuario&senha=senha",
  239. dataType: "html"
  240. }).done(function (response) {
  241. console.log(response);
  242. if (response.success) {
  243. $("#statusDoc").val( $('option:contains("Autorizado")').val() );// muda o status da documentação
  244.  
  245. setTimeout(() => {
  246. alert ('Eu entrei aqui');
  247. window.location.reload();
  248. }, 4000);
  249. }
  250. else {
  251. alert(response.error);
  252. }
  253. }).fail(function () {
  254. alert ("Erro ao autorizar documentação");
  255.  
  256. });
  257.  
  258. return false;
  259. });
  260.  
  261. <!--Inicio do modal de Autorizar Documentação-->
  262. <div class="modal fade modal-default" id="modalAutorizarDocs" aria-hidden="true" aria-labelledby="examplePositionCenter"
  263. role="dialog" tabindex="-1">
  264. <div class="modal-dialog modal-center">
  265. <div class="modal-content">
  266. <div class="modal-header">
  267. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  268. <span aria-hidden="true">×</span>
  269. </button>
  270. <h4 class="modal-title">Autorização</h4>
  271. </div>
  272. <div class="modal-body">
  273.  
  274. <div class="form-group col-md-18" style="text-align:center">
  275. <select class="form-control" name="idUsuario" required>
  276. <option value="">Usuário Autorização</option>
  277. @foreach($usuarios as $usuario)
  278. <option value="{{$usuario->id}}" {{old('usuario') == $usuario->id ? 'selected' : ''}}>{{$usuario->name}}</option>
  279. @endforeach
  280. </select>
  281. <br/>
  282. <input type="password" class="form-control" name="senha" placeholder="Senha"/>
  283. </div>
  284. </div>
  285. <div class="modal-footer">
  286. <center>
  287. <a type="button" class="btn btn-primary autorizaDocumento" data-dismiss="modal" align="center" style="width: 300px; height: 40px">Autorizar</a>
  288. </center>
  289. </div>
  290. </div>
  291. </div>
  292. </div>
  293. <!--Fim do modal de Autorizar Documentação-->
Add Comment
Please, Sign In to add comment