コード例 #1
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
def fazerNovaBusca(listHistBuscas):
    writeConsole("=======================",  consoleType.WARNING,  False)
    writeConsole("    1. Nova busca      ",  consoleType.WARNING,  False)
    writeConsole("=======================",  consoleType.WARNING,  False)
    product = util.lerString("product = ")
    company_state = ""
    f = False
    while not f:
        try:
            company_state = util.lerString("company_state = ").replace(" ", "").upper()
            validarCompanyState(company_state)
            f = True
        except Exception as e: 
            writeConsole(str(e),  consoleType.ERROR)
    product = product if product != "" else None
    try:
        listEmpresas = util.buscarEmpresas(product, company_state)
        arquivo = gravarCSV(listEmpresas)
        consulta = {}
        consulta.update({"product":product})
        consulta.update({"company_state": company_state})
        consulta.update({"arquivo": arquivo})
        consulta.update({"time":datetime.datetime.now().strftime("%d-%m-%y %H:%M:%S")})
        consulta.update({"tamanho":len(listEmpresas)})
        listHistBuscas.append(consulta)
        util.gravarHistoricoBuscas(listHistBuscas)
        mostrarBusca(consulta)
    except Exception as  e:
        writeConsole(str(e),  consoleType.ERROR)
コード例 #2
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
def menuPrincipal():
    writeConsole("\nMenu de Opções:",  consoleType.WARNING,  False)
    writeConsole("1. Fazer nova busca.",  consoleType.WARNING,  False)
    writeConsole("2. Ver buscas anteriores.",  consoleType.WARNING,  False)
    writeConsole("3. Sair.",  consoleType.WARNING,  False)
    i = util.lerInteiro("Opção desejada: ")
    while i < 1 or i > 3:
        writeConsole("Opção inválida!",  consoleType.ERROR)
        i = util.lerInteiro("Opção desejada: ")
    return i
コード例 #3
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
def gravarCSV(listEmpresas):
    try:
        tamanho = len(listEmpresas)
        if tamanho == 0:
            return
        empresa = listEmpresas[0]
        nome = empresa.split(";")[1]
        arquivo = "{0}-{1}-{2}.csv".format(datetime.date.today().strftime("%d-%m-%y"), nome, tamanho)
        with open(TEMP_DIR + arquivo,  "w") as output:
            header = "product;company_Id;product_price;company_state\n"
            output.write(header)
            for empresa in listEmpresas:
                output.write(empresa+"\n")
        return TEMP_DIR + arquivo
    except Exception as  e:
        writeConsole(str(e),  consoleType.ERROR)
コード例 #4
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
def mostrarBusca(dicBusca):
    if (dicBusca["tamanho"]  > 0):
        try:
            with open(dicBusca["arquivo"],  "r") as input:
                for linha in input:
                    writeConsole(linha.replace(";", "|").replace("\n",""),  consoleType.INFO,  False)
        except Exception as  e:
            writeConsole(str(e),  consoleType.ERROR)
    writeConsole("Resultado da busca realizada por '{0}' e '{1}': {3} empresa(s) ({2})".format(dicBusca["product"],  dicBusca["company_state"],  dicBusca["time"],  dicBusca["tamanho"]),  consoleType.SUCCESS,  False)
    if dicBusca["arquivo"] != None:
        writeConsole("Consulta gravada em {0}.".format(dicBusca["arquivo"]), consoleType.SUCCESS,  False)
コード例 #5
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
def recuperarBuscasAnteriores(listHistBuscas):
    writeConsole("=======================",  consoleType.WARNING,  False)
    writeConsole(" 2. Buscas anteriores  ",  consoleType.WARNING,  False)
    writeConsole("=======================",  consoleType.WARNING,  False)
    n = 1
    for dic in reversed(listHistBuscas):
         writeConsole("{0}. Resultado da busca realizada por '{1}' e '{2}': {4} empresa(s) ({3})".format(n,  dic["product"],  dic["company_state"],  dic["time"],  dic["tamanho"]),  consoleType.WARNING,  False)
         n += 1
         if n > 3:
             break
    writeConsole("{0}. Voltar".format(n),  consoleType.WARNING,  False)
    i = util.lerInteiro("Opção desejada: ")
    while i < 1 or i > n:
        writeConsole("Opção inválida!",  consoleType.ERROR)
        i = util.lerInteiro("Opção desejada: ")
    if i < n:
        mostrarBusca(listHistBuscas[len(listHistBuscas)-i])
コード例 #6
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
def titulo():
    writeConsole("================================================",  consoleType.WARNING,  False)
    writeConsole("                Contabilizei                    ",  consoleType.WARNING,  False)
    writeConsole("       Data Engineer Technical Test             ",  consoleType.WARNING,  False)
    writeConsole("                    by                          ",  consoleType.WARNING,  False)
    writeConsole("     Júlio César B. da Silveira Nardelli        ",  consoleType.WARNING,  False)
    writeConsole("================================================",  consoleType.WARNING,  False)
コード例 #7
0
ファイル: main.py プロジェクト: jcnborges/contabilizei
        arquivo = "{0}-{1}-{2}.csv".format(datetime.date.today().strftime("%d-%m-%y"), nome, tamanho)
        with open(TEMP_DIR + arquivo,  "w") as output:
            header = "product;company_Id;product_price;company_state\n"
            output.write(header)
            for empresa in listEmpresas:
                output.write(empresa+"\n")
        return TEMP_DIR + arquivo
    except Exception as  e:
        writeConsole(str(e),  consoleType.ERROR)
 
#----------------------------------------------------------
# Rotina principal
#----------------------------------------------------------
listHistBuscas = None
try:
    listHistBuscas = util.lerHistoricoBuscas()
except Exception as  e:
    listHistBuscas = []
    
if not os.path.exists(TEMP_DIR):
    os.mkdir(TEMP_DIR)
titulo()
i = 0
while i != 3:
    i = menuPrincipal()
    if i == 1: 
        fazerNovaBusca(listHistBuscas)
    elif i == 2:
        recuperarBuscasAnteriores(listHistBuscas)
writeConsole("Programa encerrado. Espero que tenham gostado!", consoleType.INFO,  False)