Ejemplo n.º 1
0
def atualizar(request, ocorrencia_id):
    '''
        Atualiza uma ocorrência, muda o status e a observação.
    '''
    SaveInfo(request.user, 'atualizar')
    ocorrencia = get_object_or_404(Ocorrencia, pk=ocorrencia_id)
    operador = Operador.objects.get(user=request.user.id)
    permission = request.user.has_perm('manager.completo')
    if request.user.has_perm('manager.completo') or ocorrencia.cliente == operador.cliente:
        if request.method == 'POST':
            form = FormOcorrenciasEditar(request.POST, request.FILES)
            if form.is_valid():
                formulario = form.save(commit=False)
                if request.user.has_perm('manager.completo') and not ocorrencia.operador.has_perm('manager.completo'):
                    coment = Assentamento(ocorrencia=ocorrencia,
                                            operador = operador,
                                            descricao = 'Operador do chamado alterado de %s para %s.' % (ocorrencia.operador, operador))
                    coment.save()
                    ocorrencia.operador = operador.user
                comentarios = ocorrencia.assentamento_set.all()
                if not operador.user.has_perm('manager.completo'):
                    comentarios = ocorrencia.assentamento_set.filter(tipo='Publico')

                if formulario.observacao != '':
                    ocorrencia.observacao = formulario.observacao

                if str(ocorrencia.status) != 'Fechado' and str(formulario.status) == 'Fechado':
                    ocorrencia.data_fecha = datetime.now()
                    encerramento_ocorrencia = Encerramento_Ocorrencia(ocorrencia=ocorrencia,
                                                                        operador= operador.user,
                                                                        id_encerramento = int(str(time()).replace(".","")[6:]))
                    encerramento_ocorrencia.save()

                elif str(ocorrencia.status) == 'Fechado' and str(formulario.status) != 'Fechado':
                    ocorrencia.data_fecha = None
                ocorrencia.status = formulario.status
                ocorrencia.save()
                try:
                    id_encerramento = ocorrencia.encerramento_ocorrencia_set.get().id_encerramento
                    analista_encerramento = ocorrencia.encerramento_ocorrencia_set.get().operador
                except:
                    id_encerramento = ''
                    analista_encerramento = ''
                return HttpResponseRedirect('/ocorrencias/%s' % ocorrencia.id)
        else:
            form = FormOcorrenciasEditar()
            form.fields['observacao'].initial = ocorrencia.observacao
            form.fields['status'].initial = ocorrencia.status
        return render_to_response("atualizar.html",
                                                     {'form': form,
                                                      'ocorrencia': ocorrencia_id,
                                                      'ocorrencias':ocorrencia,
                                                      'user':request.user},
                                                     context_instance=RequestContext(request))
    else:
        return render_to_response("acessonegado.html")
Ejemplo n.º 2
0
def encerrar_ocorrencias(request):
    clientes = Cliente.objects.all()
    SaveInfo(request.user, 'encerrar_chamados')
    selecionar = request.GET.get('selecionar','')
    __filtro__ = Ocorrencia.objects.filter
    ocorrencias = ''
    if selecionar != '':
        ocorrencias = __filtro__(categoria__descricao='Fim de Expediente').filter(status__descricao='Pendente Abertura')
        ocorrencias = ocorrencias.filter(cliente = selecionar)

    operador = Operador.objects.get(user=request.user.id)
    permission = request.user.has_perm('manager.completo')
    desc = request.GET.get('mensagem','')
    _id_encerrar_ = request.GET.getlist('encerrar_chamados')
    if desc != '' and _id_encerrar_ !='':
        for _id_ in _id_encerrar_:
            ocorrencia = Ocorrencia.objects.get(pk=int(_id_))
            if str(ocorrencia.status) != 'Fechado':
                encerramento_ocorrencia = Encerramento_Ocorrencia(ocorrencia=ocorrencia,
                                                                            operador= operador.user,
                                                                            id_encerramento = int(str(time()).replace(".","")[6:]))
                encerramento_ocorrencia.save()
                ocorrencia.status = Status.objects.get(descricao='Fechado')
                ocorrencia.observacao = ocorrencia.observacao + '\n' + desc
                ocorrencia.data_fecha = datetime.now()
                ocorrencia.save()
        return render_to_response('encerrar_chamados.html', {'ocorrencias':ocorrencias,
                                                              'user':request.user,
                                                              'chamados':len(_id_encerrar_),
                                                              'permission':permission,
                                                              'clientes':clientes})

    return render_to_response('encerrar_chamados.html', {'ocorrencias':ocorrencias,
                                                         'user':request.user,
                                                         'clientes':clientes,
                                                         'permission':permission})
