コード例 #1
0
def update_atendimento(request, pk):
    template = 'update_atendimento.html'
    model = Atendimento.object.get(pk=pk)
    context = {}
    if request.method == "POST":
        form = AtendimentoViewForm(request.POST, instance=model)
        if form.is_valid():

            model.loja = form.cleaned_data['loja']
            model.solicitante = form.cleaned_data['solicitante']
            model.solucao = form.cleaned_data['solucao']
            model.status = form.cleaned_data['status']

            if model.status == 'r':
                model.user_finaliza = request.user

            model.setor = form.cleaned_data['setor']
            model.problema = form.cleaned_data['problema']
            model.save()
            return redirect('/atendimento/')
    else:
        form = AtendimentoViewForm(instance=model)
    context = {
        'staff': is_staff(request.user),
        'form': form,
        'model': model,
    }
    return render(request, template, context)
コード例 #2
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def lista_incidente(request):
    template = 'lista_incidente.html'
    query = HistoricoIncidente.objects.all()
    staff = is_staff(request.user)
    context = {'chamado': query, 'staff': staff}

    return render(request, template, context)
コード例 #3
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def cadastro(request):
    template = 'cad_msg.html'
    form = MsgForm(request.POST or None)
    model = Msg()
    user = request.user

    if request.method == "POST":
        if form.is_valid():
            model.user = user
            model.dest = form.cleaned_data['dest']
            model.assunto = form.cleaned_data['assunto']
            model.mensagem = form.cleaned_data['mensagem']
            model.grupo = form.cleaned_data['grupo']
            model.geral = form.cleaned_data['geral']
            model.importancia = form.cleaned_data['importancia']
            model.save()
            messages.success(request, 'Mensagem enviada!')
        else:
            messages.error(
                request,
                'Erro ao enviar mensagem! Valide os campos preenchidos.')
    else:
        form = MsgForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #4
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def msg(request, id, grupo):

    # SINTAXE REVERSA PARA FUNCIONAR NA HOMEPAGE.. NAO FAÇO IDEIA PQ PRECISA TER OS DADOS AQUI, RS
    def pega_dados_msg():
        user = request.user
        id_user = user.id
        #pega dados do usuario para direcionar em mensagens
        grupo_msg = str(Group_Msg.object.get(user_id=id_user))
        id_msg = user.id
        return id_msg, grupo_msg

    pega_dados = pega_dados_msg()
    id_msg = pega_dados[0]
    grupo_msg = pega_dados[1]

    # QUERYSET PARA PEGAR MENSAGEM DE CADA PRODUTO
    msg = Msg.object.filter(Q(geral=True) & Q(grupo=grupo)
                            | Q(dest_id=id)).order_by('-create_at')

    context = {
        'staff': is_staff(request.user),
        'msg': msg,
        'grupo_msg': grupo_msg,
        'id_msg': id_msg,
    }
    template = 'msg.html'
    return render(request, template, context)
コード例 #5
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request, idorigem):
        titulo = 'Lista de estoque completo'
        dtgeracao = datetime.now()
        origem = Lojas.object.get(id=idorigem)
        estoque = Equipamento.object.filter(loja=idorigem) 
        loja = Lojas.object.get(id=idorigem)

        list = []
        anterior = ''
        for i in estoque:
            if i.name != anterior:
                list.append(i.name)
                anterior = i.name

        valores = Equipamento.object.filter(loja=idorigem, name__in= list).\
        values('name').annotate(Count('name'))


        if not estoque.exists():
            return redirect('core:erro_relatorio')
        params = {
            'staff': is_staff(request.user),
            'estoque': estoque,
            'dtgeracao': dtgeracao,
            'loja': loja,
            'origem': origem,
            'titulo': titulo,
            'valores': valores,
        }

        return Render.render('pdf_filial.html', params)
コード例 #6
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def list_circuito_dados(request):
    template = 'list_circuito_dados.html'
    query = CircuitoDados.objects.all()

    user = request.user
    staff = is_staff(user)
    context = {'staff': staff, 'chamado': query}
    return render(request, template, context)
コード例 #7
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def ferias(request):
    template = 'ferias.html'
    query = Ferias.objects.all()

    user = request.user
    staff = is_staff(user)
    context = {'staff': staff, "chamado": query}

    return render(request, template, context)
