Example #1
0
def preencheDadosSER2(browser, cnpj, lista):
    
    try:
        browser.get('https://www.receita.pb.gov.br/ser/servirtual/documentos-fiscais/nfc-e/consulta-por-emitente')
        try:    
            wait(browser, 2).until(EC.frame_to_be_available_and_switch_to_it("iframe"))
            element = browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[2]/td[2]/input[1]')
            element.clear()
            element.send_keys(getData.get_dataInicial(1))

            element = browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[2]/td[2]/input[2]')
            element.clear()
            element.send_keys(getData.get_dataFinal(1))
            browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[8]/td/table/tbody/tr[1]/td[2]/select/option[2]').click()

            wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("cmpDest"))
            browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').send_keys('123')
            browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').clear()
            browser.switch_to.default_content()

            wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("iframe"))
            wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("cmpEmit"))
            browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').clear()
            time.sleep(1)
            browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[2]/td[2]/input[1]').clear()
            
            browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').send_keys(lista[cnpj])
            time.sleep(2)
            browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[3]/input').click()
            browser.switch_to.default_content()
            
            wait(browser, 2).until(EC.frame_to_be_available_and_switch_to_it("iframe"))
            
            browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[12]/td/select/option[3]').click()
            browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[12]/td/input[3]').click()

            time.sleep(3)
            try:
                texto = browser.switch_to_alert().getText()
                if(texto == 'Necessário informar o Emitente ou o Destinatário.'):
                    browser.switch_to_alert().accept()
                    time.sleep(1)
                    browser.switch_to.default_content()
                    wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("iframe"))
                    browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[3]/input').click() #Pesquisa
                    time.sleep(5) 
                    browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[13]/td/input[4]').click() #Consultar
                    time.sleep(3)
            except:
                pass
            
            x = 0
            while (True):
                try:
                    try:
                        browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[13]/td/b/i/a')
                        browser.switch_to.default_content()
                        getSERXML2(browser, cnpj, lista)
                        break
                    except:
                        browser.switch_to_alert().accept()
                        caminhos.addCaminhoNFC('vazio')    
                        print("Sem acesso a essa área")
                        break
                except:
                    x = x + 1
                    time.sleep(2)
                    if(x == 5):
                        caminhos.addCaminhoNFC('vazio')
                        print("Não era um alerta")
                        break
        except:
            caminhos.addCaminhoNFC('vazio')
            print('Erro no preenchimento dos dados')
    except:
        caminhos.addCaminhoNFC('vazio')
        print('Erro no acesso a página')
        conteudo = "Sem acesso a página dos Documentos fiscais de " + lista[cnpj] + " ou a internet\n"
        relatorio.relatorioSER(conteudo)

    return cnpj
Example #2
0
def getSERXML2(browser, cnpj, lista):
    start = True #Controla o acesso ao segundo while
    x = True #Controla o acesso ao terceiro while
    cont = 0

    while(True):
        try:
            browser.get('https://www4.receita.pb.gov.br/atf/seg/SEGf_MinhasMensagens.do')
            time.sleep(4)
            break
        except:
            cont = cont + 1
            if cont == 3:
                start = False
                x = False
                break
            print('Sem acesso a https://www4.receita.pb.gov.br/atf/seg/SEGf_MinhasMensagens.do')

    ## Clica na priemira mensagem ##
    while(start):
        try:
            browser.find_element_by_css_selector("body > form > div > table > tbody > tr:nth-child(3) > td:nth-child(4) > a").click()
            time.sleep(2)
            break
        except:
            pass
        
    
    ## Clica na mensagem do meio ##
    pare = 0
    try:
        browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[5]/td[3]/a/img')
    except:
        try:
            browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[3]/td[3]')
            browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[5]/td[3]')
            browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[7]/td[3]')
            browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[9]/td[3]')
            pare = 17
        except:
            pass
    
    while (x):
        try:
            try:
                browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[5]/td[3]/a/img') #garante que o clipe está lá
                browser.find_element_by_css_selector("body > form > div > table > tbody > tr:nth-child(5) > td:nth-child(4) > a").click()
                time.sleep(2)
                x = False
            except:
                pare = pare + 1
                if pare == 18:
                    break
                time.sleep(2)
                browser.find_element_by_name("btnNovas").click()
                #browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[12]/td/input[2]').click()
                time.sleep(10)
                print("mais uma")
        except:
            print("Não foi possível atualizar")
            time.sleep(1)
            break
    
    ## Faz o Download do XML ##
    
    try:
        download = browser.find_element_by_css_selector("body > table > tbody > tr:nth-child(2) > td > form > table > tbody > tr:nth-child(8) > td > a")
        download.click()
        time.sleep(2)
        caminho = caminhos.getCaminho(0)
        destino = caminho + getData.get_dataInicial(3) + '/' + lista[cnpj] + '/NFCe'
        time.sleep(3)
        extrairArq.extrair(caminho, destino)
        caminhos.addCaminhoNFC(destino)
        print("Download e extração dos arquivos de " + lista[cnpj] +" realizada")
        conteudo = "Download e extração dos arquivos de " + lista[cnpj] +" realizada\n"
        relatorio.relatorioSER(conteudo)
    except:
        caminhos.addCaminhoNFC('vazio')
        print('impossibilitado de fazer o download')
        conteudo = "impossibilitado de fazer o download de " + lista[cnpj] + "\n"
        relatorio.relatorioSER(conteudo)
