def relatorio_os_mes(conexao): cursor = conexao.cursor() mes = input( "Insira o o número do mês que deseja ver o relatório de Ordens de Serviço criadas: " ) sql = """ SELECT servicos.rowid, servicos.data_de_abertura, user.nome FROM servicos INNER JOIN user ON servicos.iduser = user.rowid """ cursor.execute(sql) lista = cursor.fetchall() cls() # print(lista) print(Fore.CYAN + """ == Relatório de criação mensal de O.S. =""") print(Fore.RED + " |OS|\t| Técnico |\t|Data de Abertura|") for i in range(0, len(lista)): posicao = str(lista[i]) if (posicao[8:10] == mes): print( f" |{posicao[1]} |\t|{posicao[25:-2]:<5}|\t|{posicao[5:21]:>15}|" ) continuar()
def fechar_os(conexao): cls() print(Fore.CYAN + """ ============ Fechar de O.S. ============""") num_os = int(input("Insira o número da O.S. que deseja finalizar: ")) solucao = input("Insira a solução: ") data_de_fechamento = datetime.now() data_de_fechamento = data_de_fechamento data_hora = data_de_fechamento.strftime('%d/%m/%Y %H:%M') valor = input("Valor total dos serviços: ") cursor = conexao.cursor() sql2 = f""" UPDATE servicos SET solucao="{solucao}" WHERE rowid = {num_os};""" sql3 = f""" UPDATE servicos SET data_de_fechamento="{data_hora}" WHERE rowid = {num_os};""" sql4 = f""" UPDATE servicos SET valor={valor} WHERE rowid = {num_os}; """ cursor.execute(sql2) cursor.execute(sql3) cursor.execute(sql4) conexao.commit() print(Fore.RED + "Dados inseridos com sucesso!") continuar()
def visualizar_os(): num_os = int(input("Insira o número da O.S. que deseja visualizar: ")) arquivo = open(f"{num_os}.txt", "r") conteudo = arquivo.readline() x = conteudo.split("@_@") #Print Configurado para o formato de os, futuramente gerar formatod HTML e criar o print com For print( """ |-------------------------------------------------------------- | """, Fore.RED + """OS: """, f"""{x[0]}""", Fore.RED + """\t\t\tData de Entrada:""", f""" {x[4]:<} |-------------------------------------------------------------- |""", Fore.RED + """Técnico:""", f"""{x[1]} """, Fore.RED + """Cliente:""", f""" {x[2]} """, """ |-------------------------------------------------------------- |""", Fore.RED + """Problema:""", """ |""", f"""{x[3]:<} |-------------------------------------------------------------- |""", Fore.RED + """Solução: """, f"""| {x[5]} |-------------------------------------------------------------- |""", Fore.RED + """Valor:""", f""" {x[7]} """, Fore.RED + """Data de Saída: """, f"""{x[6]} |--------------------------------------------------------------""") arquivo.close() continuar()
def finalizar_os(conexao): cursor = conexao.cursor() while (True): while (True): cls() print(Fore.CYAN + """ ========= Finalização de O.S. =========""") num_os = input("Insira o número da O.S. que deseja finalizar: ") validacao = validacao_os(num_os) if (validacao == 0): break if (isnumber(num_os)): num_os = int(num_os) num_os = num_os - 1 break else: print("Digite somente números! ", end="") op_invalida() sql = ''' SELECT servicos.rowid AS "Número da OS", user.nome AS "Técnico", cliente.nome AS "Nome do Cliente", servicos.problema AS "Problema", servicos.data_de_abertura AS "Data de Abertura", servicos.solucao AS "Solução", servicos.data_de_fechamento AS "Data de Fechamento", servicos.valor AS "Valor do serviço" FROM servicos INNER JOIN user ON servicos.iduser = user.rowid INNER JOIN cliente ON servicos.idcli = cliente.rowid''' cursor.execute(sql) #Atributo para retornar o resultado o Select lista = cursor.fetchall() # print(num_os) # print(lista[num_os][1]) arquivo = open(f"{num_os+1}.txt", "w") for i in range(0, len(lista[num_os])): escrita = str(lista[num_os][i]) arquivo.write(escrita + "@_@") print(Fore.GREEN + "Finalizada a ordem de serviço e feito o BKP!") arquivo.close() continuar()
def validacao_os(num_os): conexao = sqlite3.connect("infoLoja.sqlite") cursor = conexao.cursor() if (isnumber(num_os)): num_os = int(num_os) sql = "SELECT rowid, * FROM servicos" cursor.execute(sql) lista = cursor.fetchall() for i in range(0, len(lista)): if (num_os == int(f"{lista[i][0]:>1}")): # print("O.S. inexitente!! ", end="") # continuar() # print("Oi") return 0 else: print("O.S. inexitente!! ", end="") continuar() print() return 1
def inserir_os(conexao): cursor = conexao.cursor() print(Fore.CYAN + """ =========== Inserção de O.S. ===========""") idcli = int(input("Insira o número de cadastro do cliente desejado: ")) iduser = int(input("Insira o número de cadastro do técnico: ")) problema = input("Qual o problema? ") data_de_abertura = datetime.now() data_hora = data_de_abertura.strftime('%d/%m/%Y %H:%M') sql = f""" INSERT INTO servicos (idcli, iduser, problema, data_de_abertura) VALUES( {idcli}, {iduser}, "{problema}", "{data_hora}" );""" cursor.execute(sql) conexao.commit() print(Fore.RED + "O.S. criada com sucesso!") continuar()
def listar_cliente(conexao): print(Fore.CYAN + """ =========== Lista de clientes ===========""") cursor = conexao.cursor() sql = """ SELECT rowid, nome, cpf, celular FROM cliente """ cursor.execute(sql) # Atributo para retornar o resultado o Select lista = cursor.fetchall() usuario = int(input("Insira o cliente específico que deseja ver: ")) # Print dos atributos principais do usuário print(Fore.RED + "ID\t Nome\t \t\t CPF \t\t\t Celular") for i in lista: if (i[0] == usuario): print(Back.RED + f'{i[0]}\t', Back.RED + f'{i[1]:<13}\t\t', Back.RED + f'{i[2]:<13}\t\t', Back.RED + f'{i[3]:<13}') else: print(f'{i[0]}\t', f'{i[1]:<13}\t\t', f'{i[2]:<13}\t\t', f'{i[3]:<13}') continuar()
#Menu inicial, ir para Usuários ou OSs menus.menu_inicial() opcao = input("Insira a opção: ") if (opcao == "1"): while (True): cls() #Entrando no menu usuário menus.menu_usuario() opcao = input("Insira a opção: ") #Escolhida a opção que entra no menu de cdastro de usuário if (opcao == "1"): cls() user.inserirUser(conexao) continuar() #Escolhida a opção que entra no menu de Exclusão de usuário elif (opcao == "2"): cls() user.excluir_usuario(conexao) continuar() #Escolhida a opção que entra no menu de alterar dados do usuário de usuário elif (opcao == "3"): cls() user.update_usuario(conexao) #Escolhida a opção que entra no menu de listar usuários elif (opcao == "4"): cls()