コード例 #8
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def camara_fria(request):
    template = 'camara_fria.html'
    query = IpFixo.objects.all()

    user = request.user
    staff = is_staff(user)
    context = {'staff': staff, "chamado": query}

    return render(request, template, context)
コード例 #9
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def list_central_telefonica(request):
    template = 'list_central_telefonica.html'
    query = CentralTelefonica.objects.all()
    staff = is_staff(request.user)
    context = {
        'chamado': query,
        'staff': staff,
    }
    return render(request, template, context)
コード例 #10
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def lista_backup(request):
    template='lista_estoque_backup.html'
    estoque = Equipamento.object.filter(backup=True,loja__in=request.user.profile.filiais.all())
    user = request.user
    staff = is_staff(user)
    context = {
        'estoque':estoque,
        'staff': staff,
    }
    return render(request,template,context)
コード例 #11
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def listagem_compras(request):
    
    compras = Compras.objects.all()
    user = request.user
    staff = is_staff(user)
    context = {
        'compras': compras,
        'staff': staff,
    }
    template = 'lista_compras.html'
    return render(request,template,context)
コード例 #12
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def list_transf(request):
    template = 'lista_transf.html'

    grupo_usuario = Profile.objects.get(user=request.user)
    if grupo_usuario.grupo == "BH":
        transf = Transferencia.object.filter(
            Q(destino_id__gt=8)).order_by('-create_at')
    elif grupo_usuario.grupo == "MONTES CLAROS":
        transf = Transferencia.object.filter(
            Q(destino_id__lt=9)).order_by('-create_at')
    else:
        transf = Transferencia.object.all().order_by('-create_at')

    user = request.user
    staff = is_staff(user)
    context = {
        'staff': is_staff(request.user),
        'transf': transf,
        'staff': staff,
    }
    return render(request, template, context)
コード例 #13
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
 def get(self, request, name, idorigem):
     titulo = 'Estoque por modelo e filial'
     dtgeracao = datetime.now()
     origem = Lojas.object.get(id=idorigem)
     estoque = Equipamento.object.filter(name=name, loja=idorigem)
     params = {
         'staff': is_staff(request.user),
         'titulo': titulo,
         'estoque': estoque,
         'dtgeracao': dtgeracao,
         'origem': origem,
     }
     return Render.render('pdf_modelo_filial.html', params)
コード例 #14
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def estoque_por_modelo(request):
    template = 'view_modelo.html'
    if request.method == 'POST':
        form = ViewModeloForm(request.POST or None) 
        if form.is_valid():
            idorigem = request.POST.get('filial')
            name = request.POST.get('name')
            return redirect('estoque:pdfmodelofilial',name=name,idorigem=idorigem) 
        else: 
            messages.error(request, "Formulário invalido!")  
            form = ViewModeloForm() 
    else: 
        form = ViewModeloForm()
    context = {
        'staff': is_staff(request.user),
        'form': form
    }    
    return render(request,template, context)
コード例 #15
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def estoque_por_filial(request):
    template = 'view_filial.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = ViewFilialForm(request.POST or None) 
        if form.is_valid():
            idorigem = request.POST.get('filial')
            return redirect('estoque:pdffilial',idorigem=idorigem) 
        else: 
            messages.error(request, "Formulário invalido!")  
            form = ViewFilialForm() 
    else: 
        form = ViewFilialForm()
    context = {
        'staff': is_staff(request.user),
        'form': form
    }    
    return render(request,template, context)
コード例 #16
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def recebimento_data(request):
    template = 'viewpordata_recebimento.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioRecebDataForm(request.POST)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            return redirect('envios:pdfdata_receb',
                            dtinicial=dtinicial,
                            dtfinal=dtfinal)
        else:
            messages.error(request, "Formulário invalido!")
            form = RelatorioDataForm()
    else:
        form = RelatorioDataForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #17
0
def atendimento_completo_todas(request):
    template = 'viewcompleto_atendimento_todas.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioCompletoTodasForm(request.POST)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            return redirect('atendimento:pdfcompletoatendimentotodas',
                            dtinicial=dtinicial,
                            dtfinal=dtfinal)
        else:
            messages.error(request, "Formulário invalido!")
            form = RelatorioCompletoTodasForm()
    else:
        form = RelatorioCompletoTodasForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #18
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def compras_vencimento(request):
    template = 'viewdatavencimento_compras.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioVencimentoForm(request.POST)
        if form.is_valid():
            dtfinal = str(form.cleaned_data['final'])          
            return redirect('compras:pdfcompletovencimento',dtfinal=dtfinal) 
        else: 
            messages.error(request, "Formulário invalido!")
            form = RelatorioVencimentoForm()
    else: 
        form = RelatorioVencimentoForm()
    context = {
        'staff': is_staff(request.user),
        'form': form
    }    
    return render(request,template, context)
