Exemple #1
0
def get_docs_published(proc, *args, json_alike=True):
    '''Gets list of process's published documents'''

    docs = proc.get('sei', {}).get('dispatchedDocuments', [])
    dados = []
    for doc in docs:
        dados_doc = [
            b_resp('data_publicacao',
                   'Data de publicação do documento no Diário Oficial',
                   timestamp_to_txt(doc.get('datPublicacao'))),
            b_resp(
                'prazo_resposta',
                'Prazo em dias para resposta à publicação (p. ex. resposta Comunique-se)',
                doc.get('numPrazoComuniquese', None)),
            b_resp('tipo_documento', 'Tipo de documento publicado',
                   doc.get('txtTipoDocumento')),
            b_resp('num_id_doc', 'Número identificador do documento no SEI',
                   doc.get('numDocumento'))
        ]

        dados.append(dados_doc)
    if dados:
        return dados
    else:
        return [
            b_resp('no_doc_found', 'Nenhum documento foi encontrado', None)
        ]
def __doc_respo_complex(respo, dados):

    doc = respo.get_m(['cpfcnpj_proprietario'])

    dados_doc = [b_resp(
        'doc',
        'Número do documento do responsável pelo imóvel',
        doc.get_m(['cpfCnpj'])
    ),
        b_resp(
            'tipo_doc',
            'Tipo de documento do responsável pelo imóvel',
            doc.get_m(['type'], None))
    ]

    dados.extend(dados_doc)

    if doc.get_m(['type']) == 'cnpj':
        dados_responsavel_empresa = [
            b_resp('nome_resp_empresa',
                   'Nome do responsável pela empresa',
                   respo.get_m(['cpfcnpj_proprietario']).get_m(['nomeResp'])),

            b_resp('cpf_resp_empresa',
                   'CPF do responsável pela empresa',
                   respo.get_m(['cpfcnpj_proprietario', 'cnpj_proprietario']).get_m(['cpfResp']))
        ]
        dados.extend(dados_responsavel_empresa)
def __doc_respo_flat_cnpj(respo, dados):

    dados_doc = [b_resp(
        'doc',
        'Número do documento do responsável pelo imóvel',
        respo.get_m(['cnpj_proprietario'])
    ),
        b_resp(
            'tipo_doc',
            'Tipo de documento do responsável pelo imóvel',
            'cnpj')
    ]

    dados_responsavel_empresa = [
        b_resp('nome_resp_empresa',
               'Nome do responsável pela empresa',
               respo.get_m(['representante_proprietario'])),

        b_resp('cpf_resp_empresa',
               'CPF do responsável pela empresa',
               respo.get_m(['cpf_proprietario']))
    ]

    dados.extend(dados_doc)
    dados.extend(dados_responsavel_empresa)
def list_assuntos(*args, include_disabled = False, json_alike = True):

    db = gen_db()
    cidade = db.city.find_one()
    dados = []
    for proc in cidade['processos']:
        if not include_disabled and proc.get('disabled'):
            continue
        dados.append(
            [
            b_resp(
            'assunto',
            'Título do assunto',
            proc['title']
            ),
            b_resp(
                'desc',
                'Descrição do assunto',
                proc['descricao']
            ),
            b_resp(
                'disabled',
                'Indica se o processo está desabilitado',
                proc['disabled']
            ),
            b_resp(
                'categoria',
                'Tipo de assunto ou Coordenadoria responsável pela análise',
                proc.get('categoria')
            )
            ]
        )

    return dados
Exemple #5
0
def __aux_dados_area_escritura(last_version):

    return [
        b_resp('area_terreno_real', 'Área real do terreno',
               last_version.get_m(['escrituradoterreno'], None)),
        b_resp('area_escritura', 'Área registrada em escritura',
               last_version.get_m(['area_terreno_real'], None)),
    ]
Exemple #6
0
def __dados_terreno_flat(last_version):
    '''Neste modelo há apenas um SQL por solicitacao e os dados
    estão flat'''

    dados_terr = [
        b_resp('tipo_identificacao',
               'Tipo de identificação do imóvel - SQL ou Incra',
               last_version.get_m(['identificacao_imovel'])),
        b_resp('identificacao_terreno',
               'Código de identificação do terreno (SQL ou INCRA)',
               last_version.get_m(['campo_sql', 'cadastro_rural'])),
        b_resp('codlog',
               'Código do logradouro em que se situa a fachada do terreno',
               last_version.get_m(['codlog'])),
        b_resp('area_terreno_real', 'Área real do terreno',
               last_version.get_m(['area_terreno_real'], None)),
        b_resp('area_escritura', 'Área registrada em escritura',
               last_version.get_m(['escrituradoterreno'], None)),
        b_resp('cep', 'CEP do terreno', last_version.get_m(['endereco-cep'])),
        b_resp('end_testada_principal', 'Endereço da testada principal',
               __aux_end_flat(last_version)),
        b_resp('distrito', 'Distrito em que se situa o imóvel',
               last_version.get_m(['id-bairro']))
    ]

    return dados_terr
