Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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({})
Beispiel #4
0
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)
Beispiel #5
0
class LoteDespesaSerializer(serializers.ModelSerializer):
    demanda = DemandaInicialSerializer()
    pessoa = PessoaSerializer()
    class Meta:
        model = LoteDespesa
        fields = ('id', 'demanda', 'pessoa', 'motivo_despesa', 'data', 'status', 'valor_total')
Beispiel #6
0
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
Beispiel #7
0
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)