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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)