コード例 #1
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request):
        titulo = 'Envios pendentes'
        dtgeracao = datetime.now()
        lista = []
        # FORMATO DATA = ANO/MES/DIA
        #FILTRA OS ENVIOS PELA DATA DIGITADA
        origem = list(request.user.profile.filiais.all().values_list(
            'name', flat=True))
        envios = EnvioBh.object.filter(
            recebido=False,
            filial_origem__in=request.user.profile.filiais.all()).order_by(
                'pk')
        #PEGA OS ID DOS ENVIOS E FILTRA PELO MOVIMENTO PARA PEGAR OS EQUIPAMENTOS UTILIZADOS
        for i in envios:
            lista.append(i.id)
        if not lista:
            return redirect('core:erro_relatorio')
        movimento = Movimento.object.filter(envio__in=envios)
        params = {
            'titulo': titulo,
            'envios': envios,
            'movimento': movimento,
            'dtgeracao': dtgeracao,
            'origem': origem
        }

        return Render.render('pdf_pendentes_envio.html', params)
コード例 #2
0
    def get(self, request, dtinicial, dtfinal):
        usuario = request.user
        titulo = 'Atendimentos'
        dtgeracao = datetime.now()
        #pega todos criados no periodo filtrado
        geral = Atendimento.object.filter(create_at__lte=dtfinal,
                                          create_at__gte=dtinicial,
                                          updated_at__lte=dtfinal,
                                          updated_at__gte=dtinicial)
        #pega os finalizados no periodo filtrado
        fechados = Atendimento.object.filter(updated_at__lte=dtfinal,
                                             updated_at__gte=dtinicial,
                                             status='r')

        # junta as duas querysets
        atendimento = geral | fechados

        if not atendimento:
            return redirect('core:erro_relatorio')

        params = {
            'atendimento': atendimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'titulo': titulo,
            'usuario': usuario,
        }
        return Render.render('pdf_completo_atendimento_todas.html', params)
コード例 #3
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request, dtinicial, dtfinal, modelo):
        titulo = 'Envios por data e filial'
        usuario = request.user
        dtgeracao = datetime.now()
        lista = []
        lista_equip = []
        # FORMATO DATA = ANO/MES/DIA
        #FILTRA OS ENVIOS PELA DATA DIGITADA
        envios = EnvioBh.object.filter(create_at__lte=dtfinal,
                                       create_at__gte=dtinicial)
        #PEGA OS ID DOS ENVIOS E FILTRA PELO MOVIMENTO PARA PEGAR OS EQUIPAMENTOS UTILIZADOS
        for i in envios:
            lista.append(i.id)
        if not lista:
            return redirect('core:erro_relatorio')
        equip_id = Equipamento.object.filter(name__exact=modelo)
        for i in equip_id:
            lista_equip.append(i.id)
        movimento = Movimento.object.filter(envio_id__in=lista,
                                            equipamento_id__in=lista_equip)
        params = {
            'titulo': titulo,
            'envios': envios,
            'movimento': movimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'usuario': usuario,
        }

        return Render.render('pdf_data_modelo_envio.html', params)
コード例 #4
0
    def get(self, request, dtinicial, dtfinal, usuario):
        titulo = 'Atendimento por técnico'
        dtgeracao = datetime.now()

        abertos = Atendimento.object.filter(create_at__lte=dtfinal,
                                            create_at__gte=dtinicial,
                                            user_id=usuario)

        finalizados = Atendimento.object.filter(updated_at__lte=dtfinal,
                                                updated_at__gte=dtinicial,
                                                status='r',
                                                user_finaliza_id=usuario)

        atendimento = abertos | finalizados

        if not atendimento:
            return redirect('core:erro_relatorio')

        usuario = User.objects.get(id=usuario)
        params = {
            'usuario': usuario,
            'atendimento': atendimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'titulo': titulo,
        }
        return Render.render('pdf_tecnico.html', params)
コード例 #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 get(self, request, dtinicial, dtfinal, usuario):
        titulo = 'Envios por usuario'
        dtgeracao = datetime.now()
        lista = []
        usuario = User.objects.get(id=usuario)
        # FORMATO DATA = ANO/MES/DIA
        #FILTRA OS ENVIOS PELA DATA DIGITADA
        envios = EnvioBh.object.filter(create_at__lte=dtfinal,
                                       create_at__gte=dtinicial,
                                       user_id=usuario)
        #PEGA OS ID DOS ENVIOS E FILTRA PELO MOVIMENTO PARA PEGAR OS EQUIPAMENTOS UTILIZADOS
        for i in envios:
            lista.append(i.id)
        movimento = Movimento.object.filter(envio_id__in=lista)

        params = {
            'titulo': titulo,
            'envios': envios,
            'movimento': movimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'usuario': usuario,
        }

        return Render.render('pdf_usuario_envio.html', params)