コード例 #19
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def lista_estoque(request):
    template='lista_estoque.html'
    #estoque = Equipamento.object.all()

    # grupo_usuario = Profile.objects.get(user = request.user)
    # if grupo_usuario.grupo == "BH":
    #     estoque = Equipamento.object.filter(Q(loja_id__in = lista_id_bh)).order_by('-create_at')
    # elif grupo_usuario.grupo == "MONTES CLAROS":
    #     estoque = Equipamento.object.filter(Q(loja_id__in = lista_id_moc)).order_by('-create_at')
    # else:
    #     estoque = Equipamento.object.all().order_by('-create_at')

    estoque = Equipamento.object.filter(loja__in = request.user.profile.filiais.all()).order_by('-create_at')
    user = request.user
    staff = is_staff(user)
    context = {
        'estoque':estoque,
        'staff': staff,
    }
    return render(request,template,context)
コード例 #20
0
def atendimento_por_responsavel(request):
    template = 'viewportecnico_atendimento.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioTecnicoForm(request.POST)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            usuario = request.POST.get('usuario')
            return redirect('atendimento:pdftecnico',
                            dtinicial=dtinicial,
                            dtfinal=dtfinal,
                            usuario=usuario)
        else:
            messages.error(request, "Formulário invalido!")
            form = RelatorioTecnicoForm()
    else:
        form = RelatorioTecnicoForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #21
0
def atendimento_setor(request):
    template = 'viewporsetor_atendimento.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioSetorForm(request.POST)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            idorigem = request.POST.get('setor')
            return redirect('atendimento:pdfsetoratendimento',
                            dtinicial=dtinicial,
                            dtfinal=dtfinal,
                            idorigem=idorigem)
        else:
            messages.error(request, "Formulário invalido!")
            form = RelatorioSetorForm()
    else:
        form = RelatorioSetorForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #22
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def compras_completo(request):
    template = 'viewcompleto_compras.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioCompletoForm(request.POST)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            idorigem = request.POST.get('filial')            
            return redirect('compras:pdfcompletoacompras',dtinicial=dtinicial, dtfinal=dtfinal, idorigem=idorigem) 
        else: 
            messages.error(request, "Formulário invalido!")
            form = RelatorioCompletoForm()
    else: 
        form = RelatorioCompletoForm()
    context = {
        'staff': is_staff(request.user),
        'form': form
    }    
    return render(request,template, context)
コード例 #23
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def envio_por_modelo(request):
    template = 'viewpormodelo.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioDataModeloForm(request.POST or None)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            modelo = request.POST.get('modelo')
            return redirect('envios:pdfdatamodelo',
                            dtinicial=dtinicial,
                            dtfinal=dtfinal,
                            modelo=modelo)
        else:
            messages.error(request, "Formulário invalido!")
            form = RelatorioDataModeloForm()
    else:
        form = RelatorioDataModeloForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #24
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request, dtinicial, dtfinal, idorigem):
        dtgeracao = datetime.now()
        origem = Lojas.object.get(id=idorigem)
        chamado = Transferencia.object.filter(create_at__lte=dtfinal,
                                              create_at__gte=dtinicial,
                                              destino=idorigem)
        loja = Lojas.object.get(id=idorigem)
        if not chamado.exists():
            return redirect('core:erro_relatorio')
        params = {
            'staff': is_staff(request.user),
            'chamado': chamado,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'loja': loja,
            'origem': origem,
        }

        return Render.render('pdf_data_filial_transf.html', params)
