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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)