コード例 #7
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request, dtinicial, dtfinal, iddestino, idorigem):
        titulo = 'Envios por data e filial'
        dtgeracao = datetime.now()
        lista = []
        origem = Lojas.object.get(id=idorigem)
        destino = Lojas.object.get(id=iddestino)
        # FORMATO DATA = ANO/MES/DIA
        #FILTRA OS ENVIOS PELA DATA DIGITADA
        envios = EnvioBh.object.filter(create_at__lte=dtfinal,
                                       create_at__gte=dtinicial,
                                       filial_destino=iddestino,
                                       filial_origem=idorigem)
        #PEGA OS ID DOS ENVIOS E FILTRA PELO MOVIMENTO PARA PEGAR OS EQUIPAMENTOS UTILIZADOS
        for i in envios:
            lista.append(i.id)
        if not lista:
            return redirect('core:erro_relatorio')
        movimento = Movimento.object.filter(envio_id__in=lista)
        params = {
            'titulo': titulo,
            'envios': envios,
            'movimento': movimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'origem': origem,
            'destino': destino,
        }

        return Render.render('pdf_data_filial_envio.html', params)
コード例 #8
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
 def get(self, request, dtfinal):        
     titulo = 'Compras'
     dtgeracao = datetime.now()
     atendimento = Compras.objects.filter(dt_vencimento=dtfinal)
     params = {
         'atendimento': atendimento,
         'dtgeracao': dtgeracao,
         'dtfinal': dtfinal,
         'titulo': titulo,
         'usuario' : request.user
     }
     return Render.render('pdf_vencimento_compras.html', params) 
コード例 #9
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)
コード例 #10
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
 def get(self, request, dtfinal,dtinicial,fornecedor):        
     titulo = 'Compras'
     dtgeracao = datetime.now()
     atendimento = Compras.objects.filter(create_at__lte=dtfinal, create_at__gte=dtinicial, fornecedor=fornecedor)
     params = {
         'atendimento': atendimento,
         'dtgeracao': dtgeracao,
         'dtinicial': dtinicial,
         'dtfinal': dtfinal,
         'titulo': titulo,
         'usuario' : request.user
     }
     return Render.render('pdf_fornecedor_compras.html', params) 
コード例 #11
0
    def get(self, request, dtinicial, dtfinal, idorigem):
        titulo = 'Chamado por data e filial'

        dtgeracao = datetime.now()

        origem = Lojas.object.get(id=idorigem)

        chamado = Chamado.object.filter(create_at__lte=dtfinal,
                                        create_at__gte=dtinicial,
                                        loja=idorigem)

        loja = Lojas.object.get(id=idorigem)

        if not chamado.exists():
            return redirect('core:erro_relatorio')

        from django.db.models import Sum

        totais = []
        totais_valor = []
        total_valor_geral = 0
        status_capturados = list(
            chamado.order_by('status').distinct('status').values_list(
                'status', flat=True))
        for i in status_capturados:
            totais.append(
                f'{chamado.filter(status=i).last().chamado_verbose()}: {chamado.filter(status=i).count()}'
            )
            valor = chamado.filter(status=i).aggregate(
                Sum("valor"))["valor__sum"]
            totais_valor.append(
                f'Valor {chamado.filter(status=i).last().chamado_verbose()}: {valor}'
            )
            total_valor_geral += valor

        params = {
            'chamado': chamado,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'loja': loja,
            'origem': origem,
            'titulo': titulo,
            'totais': totais,
            'totais_valor': totais_valor,
            'total_valor_geral': total_valor_geral,
            'total_geral': chamado.count()
        }

        return Render.render('pdf_data_filial.html', params)
コード例 #12
0
 def get(self, request, dtinicial, dtfinal, idorigem):
     titulo = 'Atendimentos'
     dtgeracao = datetime.now()
     atendimento = Atendimento.object.filter(create_at__lte=dtfinal,
                                             create_at__gte=dtinicial,
                                             setor=idorigem)
     if not atendimento:
         return redirect('core:erro_relatorio')
     params = {
         'atendimento': atendimento,
         'dtgeracao': dtgeracao,
         'dtinicial': dtinicial,
         'dtfinal': dtfinal,
         'titulo': titulo,
     }
     return Render.render('pdf_setor_atendimento.html', params)
コード例 #13
0
    def get(self, request, dtinicial, dtfinal):
        titulo = 'Chamado por data'
        dtgeracao = datetime.now()
        chamado = Chamado.object.filter(
            create_at__lte=dtfinal,
            create_at__gte=dtinicial).select_related('equipamento')

        # PEGA O SERIAL DOS CHAMADOS EM QUESTAO E JOGA NUMA LISTA
        # DEPOIS FAZ UMA QUERYSET PARA PEGAR OS DADOS DO PRODUTO
        # list_produtos = []
        # for i in chamado:
        #     list_produtos.append(i.serial)
        #equipamento = Equipamento.object.filter(serial__in = list_produtos)
        from django.db.models import Sum

        totais = []
        totais_valor = []
        total_valor_geral = 0
        status_capturados = list(
            chamado.order_by('status').distinct('status').values_list(
                'status', flat=True))
        for i in status_capturados:
            totais.append(
                f'{chamado.filter(status=i).last().chamado_verbose()}: {chamado.filter(status=i).count()}'
            )
            valor = chamado.filter(status=i).aggregate(
                Sum("valor"))["valor__sum"]
            totais_valor.append(
                f'Valor {chamado.filter(status=i).last().chamado_verbose()}: {valor}'
            )
            total_valor_geral += valor

        if not chamado.exists():
            return redirect('core:erro_relatorio')
        params = {
            #'equipamento':equipamento,
            'chamado': chamado,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'titulo': titulo,
            'totais': totais,
            'totais_valor': totais_valor,
            'total_valor_geral': total_valor_geral,
            'total_geral': chamado.count()
        }
        return Render.render('pdf_chamado.html', params)