コード例 #25
0
def lista_chamado(request):
    template = 'lista_chamado.html'

    # grupo_usuario = Profile.objects.get(user = request.user)
    # if grupo_usuario.grupo == "BH":
    #     chamado = Chamado.object.filter(Q(loja_id__in = lista_id_bh)).order_by('-create_at')
    # elif grupo_usuario.grupo == "MONTES CLAROS":
    #     chamado = Chamado.object.filter(Q(loja_id__in = lista_id_moc)).order_by('-create_at')
    # else:
    #     chamado = Chamado.object.all().order_by('-create_at')

    chamado = Chamado.object.filter(
        loja__in=request.user.profile.filiais.all()).order_by('-create_at')

    user = request.user
    staff = is_staff(user)
    context = {
        'chamado': chamado,
        'staff': staff,
    }
    return render(request, template, context)
コード例 #26
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def envio_por_data_filial(request):
    template = 'viewpordatafilial.html'
    dtinicial = dtfinal = 0
    if request.method == 'POST':
        form = RelatorioDataFilialForm(request.POST or None)
        if form.is_valid():
            dtinicial = str(form.cleaned_data['inicial'])
            dtfinal = str(form.cleaned_data['final'])
            idorigem = request.POST.get('filial_origem')
            iddestino = request.POST.get('filial_destino')
            return redirect('envios:pdfdatafilial',
                            dtinicial=dtinicial,
                            dtfinal=dtfinal,
                            iddestino=iddestino,
                            idorigem=idorigem)
        else:
            messages.error(request, "Formulário invalido!")
            form = RelatorioDataFilialForm()
    else:
        form = RelatorioDataFilialForm()
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #27
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def cadastro(request):
    template = 'cad_transf.html'
    form = TransferenciaForm(request.POST or None)
    if request.method == 'POST':
        id_equipamento = request.POST.get('equipamento')
        cod_filial = request.POST.get('destino')
        if form.is_valid():
            # TRANSFERE FILIAL DO EQUIPAMENTO
            equip = Equipamento.object.get(id=id_equipamento)
            filial = Lojas.object.get(id=cod_filial)
            equip.loja = filial
            equip.save()
            form.user = request.user
            form.save()
            messages.success(request, 'Transferência cadastrada com sucesso!')
            context = {'messages': messages}
            form = TransferenciaForm()
        else:
            messages.error(request, 'Formulário inválido!')
            context = {'messages': messages}
    context = {'staff': is_staff(request.user), 'form': form}
    return render(request, template, context)
コード例 #28
0
def lista_chamado_pendente(request):
    template = 'lista_chamado_pendente.html'
    grupo_usuario = Profile.objects.get(user=request.user)

    chamado = Chamado.object.filter(
        loja__in=request.user.profile.filiais.all(),
        status=Chamado.STATUS_CHAMADO_PENDENTE)

    # if grupo_usuario.grupo == "BH":
    #     chamado = Chamado.object.filter(Q(loja_id__in = lista_id_bh), status = 'p')
    # elif grupo_usuario.grupo == "MONTES CLAROS":
    #     chamado = Chamado.object.filter(Q(loja_id__in = lista_id_moc), status = 'p')
    # else:
    #     chamado = Chamado.object.filter(status = 'p')

    user = request.user
    staff = is_staff(user)
    context = {
        'chamado': chamado,
        'staff': staff,
    }
    return render(request, template, context)
コード例 #29
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
def msg_indi(request, id):
    user = request.user
    msg = Msg.object.get(id=id)

    # SINTAXE REVERSA PARA FUNCIONAR NA HOMEPAGE.. NAO FAÇO IDEIA PQ PRECISA TER OS DADOS AQUI, RS
    def pega_dados_msg():
        user = request.user
        id_user = user.id
        #pega dados do usuario para direcionar em mensagens
        grupo_msg = str(Group_Msg.object.get(user_id=id_user))
        id_msg = user.id
        return id_msg, grupo_msg

    pega_dados = pega_dados_msg()
    id_msg = pega_dados[0]
    grupo_msg = pega_dados[1]

    # SALVA SE A MENSAGEM FOI LIDA
    msg.lida = True
    msg.save()

    # verifica se é o criador da mensagem
    def if_owner():
        if user.id == msg.user_id:
            return True
        else:
            return False

    context = {
        'staff': is_staff(request.user),
        'msg': msg,
        'owner': if_owner(),
        'grupo_msg': grupo_msg,
        'id_msg': id_msg,
    }
    template = 'msg_ind.html'
    return render(request, template, context)
