Exemplo n.º 1
0
Arquivo: utils.py Projeto: luciomp/bmf
def getEnterprises():
    a = HtmlElement(openUrl(buildUrl(URL_ELIST, 'idioma=pt-br')))
    d = {
        '__EVENTTARGET': 'ctl00:contentPlaceHolderConteudo:BuscaNomeEmpresa1:btnTodas',
        '__VIEWSTATE': a.get_element_by_id('__VIEWSTATE').get('value'),
        '__EVENTVALIDATION': a.get_element_by_id('__EVENTVALIDATION').get('value'),
        'ctl00_contentPlaceHolderConteudo_AjaxPanelBuscaPostDataValue' :'ctl00_contentPlaceHolderConteudo_AjaxPanelBusca,ActiveElement,ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas;',
        'ctl00$contentPlaceHolderConteudo$tabMenuEmpresaListada': '{"State":{},"TabState":{"ctl00_contentPlaceHolderConteudo_tabMenuEmpresaListada_tabNome":{"Selected":true}}}',
        'ctl00$contentPlaceHolderConteudo$BuscaNomeEmpresa1$txtNomeEmpresa$txtNomeEmpresa': '',
        'ctl00$contentPlaceHolderConteudo$mpgPaginas_Selected': '0',
        'RadAJAXControlID': 'ctl00_contentPlaceHolderConteudo_AjaxPanelBusca',
        'httprequest': 'true'
    }
    page = etree.HTML(requests.post(buildUrl(URL_ELIST, 'idioma=pt-br'), data=d).text)
    tables = getTables(page, DIV_ENTERPRISES)
    if len(tables) < 1: return
    for row in tables[0].find('tbody').findall('.//tr'):
        link = row.find('.//td/a[@href]')
        yield (parse_qs(urlparse(link.get('href')).query, keep_blank_values=True)['codigoCvm'][0], link.text)
Exemplo n.º 2
0
def getDaeCc(nsd, nsr, infos):
    logging.info('Getting Dados da Empresa - Composicao do Capital - %s %s', nsd, nsr)
    page = HtmlElement(openUrl(buildUrl(URL_DCC, PARMS_GERAL, PARMS_BPP, PARMS_BPP,
        'NumeroSequencialDocumento=' + nsd, 'NumeroSequencialRegistroCvm=' + nsr)))
  
    # Multiplicador 
    em = page.xpath('.//div[@id="UltimaTabela"]/table/tr/td/b/text()')
    m = 1000 if len(em) > 0 and em[0].find('(Mil)') != -1 else 1

    for i in ['QtdAordCapiItgz', 'QtdAprfCapiItgz', 'QtdTotAcaoCapiItgz', 'QtdAordTeso', 'QtdAprfTeso', 'QtdTotAcaoTeso']:    
        qnt = page.get_element_by_id('ctl00_cphPopUp_{0}_1'.format(i))
        infos[i] = 0 if qnt is None else toInt(qnt.text) * m
Exemplo n.º 3
0
def getDfpConBPA(url, infos):
    logging.info('Getting DFs Consolidadas - Balanco Patrimonial Ativo')
    t = dict()
    page = HtmlElement(openUrl(url)) 
    table = page.get_element_by_id(TABLE_BPP)
    for row in getRows(table): rowToDict(row, t)

    # Multiplicador
    m = getMultiplicador(page)

    # Caixa
    cxa = toInt(t['1.01.01'][1])*m if '1.01.01' in t else 0
    apf = toInt(t['1.01.02'][1])*m if '1.01.02' in t else 0
    infos['CAIXA'] = cxa + apf
Exemplo n.º 4
0
def getDfpConBPA(nsd, nsr, infos):
    logging.info('Getting DFs Consolidadas - Balanco Patrimonial Ativo - %s %s', nsd, nsr)
    t = dict()
    page = HtmlElement(openUrl(buildUrl(URL_FDF, PARMS_GERAL, PARMS_BPP, 
        'NumeroSequencialDocumento=' + nsd, 'NumeroSequencialRegistroCvm=' + nsr, 
        'Informacao=2', 'Demonstracao=2')))
    table = page.get_element_by_id(TABLE_BPP)
    for row in getRows(table): rowToDict(row, t)

    # Multiplicador
    m = getMultiplicador(page)

    # Caixa
    cxa = toInt(t['1.01.01'][1])*m if '1.01.01' in t else 0
    apf = toInt(t['1.01.02'][1])*m if '1.01.02' in t else 0
    infos['CAIXA'] = cxa + apf