Exemple #7
0
def integracao_estande_vendas(last_version):

    integracao = last_version['integracao_localizacaoimovel']['data'][
        'response']['data']

    dados = []

    for terreno in integracao:
        dados_terr = [
            b_resp('tipo_identificacao',
                   'Tipo de identificação do imóvel - SQL ou Incra',
                   terreno['tipo_identificacao']),
            b_resp('identificacao_terreno',
                   'Código de identificação do terreno (SQL ou INCRA)',
                   terreno['identificacao_terreno']),
            b_resp(
                'codlog',
                'Código do logradouro em que se situa a fachada do terreno',
                terreno['codlog']),
            b_resp('cep', 'CEP do terreno', terreno['cep']),
            b_resp('end_testada_principal', 'Endereço da testada principal',
                   terreno['end_testada_principal']),
            b_resp('distrito', 'Distrito em que se situa o imóvel',
                   terreno['distrito']),
            b_resp('area_terreno_real', 'Área real do terreno',
                   terreno['area_terreno_real']),
            b_resp('area_escritura', 'Área registrada em escritura',
                   terreno['area_escritura'])
        ]

        dados.append(dados_terr)

    return dados
Exemple #8
0
def _dados_um_resp(respo):
    '''Parse all the data for one of the owner's info'''

    dados = [
        b_resp('nome', 'Nome do responsável pelo imóvel',
               respo.get_m(['nome-proprietario'], None)),
        b_resp(
            'tipo_vinculo', 'Tipo de vínculo do responsável pelo imóvel',
            respo.get_m(['tipo_vinculo_proprietario', 'tipo_vinculo'], None)),
        b_resp('doc', 'Número do documento do responsável pelo imóvel',
               respo.get_m(['cpfcnpj_proprietario']).get_m(['cpfCnpj'], None)),
        b_resp('tipo_doc', 'Tipo de documento do responsável pelo imóvel',
               respo.get_m(['cpfcnpj_proprietario']).get_m(['type'], None)),
        b_resp('email', 'E-mail do responsável pelo imóvel',
               respo.get_m(['email_proprietario'], None)),
        b_resp('endereco', 'Endereço do responsável pelo imóvel',
               _build_address_respo(respo)),
        b_resp('cep', 'CEP do responsável pelo imóvel',
               respo.get_m(['cep_proprietario'], None)),

        #NÃO CONSEGUI IDENTIFICAR NENHUM PROCESSO COM INFORMAÇÃO DE TELEFONE DO RESP
        b_resp('telefone', 'Telefone do responsável pelo imóvel',
               'Informação Não Disponível')
    ]

    return dados
def __doc_respo_flat_cpf(respo, dados):
    dados_doc = [b_resp(
        'doc',
        'Número do documento do responsável pelo imóvel',
        respo.get_m(['cpf_proprietario'])
    ),
        b_resp(
            'tipo_doc',
            'Tipo de documento do responsável pelo imóvel',
            'cpf')
    ]

    dados.extend(dados_doc)
    dados.extend(dados_responsavel_empresa)
Exemple #10
0
def __dados_terreno_declaratorio(terreno):

    aux_endereco = lambda x: ', '.join([
        item for item in [
            x.get('nome_logradouro'),
            str(x.get('iptu_numeracao')),
            x.get('complemento_imovel'),
            x.get('iptu_bairro')
        ] if item
    ])

    dados_terr = [
        b_resp('tipo_identificacao',
               'Tipo de identificação do imóvel - SQL ou Incra', 'sql'),
        b_resp('identificacao_terreno',
               'Código de identificação do terreno (SQL ou INCRA)',
               terreno.get_m(['sql']).get_m(['input'])),
        b_resp('codlog',
               'Código do logradouro em que se situa a fachada do terreno',
               terreno.get_m(['codlog'])),
        b_resp('cep', 'CEP do terreno', terreno.get_m(['iptu_cep'])),
        b_resp('end_testada_principal', 'Endereço da testada principal',
               aux_endereco(terreno)),
        b_resp('distrito', 'Distrito em que se situa o imóvel',
               terreno.get_m(['subprefeitura'])),
        b_resp('area_terreno_real', 'Área real do terreno',
               terreno.get_m(['area_terreno_real'], None)),
        b_resp('area_escritura', 'Área registrada em escritura',
               terreno.get_m(['escrituradoterreno'], None))
    ]

    return dados_terr
Exemple #11
0
def __aux_public_indeferido(dados, proc):

    docs_publicados = get_docs_published(proc, json_alike=True)
    for doc in docs_publicados:
        if doc.get('tipo_documento') == 'Despacho indeferido':
            dados.append(
                b_resp('data_publicacao',
                       'Data de publicação no Diário Oficial',
                       doc.get('data_publicacao')))
            break
    #nao publicou ainda
    else:
        dados.append(
            b_resp('data_publicacao', 'Data de publicação no Diário Oficial',
                   None))