コード例 #30
0
def homepage(request):
    template = 'index.html'
    user = request.user
    id_user = user.id

    # adiciona atendimento
    form_atendi = AtendimentoForm()
    add_atendimento(request, user)

    #pega dados do usuario para direcionar em mensagens
    grupo_msg = str(Group_Msg.object.get(user_id=user.id))
    id_msg = user.id

    #pega localidade do operador logado
    query_localidade = Profile.objects.get(user=request.user)
    if query_localidade.grupo == 'BH':
        see_bh = 1
    elif query_localidade.grupo == 'MONTES CLAROS':
        see_bh = 2
    else:
        see_bh = 0

    # mensagens não lidas
    msg_nao_lida = Msg.object.filter(lida=False, dest=user).count()

    # envios pendentes
    envios_pendentes = EnvioBh.object.filter(
        recebido=False,
        filial_origem__in=request.user.profile.filiais.all()).count()

    #lista filiais
    lista_filial = []
    query_filial = Lojas.object.all()
    for i in query_filial:
        lista_filial.append(i.id)

    # lista filiais bh
    lojas_bh = []
    query_bh = Lojas.object.exclude(cidade='MONTES CLAROS')
    for i in query_bh:
        lojas_bh.append(i.id)

    data_atendimento_filial = contagem_atendimento_filial(request)
    filiais_data_atendimento_filial = list(
        Lojas.object.filter(polo='MONTES CLAROS').order_by('id').values_list(
            'name', flat=True))

    data_atendimento_bh = contagem_atendimento_bh(request)
    filiais_data_atendimento_bh = list(
        Lojas.object.filter(polo='BH').order_by('id').values_list('name',
                                                                  flat=True))

    limit_contagem_atendimentos_moc = data_atendimento_filial[0]
    contagem_chamados_anual_moc = contagem_chamados_anual(request)
    data = contagem_chamados_anual_bh(request)
    #data_filial = contagem_chamados_filial()
    chamados = Chamado.object.filter(
        status=Chamado.STATUS_CHAMADO_PENDENTE,
        loja__name__in=filiais_data_atendimento_filial).count()
    chamados_bh = Chamado.object.filter(
        status=Chamado.STATUS_CHAMADO_PENDENTE,
        loja__name__in=filiais_data_atendimento_bh).count()

    # nao usa
    #mes_envios = contagem_envios_mes()
    atendimento_pendente = Atendimento.object.filter(
        status='p', loja__name__in=filiais_data_atendimento_filial).count()

    atendimento_pendente_bh = Atendimento.object.filter(
        status='p', loja__name__in=filiais_data_atendimento_bh).count()

    custo_chamado = custo_chamado_mensal(request)
    custo_chamado_bh = custo_chamado_mensal_bh(request)
    custo_chamado_anual_moc = custo_chamados_anual_moc(request)
    custo_chamado_anual_bh = custo_chamados_anual_bh(request)

    seus_atendimentos_pendentes = Atendimento.object.filter(
        responsavel=request.user, status='p').count()

    context = {
        'lojas_bh': lojas_bh,
        'see_bh': see_bh,
        'staff': is_staff(user),
        'id': id_user,
        #'data_filial': data_filial,
        'contagem_chamados_anual_moc': contagem_chamados_anual_moc,
        'data': data,
        'user': user,
        'chamados': chamados,
        'chamados_bh': chamados_bh,
        'custo_chamado': custo_chamado,
        'custo_chamado_bh': custo_chamado_bh,
        'form_atendi': form_atendi,
        'grupo_msg': grupo_msg,
        'id_msg': id_msg,
        'data_atendimento_filial': data_atendimento_filial,
        'filiais_data_atendimento_filial': filiais_data_atendimento_filial,
        'atendimento_pendente': atendimento_pendente,
        'atendimento_pendente_bh': atendimento_pendente_bh,
        'msg_nao_lida': msg_nao_lida,
        'lista_filial': lista_filial,
        'limit_contagem_atendimentos_moc': limit_contagem_atendimentos_moc,
        'data_atendimento_bh': data_atendimento_bh,
        'filiais_data_atendimento_bh': filiais_data_atendimento_bh,
        'custo_chamados_anual_moc': custo_chamado_anual_moc,
        'custo_chamados_anual_bh': custo_chamado_anual_bh,
        'envios_pendentes': envios_pendentes,
        'seus_atendimentos_pendentes': seus_atendimentos_pendentes
    }

    return render(request, template, context)