Example #3
0
def representarContri(browser, cnpj, senha, cnpjFormatado):
    while (True):

        pare = 0

        while (True):
            try:
                try:
                    browser.get(
                        'https://sispmjp.joaopessoa.pb.gov.br:8080/sispmjp/paginas/ds/DS_ConsultarNFSePrestador.jsf'
                    )
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:dtComp_input"]').send_keys(
                            getData.get_dataInicial(2))
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:compFim_input"]').send_keys(
                            getData.get_dataFinal(2))
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:nrNfse"]').click()
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:j_idt60"]').click()
                    time.sleep(3)

                    tempo = 0
                    while (True):
                        try:
                            elem = browser.find_element_by_xpath(
                                '//*[@id="dataTable_data"]/tr/td')
                            break
                        except:
                            if (tempo == 10):
                                break
                            time.sleep(3)
                            tempo = tempo + 1

                    elemento = elem.text

                    numeroNFS = 'string'
                    try:
                        numeroNFS = browser.find_element_by_xpath(
                            '//*[@id="dataTable_data"]/tr[1]/td[1]').text
                    except:
                        pass

                    if (elemento.isdigit() or numeroNFS.isdigit()):
                        try:
                            browser.find_element_by_xpath(
                                '//*[@id="commandButton_exportar"]').click()
                            time.sleep(3)
                            caminho = caminhos.getCaminho(1).replace('\n', '')
                            destino = caminho + getData.get_dataInicial(
                                3) + '/' + cnpj + '/Prestado'
                            extrairArq.mover(caminho, destino, "Prestado")
                            conteudo = "Download realizado: " + cnpj + "\n"
                            relatorio.relatorioPftr(conteudo)
                            #area.insert(END,conteudo)
                        except:
                            print(
                                'Não foi possível mover o arquivo do Prestador para a pasta'
                            )
                    else:
                        caminhos.addCaminhoPftrPrestado("vazio")
                except:
                    caminhos.addCaminhoPftrPrestado("vazio")

                try:
                    browser.get(
                        'https://sispmjp.joaopessoa.pb.gov.br:8080/sispmjp/paginas/ds/DS_ConsultarNFSeTomador.jsf'
                    )
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:dtComp_input"]').send_keys(
                            getData.get_dataInicial(2))
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:compFim_input"]').send_keys(
                            getData.get_dataFinal(2))
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:nrNfse"]').click()
                    time.sleep(1)
                    browser.find_element_by_xpath(
                        '//*[@id="form:j_idt60"]').click()
                    time.sleep(3)

                    tempo = 0
                    while (True):
                        try:
                            elem = browser.find_element_by_xpath(
                                '//*[@id="dataTable_data"]/tr/td')
                            break
                        except:
                            if (tempo == 10):
                                break
                            time.sleep(3)
                            tempo = tempo + 1

                    elemento = elem.text

                    try:
                        mensagem = browser.find_element_by_xpath(
                            '//*[@id="dataTable_data"]/tr[1]/td[2]/span').text
                    except:
                        pass
                    # //*[@id="dataTable_data"]/tr[2]/td[2]/span

                    if (elemento.isdigit() or mensagem.isdigit()):
                        try:
                            browser.find_element_by_xpath(
                                '//*[@id="commandButton_exportar"]').click()
                            time.sleep(3)
                            caminho = caminhos.getCaminho(1).replace('\n', '')
                            destino = caminho + getData.get_dataInicial(
                                3) + '/' + cnpj + '/Tomado'
                            extrairArq.mover(caminho, destino, "Tomado")
                            conteudo = "Download realizado: " + cnpj + "\n"
                            relatorio.relatorioPftr(conteudo)
                            #area.insert(END,conteudo)
                        except:
                            print(
                                'Não foi possível mover o arquivo do Tomador para a pasta'
                            )
                    else:
                        caminhos.addCaminhoPftrTomado("vazio")
                except:
                    caminhos.addCaminhoPftrTomado("vazio")
                ## Sair da representação ##
                try:
                    browser.find_element_by_xpath(
                        '//*[@id="menu_topo"]/ul/li[6]/a"]').click()
                    time.sleep(1)
                except:
                    print('Não quer sair da representação')
                time.sleep(2)
                break
                #M D COMERCIO DE VEICULOS PEÇAS E SERVICOS LTDA
                #Não possui inscrição municipal
            except:
                pare = pare + 1
                if pare == 2:
                    print('Download não realizado: ' + cnpj)
                    conteudo = "Download não realizado: " + cnpj + "\n"
                    relatorio.relatorioPftr(conteudo)
                    try:
                        browser.find_element_by_xpath(
                            '//*[@id="formAlterarSenha:continuar"]/span[2]'
                        ).click()
                        time.sleep(2)
                        browser.find_element_by_xpath(
                            '//*[@id="menu_topo"]/ul/li[6]/a').click()
                        time.sleep(2)
                        entrarNoSistema(browser, cnpjFormatado, senha)
                    except:
                        print('Não estava pedindo pra trocar de senha')
                    break
                print('tentando de novo')
        break