Exemple #12
0
def __dados_terreno(terreno):

    aux_endereco = lambda x: ', '.join([
        item for item in [
            x['nome_logradouro'], x['numero-predial'],
            x.get('complemento_imovel'),
            x.get('id-bairro')
        ] if item
    ])

    dados_terr = [
        b_resp('tipo_identificacao',
               'Tipo de identificação do imóvel - SQL ou Incra',
               terreno.get_m(['tipo_identificacao'])),
        b_resp('identificacao_terreno',
               'Código de identificação do terreno (SQL ou INCRA)',
               terreno.get_m(['campo_sql', 'cadastro_rural'])),
        b_resp('codlog',
               'Código do logradouro em que se situa a fachada do terreno',
               terreno.get_m(['codlog'])),
        b_resp('cep', 'CEP do terreno', terreno.get_m(['endereco-cep'])),
        b_resp('end_testada_principal', 'Endereço da testada principal',
               aux_endereco(terreno)),
        b_resp('distrito', 'Distrito em que se situa o imóvel',
               terreno.get_m(['id-bairro']))
    ]

    return dados_terr
Exemple #13
0
def get_proc_mdata(proc, *args, json_alike=True):
    '''Gets process-related data'''

    # em alguns casos podemos chamar a chave direto
    # porque tem padrão nos dados

    status = status_processo(proc)
    dados = [
        b_resp('num_protocolo',
               'Número de protocolo no Aprova Digital',
               proc['nP']),
        b_resp('dt_protocolo',
               'Data de protocolo',
               proc['created_at']),
        b_resp('dt_ultima_atualiz',
               'Última atualização',
               proc['updated_at']),
        b_resp('num_proc_sei',
               'Número de processo SEII',
               proc.get_m(['sei'])\
               .get_m(['txtCodigoProcedimentoFormatado'], None)),
        b_resp('assunto',
               'Assunto da solicitação',
               proc['config_metadata']['title'],
               ),
        b_resp('status',
               'Situação da solicitação',
               status)
    ]

    #chama funcao auxiliar para devolver data de publicacao
    __aux_dt_public(status, dados, proc)

    return dados
Exemple #14
0
def __aux_dt_public(status, dados, proc):

    if status == 'deferido':
        __aux_public_deferido(dados, proc)

    elif status == 'indeferido' or status == 'indeferido e finalizado':
        __aux_public_indeferido(dados, proc)

    #nao tem nada para publicar
    else:
        dados.append(
            b_resp('data_publicacao', 'Data de publicação no Diário Oficial',
                   None))
Exemple #15
0
def dados_estandes_existentes(num_proc, *args, json_alike=True):

    estandes = find_estandes(num_proc)
    dados = []
    for estande in estandes:

        dados_estande = [
            b_resp('metadados_processo',
                   'Dados relacionados ao processo de Estande de Vendas',
                   get_proc_mdata(estande, json_alike=False)),
            b_resp(
                'dados_resps_imovel',
                'Dados dos responsáveis pelo imóvel em que se situa o Estande de Vendas',
                dados_resps_imovel(estande, json_alike=False)),
            b_resp(
                'dados_terrenos',
                'Dados relacionados ao(s) terreno(s) em que se situa o Estande de Vendas',
                get_dados_terrenos(estande, json_alike=False)),
        ]

        dados.append(dados_estande)

    return dados
def dados_integracao_estande(proc):

    integracao = proc['last_version']['integracao_respimovel']['data']['response']['data']
    dados = []
    for resp in integracao:
        dados_resp = [
            b_resp(
                'nome',
                'Nome do responsável pelo imóvel',
                resp['nome']),
            b_resp(
                'tipo_vinculo',
                'Tipo de vínculo do responsável pelo imóvel',
                resp['tipo_vinculo']),
            b_resp(
                'email',
                'E-mail do responsável pelo imóvel',
                resp['email']),

            b_resp(
                'endereco',
                'Endereço do responsável pelo imóvel',
                resp['endereco']),

            b_resp('cep',
                   'CEP do responsável pelo imóvel',
                   resp['cep']),

            # NÃO CONSEGUI IDENTIFICAR NENHUM PROCESSO COM INFORMAÇÃO DE TELEFONE DO RESP
            b_resp('telefone',
                   'Telefone do responsável pelo imóvel',
                   resp['telefone'])
        ]

        if 'nome_resp_empresa' in integracao:
            dados.extend([
                b_resp('nome_resp_empresa',
                   'Nome do responsável pela empresa',
                   resp['nome_resp_empresa']),
                b_resp('cpf_resp_empresa',
                       'CPF do responsável pela empresa',
                       resp['nome_resp_empresa'])])
        dados.append(dados_resp)

    return dados
def list_procs_by_assunto(assunto, *args, json_alike = True):

    assunto = re.sub(r'^\d\. ', '', assunto)
    assunto = assunto.strip()

    db = gen_db()
    procs = db.process.find({'config_metadata.title': assunto}, {'nP': 1})

    dados = [
        b_resp('num_protocolo',
               'Número de protocolo do processo no Aprova Digital',
               proc['nP'])
        for proc in procs
        ]

    return dados