def setor(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: nome_setor = request.POST.get('nome_setor') if len(nome_setor) == 0: messages.add_message(request, messages.INFO, 'Erro no cadastro, nome inválido.') elif len(Setor.objects.filter(nome=nome_setor)) > 0: messages.add_message(request, messages.INFO, 'Erro no cadastro, setor já cadastrado.') else: Setor.objects.create(nome=nome_setor) messages.add_message(request, messages.INFO, 'Setor cadastrado com sucesso.') return redirect('setor') except Exception: messages.add_message( request, messages.INFO, 'Erro no cadastro do setor, contate o administrador do sistema.' ) return redirect('setor') else: dados = seleciona_dados(request) dados['setores'] = Setor.objects.all() dados['colaboradores'] = Perfil.objects.all() return render(request, 'core/super/super-setor.html', dados)
def administrador_mostra_setor(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') tamplate_name = 'core/super/mostra-setor.html' dados = seleciona_dados(request) dados['setor'] = Setor.objects.get(id=id) return render(request, tamplate_name, dados)
def administrador_extra(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') tamplate_name = 'core/super/super-dados-extras.html' dados = seleciona_dados(request) dados['formasdepagamentos'] = FormaDePagamento.objects.all() dados['configuracoes'] = Hash.objects.all() return render(request, tamplate_name, dados)
def dashboard(request): func = FuncionalidadesCore() if not func.administardor(request): return redirect('solicitacoes') tamplate_name = 'core/dashboard/dashboard.html' setor = request.user.perfil.setor dados = seleciona_dados(request) dados['colaboradores_do_setor'] = setor.perfis_do_setor.all() dados['dados_grafico'] = formata_dados_do_grafico(request) return render(request, tamplate_name, dados)
def atualiza_usuario(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: nome = request.POST.get('nome') matricula = request.POST.get('matricula') id_setor = request.POST.get('setor') email = request.POST.get('email') senha = request.POST.get('senha') ch_primeira = request.POST.get('ch_primeira') ch_segunda = request.POST.get('ch_segunda') if len(nome) == 0 or len(matricula) == 0 or len( id_setor) == 0 or len(email) == 0 or len( ch_primeira) == 0 or len(ch_segunda) == 0: messages.add_message( request, messages.INFO, 'Erro na atualização dos dados, com exceção do campo senha, todos os campos devem' + 'ser preenchidos corretamente') return redirect('setor') setor = Setor.objects.get(id=id_setor) user = User.objects.get(username=id) user.username = matricula user.email = email perfil = user.perfil perfil.nome = nome perfil.setor = setor perfil.ch_primeira = ch_primeira perfil.ch_segunda = ch_segunda if senha != '': user.set_password(senha) perfil.save() user.save() return redirect('usuario_atualiza', id=matricula) except: messages.add_message( request, messages.INFO, 'Erro na atualização dos dados, verifique se ' + 'todos os campos estão preenchidos corretamente') return redirect('setor') else: dados = seleciona_dados(request) dados['colaborador'] = User.objects.get(username=id) dados['setores'] = Setor.objects.all() return render(request, 'core/super/mostra-usuario.html', dados)
def forma_de_pagamento_editar(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': nome = request.POST.get('nome') if len(nome) > 0: pagamento = FormaDePagamento.objects.get(id=id) pagamento.nome = nome pagamento.save() messages.add_message(request, messages.INFO, 'Forma de pagamento modificado com sucesso.') else: messages.add_message(request, messages.INFO, 'Digite algo para editar') return redirect('administrador_extra') else: dados = seleciona_dados(request) dados['pagamento'] = FormaDePagamento.objects.get(id=id) return render(request, 'core/super/alterar-formadepagamento.html', dados)
def status_editar(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': nome = request.POST.get('nome') if len(nome) > 0: status = Status.objects.get(id=id) status.nome = nome status.save() messages.add_message(request, messages.INFO, 'Status modificado com sucesso.') else: messages.add_message(request, messages.INFO, 'Digite algo para editar') return redirect('administrador_extra') else: dados = seleciona_dados(request) dados['status'] = Status.objects.get(id=id) return render(request, 'core/super/alterar-status.html', dados)
def hash_edit(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': valor = request.POST.get('valor') if len(valor) > 0: funcionalidades = FuncionalidadesCore() hash_obj = Hash.objects.get(id=id) hash_obj.valor = valor hash_obj.save() messages.add_message(request, messages.INFO, 'Configuração modificada com sucesso.') return redirect('administrador_extra') messages.add_message(request, messages.INFO, 'Digite algo na configuração') return redirect('administrador_extra') else: dados = seleciona_dados(request) dados['configuracao'] = Hash.objects.get(id=id) return render(request, 'core/super/alterar-configuracao.html', dados)
def relatorio(request): if request.method == 'POST': try: data_inicial = request.POST.get('data_inicial') data_final = request.POST.get('data_final') status = request.POST.get('status') andamento = request.POST.get('andamento') colaborador = request.POST.get('colaborador') forma_pagamento = request.POST.get('forma_pagamento') tipo_movimentacao = request.POST.get('tipo_movimentacao') inicio = datetime.strptime(data_inicial, '%Y-%m-%d') fim = datetime.strptime(data_final, '%Y-%m-%d') dados = Movimentacao.objects.filter( data_movimentacao__range=(inicio, fim)) todas = True if status != '0' and status != '': # Status controller.gera_log('Aplicou o filtro de Status') id_aux = int(status) status = Status.objects.get(id=id_aux) dados = dados.filter(status=status) if andamento != '0' and andamento != '': # Andamento da solicitação controller.gera_log( 'Aplicou o filtro de Andamento da solicitação') id_aux = False if id_aux == '1': id_aux = True dados = dados.filter(finalizado=id_aux) if colaborador != '0' and colaborador != '': # colaborador especifico controller.gera_log( 'Aplicou o filtro de Colaborador especifico') id_aux = int(colaborador) colaborador = Perfil.objects.get(id=id_aux) dados = dados.filter(colaborador=colaborador) if forma_pagamento != '0' and forma_pagamento != '': # Forma de pagamento controller.gera_log('Aplicou o filtro de Forma de pagamento') id_aux = int(forma_pagamento) forma_pagamento = FormaDePagamento.objects.get(id=id_aux) dados = dados.filter(forma_de_pagamento=forma_pagamento) if tipo_movimentacao != '0' and tipo_movimentacao != '': # Tipo de movimentacao controller.gera_log('Aplicou o filtro de tipo de movimentacao') id_aux = False if tipo_movimentacao == '1': id_aux = True dados = dados.filter(entrada=id_aux) todas = False res = {} if todas: res = formata_dados_do_relatorio(dados, todas=todas) else: res = formata_dados_do_relatorio( dados, tipo_movimentacao=tipo_movimentacao) username = request.user.username filepath = gerador(res, username) if os.path.exists(filepath): with open(filepath, 'rb') as fh: response = HttpResponse( fh.read(), content_type="application/vnd.ms-excel") response[ 'Content-Disposition'] = 'inline; filename=' + os.path.basename( filepath) return response return HttpResponse('Arquivo não encontrado.') except Exception: messages.add_message( request, messages.INFO, 'Erro ao gerar relatório, verifique se todos ' + 'os campos estão preenchidos corretamente e tente novamente.') dados = seleciona_dados(request) return render(request, 'relatorio/relatorio.html', dados)