Ejemplo n.º 3
0
def criar_ocorrencias(request):
    operador = Operador.objects.get(user=request.user.id)
    SaveInfo(request.user, 'criar_ocorrencias')
    id_device = request.GET.get('devices','')
    permission = request.user.has_perm('manager.completo')
    if id_device:
        find_device = Ocorrencia.objects.exclude(status__descricao='Fechado').filter(device = int(id_device))
    else:
        find_device = []

    if request.method == 'POST':
        id_device = request.POST.get('_id_','')
        form = FormOcorrencias(request.POST, request.FILES)
        if not request.user.has_perm('manager.completo'):
            form = FormOcorrenciasCliente(request.POST, request.FILES)
        if form.is_valid():
            ocorrencia = form.save(commit=False)
            ocorrencia.device = Device.objects.get(pk=request.POST.get('_id_',''))
            if not request.user.has_perm('manager.completo'):
                ocorrencia.status = Status.objects.get(descricao=request.POST.get('_status_',''))
                ocorrencia.SLA = SLA.objects.get(descricao=request.POST.get('_sla_',''))
                ocorrencia.prioridade = Prioridade.objects.get(descricao=request.POST.get('_prioridade_',''))

            ocorrencia.operador = operador.user
            ocorrencia.cliente = ocorrencia.device.cliente
            ocorrencia.save()
            if ocorrencia.status.descricao == 'Fechado':
                ocorrencia.data_fecha = datetime.now()
                encerramento_ocorrencia = Encerramento_Ocorrencia(ocorrencia=ocorrencia,
                                                                    operador= operador.user,
                                                                    id_encerramento = int(str(time()).replace(".","")[6:]))
                encerramento_ocorrencia.save()
                ocorrencia.save()
            return HttpResponseRedirect('/ocorrencias/%s' % ocorrencia.id)
    else:
        form = FormOcorrencias()
        if not request.user.has_perm('manager.completo'):
            form = FormOcorrenciasCliente()

    tipo = request.GET.get('tipo')
    if request.user.has_perm('manager.completo'):
        device = Device.objects.values_list('id','nome').order_by('nome')
        if tipo == 'designacao':
            device = Device.objects.values_list('id','codigo').order_by('codigo')
    else:
        device = Device.objects.values_list('id','nome').filter(cliente__nome=operador.cliente).order_by('nome')
        if request.GET.get('tipo') == 'designacao':
            device = Device.objects.values_list('id','codigo').filter(cliente__nome=operador.cliente).order_by('codigo')

    if request.GET.get('devices','') != '':
        obj_device = Device.objects.get(pk=request.GET.get('devices',''))
        form.fields['titulo'].initial = 'Circuito: ' + obj_device.codigo + ' ' + obj_device.nome
        form.fields['descricao'].initial = 'Contato: '+ unicode(obj_device.contato) + '\n' \
                                                'Telefone: ' + unicode(obj_device.telefone) + '\n' \
                                                'Logradouro: ' + unicode(obj_device.endereco) + '\n' \
                                                'Cidade: ' + unicode(obj_device.local)

    return render_to_response("criar_ocorrencias.html",
                                                 {'form': form,
                                                  'device':device.exclude(cliente__nome='Prodemge'),
                                                  'find_device':find_device,
                                                  'id_device':int(id_device) if id_device else id_device,
                                                  'permission':permission,
                                                  'user':request.user,
                                                  'tipo':tipo},
                                                  context_instance=RequestContext(request))