def buscar_clientes_demandas(request, format=None): clientes = PessoaJuridica.objects.filter( Q(demanda__responsavel__prestador__usuario__id=request.user.id) | Q(demanda__faseatividade__responsavel__prestador__usuario__id=request .user.id)).distinct() list_status = [] if request.data: for k in request.data: if request.data[k]: list_status.append(k) cliente_list = [] for i in clientes: cliente = PessoaJuridicaSerializer(i).data if list_status: demandas = Demanda.objects.filter( status_demanda__in=list_status).filter( Q(cliente=i), Q(responsavel__prestador__usuario__id=request.user.id) ).order_by('-id') else: demandas = Demanda.objects.filter( Q(cliente=i), Q(responsavel__prestador__usuario__id=request.user.id) ).order_by('-id') demanda_list = [] for d in demandas: demanda = DemandaInicialSerializer(d).data demanda_list.append(demanda) if list_status: demandas = Demanda.objects.filter( status_demanda__in=list_status).filter( cliente=i, faseatividade__responsavel__prestador__usuario__id=request. user.id).exclude( id__in=[d.id for d in demandas]).distinct().order_by('-id') else: demandas = Demanda.objects.filter( cliente=i, faseatividade__responsavel__prestador__usuario__id=request. user.id).exclude( id__in=[d.id for d in demandas]).distinct().order_by('-id') for d in demandas: demanda_dict = DemandaInicialSerializer(d).data demanda_list.append(demanda_dict) cliente['demandas'] = demanda_list cliente_list.append(cliente) return Response(cliente_list)
def buscar_atividades_internas(request, format=None): clientes = PessoaJuridica.objects.all() cliente_list = [] list_status = [] if request.data: for k in request.data: if request.data[k]: list_status.append(k) for c in clientes: if list_status: demandas = Demanda.objects.filter( status_demanda__in=list_status).filter(tipo_demanda='I', cliente=c).distinct() else: demandas = Demanda.objects.filter(tipo_demanda='I', cliente=c).distinct() demanda_list = [] for i in demandas: demanda_dict = DemandaInicialSerializer(i).data demanda_list.append(demanda_dict) if demanda_list: cliente_dict = PessoaJuridicaComPessoaSerializer(c).data cliente_dict['demandas'] = demanda_list cliente_list.append(cliente_dict) return Response(cliente_list)
def buscar_demanda_minimo(request, demanda_id, format=None): demanda = Demanda.objects.filter(pk=demanda_id) if demanda: demanda = DemandaInicialSerializer(demanda[0]).data return Response(demanda) else: return Response({})
def buscar_atividades_usuario(request, format=None): clientes = PessoaJuridica.objects.filter( demanda__faseatividade__atividade__atividadeprofissional__pessoa_fisica__prestador__usuario__id =request.user.id).distinct() cliente_list = [] list_status = [] if request.data: for k in request.data: if request.data[k]: list_status.append(k) unidades_administrativas = UnidadeAdministrativa.objects.filter( pessoafisica__prestador__usuario__id=request.user.id) for c in clientes: if list_status: demandas = Demanda.objects.filter( status_demanda__in=list_status ).filter( Q(tipo_demanda='E') | Q(tipo_demanda=None), cliente=c, faseatividade__atividade__atividadeprofissional__pessoa_fisica__prestador__usuario__id =request.user.id).distinct() else: demandas = Demanda.objects.filter( Q(tipo_demanda='E') | Q(tipo_demanda=None), cliente=c, faseatividade__atividade__atividadeprofissional__pessoa_fisica__prestador__usuario__id =request.user.id).distinct() demanda_list = [] if unidades_administrativas: demandas = demandas.filter( unidade_administrativa__in=unidades_administrativas) for i in demandas: demanda_dict = DemandaInicialSerializer(i).data demanda_list.append(demanda_dict) if demanda_list: cliente_dict = PessoaJuridicaComPessoaSerializer(c).data cliente_dict['demandas'] = demanda_list cliente_list.append(cliente_dict) return Response(cliente_list)
class LoteDespesaSerializer(serializers.ModelSerializer): demanda = DemandaInicialSerializer() pessoa = PessoaSerializer() class Meta: model = LoteDespesa fields = ('id', 'demanda', 'pessoa', 'motivo_despesa', 'data', 'status', 'valor_total')
def serializarDemandaObject(demanda): propostas = Proposta.objects.filter(demanda__id=demanda.id) observacoes = Observacao.objects.filter(demanda__id=demanda.id) ocorrencias = Ocorrencia.objects.filter(demanda__id=demanda.id) orcamentos = Orcamento.objects.filter(demanda__id=demanda.id) #fase_atividades = FaseAtividade.objects.filter(demanda__id=demanda.id) parcelas = Parcela.objects.filter(demanda__id=demanda.id) demandas_complementares = demanda.demandas_complementares data = DemandaSerializer(demanda).data data['data_criacao'] = formatar_data(demanda.data_criacao) data['data_finalizacao'] = formatar_data(demanda.data_finalizacao) propostas_list = PropostaSerializer(propostas, many=True).data for i in propostas_list: if 'data_recimento_solicitacao' in i: i['data_recimento_solicitacao'] = serializar_data( i['data_recimento_solicitacao']) if 'data_limite_entrega' in i: i['data_limite_entrega'] = serializar_data( i['data_limite_entrega']) if 'data_real_entrega' in i: i['data_real_entrega'] = serializar_data(i['data_real_entrega']) if 'data_aprovacao' in i: i['data_aprovacao'] = serializar_data(i['data_aprovacao']) observacoes_list = ObservacaoSerializer(observacoes, many=True).data for i in observacoes_list: if 'data_observacao' in i: i['data_observacao'] = serializar_data(i['data_observacao']) ocorrencias_list = OcorrenciaSerializer(ocorrencias, many=True).data for i in ocorrencias_list: if 'data_solicitacao' in i: i['data_solicitacao'] = serializar_data(i['data_solicitacao']) if 'data_prevista_conclusao' in i: i['data_prevista_conclusao'] = serializar_data( i['data_prevista_conclusao']) orcamento_dict = serializar_orcamento(orcamentos) #fase_atividade_list = serializar_fase_atividade(fase_atividades) parcelas_list = ParcelaSerializer(parcelas, many=True).data for i in parcelas_list: i['data_previsto_parcela'] = serializar_data( i['data_previsto_parcela']) parcelafase_list = ParcelaFase.objects.filter(parcela=i['id']) parcelafaseserializer_list = ParcelaFaseSerializer(parcelafase_list, many=True).data for pf in parcelafaseserializer_list: medicoes = Medicao.objects.filter(parcela_fase__id=pf['id']) medicao_list = MedicaoSerializer(medicoes, many=True).data pf['medicoes'] = medicao_list i['parcelafases'] = parcelafaseserializer_list demandas_complementares_list = [] if demandas_complementares: demanda_inicial_serializer = DemandaInicialSerializer( demandas_complementares, many=True).data for d in demanda_inicial_serializer: demandas_complementares_list.append({'demanda': d}) data['propostas'] = propostas_list data['observacoes'] = observacoes_list data['ocorrencias'] = ocorrencias_list data['orcamento'] = orcamento_dict #data['fase_atividades'] = fase_atividade_list data['parcelas'] = parcelas_list data['demandas_complementares'] = demandas_complementares_list return data
def buscar_lista_por_texto(request, texto, format=None): demandas = Demanda.objects.filter(nome_demanda__icontains=texto)[:10] demandas = DemandaInicialSerializer(demandas, many=True).data return Response(demandas)