コード例 #14
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self,request, filial, dt_entrega):
        titulo = 'Relacao de Manutencoes Mensais - Informatica'
        dtgeracao = datetime.now()
        atendimento = Manutencao_Mensal.objects.filter(filial = filial, dt_entrega = dt_entrega)
        filial = Lojas.object.get(id=filial)

        corretiva = Manutencao_Mensal.objects.filter(filial = filial, dt_entrega = dt_entrega)
        mau_uso = Manutencao_Mensal.objects.filter(filial = filial, dt_entrega = dt_entrega, status='MAU USO')
        aquisicao = Manutencao_Mensal.objects.filter(filial = filial, dt_entrega = dt_entrega)

        count_corretiva = corretiva.count()
        count_mau = mau_uso.count()
        count_aquisicao = aquisicao.count()
        count_total = count_aquisicao + count_corretiva + count_mau

        custo_corretiva = 0 
        for x in corretiva:
            custo_corretiva = custo_corretiva + x.valor

        custo_mau_uso = 0 
        for x in mau_uso:
            custo_mau_uso = custo_mau_uso + x.valor

        custo_aquisicao = 0 
        for x in aquisicao:
            custo_aquisicao = custo_aquisicao + x.valor


        custo_total = custo_aquisicao + custo_mau_uso + custo_aquisicao

        params = {
            'atendimento': atendimento,
            'dtgeracao': dtgeracao,
            'titulo': titulo,
            'usuario' : request.user,
            'count_total' : count_total,
            'custo_mau_uso' : custo_mau_uso,
            'custo_corretiva' : custo_corretiva,
            'custo_aquisicao' : custo_aquisicao,
            'count_corretiva' : count_corretiva,
            'count_mau' : count_mau,
            'count_aquisicao' : count_aquisicao,
            'custo_total' : custo_total,
            'filial' : filial,
        }
        return Render.render('pdf_manutencao_mensal.html', params)
コード例 #15
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request, dtinicial, dtfinal):
        titulo = 'Recebimentos por data'
        dtgeracao = datetime.now()
        # FORMATO DATA = ANO/MES/DIA
        movimento = Recebimento.object.filter(create_at__lte=dtfinal,
                                              create_at__gte=dtinicial)
        #PEGA OS ID DOS ENVIOS E FILTRA PELO MOVIMENTO PARA PEGAR OS EQUIPAMENTOS UTILIZADOS

        params = {
            'titulo': titulo,
            'movimento': movimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
        }

        return Render.render('pdf_data_receb.html', params)
コード例 #16
0
ファイル: views.py プロジェクト: vateiixeira/hotswap
    def get(self, request, dtinicial, dtfinal, usuario):
        titulo = 'Recebimentos por usuario'
        dtgeracao = datetime.now()
        usuario = User.objects.get(id=usuario)
        movimento = Recebimento.object.filter(create_at__lte=dtfinal,
                                              create_at__gte=dtinicial,
                                              user_id=usuario)

        params = {
            'titulo': titulo,
            'movimento': movimento,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'usuario': usuario,
        }

        return Render.render('pdf_usuario_receb.html', params)
コード例 #17
0
    def get(self, request, dtinicial, dtfinal, usuario):
        titulo = 'Chamado por usuário'
        dtgeracao = datetime.now()
        chamado = Chamado.object.filter(create_at__lte=dtfinal,
                                        create_at__gte=dtinicial,
                                        user_id=usuario)
        usuario = User.objects.get(id=usuario)

        from django.db.models import Sum

        totais = []
        totais_valor = []
        total_valor_geral = 0
        status_capturados = list(
            chamado.order_by('status').distinct('status').values_list(
                'status', flat=True))
        for i in status_capturados:
            totais.append(
                f'{chamado.filter(status=i).last().chamado_verbose()}: {chamado.filter(status=i).count()}'
            )
            valor = chamado.filter(status=i).aggregate(
                Sum("valor"))["valor__sum"]
            totais_valor.append(
                f'Valor {chamado.filter(status=i).last().chamado_verbose()}: {valor}'
            )
            total_valor_geral += valor

        if not chamado:
            return redirect('core:erro_relatorio')
        params = {
            'usuario': usuario,
            'chamado': chamado,
            'dtgeracao': dtgeracao,
            'dtinicial': dtinicial,
            'dtfinal': dtfinal,
            'titulo': titulo,
            'totais': totais,
            'totais_valor': totais_valor,
            'total_valor_geral': total_valor_geral,
            'total_geral': chamado.count()
        }

        return Render.render('pdf_usuario.html', params)
コード例 #18
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)