TabOrd.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import sqlite3 as sql
  2. from tkinter import messagebox
  3. class Banco():
  4. database = "banco.db"
  5. conn = None
  6. cursor = None
  7. connected = False
  8. def connect(self):
  9. Banco.conn = sql.connect(Banco.database)
  10. Banco.cursor = Banco.conn.cursor()
  11. Banco.connected = True
  12. def disconnect(self):
  13. Banco.conn.close()
  14. Banco.connected = False
  15. def execute(self, sql, parms=None):
  16. if Banco.connected:
  17. if parms == None:
  18. Banco.cursor.execute(sql)
  19. else:
  20. Banco.cursor.execute(sql, parms)
  21. return True
  22. else:
  23. return False
  24. def fetchall(self):
  25. return Banco.cursor.fetchall()
  26. def persist(self):
  27. if Banco.connected:
  28. Banco.conn.commit()
  29. return True
  30. else:
  31. return False
  32. # Função para iniciar o banco de dados
  33. def initDB():
  34. banco = Banco()
  35. banco.connect()
  36. banco.execute("CREATE TABLE IF NOT EXISTS ordem(id INTEGER PRIMARY KEY AUTOINCREMENT, cliente TEXT NOT NULL, carro TEXT NOT NULL, cpf_cliente TEXT NOT NULL, mecanico TEXT NOT NULL, cpf_mec TEXT NOT NULL, valor REAL NOT NULL, descricao TEXT NOT NULL, status TEXT)")
  37. banco.persist()
  38. banco.disconnect()
  39. initDB()
  40. def view():
  41. banco = Banco()
  42. banco.connect()
  43. banco.execute(
  44. "SELECT id, cliente, carro, cpf_cliente, mecanico, cpf_mec, valor, descricao, FROM ordem")
  45. linhas = banco.fetchall()
  46. banco.disconnect()
  47. return linhas
  48. def filtrar(chave=''):
  49. banco = Banco()
  50. banco.connect()
  51. banco.execute("SELECT * FROM ordem WHERE cliente LIKE '%"
  52. + chave+"%' OR carro LIKE '%"
  53. + chave+"%' OR mecanico LIKE '%"
  54. + chave+"%' OR status LIKE '%"
  55. + chave+"%' ")
  56. linhas = banco.fetchall()
  57. banco.disconnect()
  58. return linhas
  59. def update(status, idordem):
  60. try:
  61. banco = Banco()
  62. banco.connect()
  63. banco.execute("UPDATE ordem SET status=? WHERE id=?",
  64. (status, idordem))
  65. banco.persist()
  66. banco.disconnect()
  67. return messagebox.showinfo('Informe', 'Ordem concluída com sucesso!')
  68. except:
  69. return messagebox.showwarning('Atenção', 'Ocorreu um erro na atualização')
  70. def delete(idordem):
  71. banco = Banco()
  72. banco.connect()
  73. banco.execute("DELETE FROM ordem WHERE id=?", (idordem, ))
  74. banco.persist()
  75. banco.disconnect()
  76. ## ==============| GERENCIAR ORÇAMENTOS |=============== ##
  77. def inserir_ord(cliente, cpf_cliente, carro, mecanico, cpf_mec, valor, descricao):
  78. banco = Banco()
  79. try:
  80. banco.connect()
  81. banco.execute("INSERT INTO ordem VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?)",
  82. (cliente, carro, cpf_cliente, mecanico, cpf_mec, valor, descricao))
  83. banco.persist()
  84. banco.disconnect()
  85. return messagebox.showinfo('Informe', 'Ordem cadastrada com sucesso!')
  86. except:
  87. return messagebox.showwarning('Atenção', 'Ocorreu um erro no cadastro')
  88. def populate(self):
  89. banco = Banco()
  90. banco.connect()
  91. banco.execute("SELECT * FROM ordem")
  92. linhas = banco.fetchall()
  93. banco.disconnect()
  94. return linhas
  95. def select_item(id):
  96. banco = Banco()
  97. banco.connect()
  98. banco.execute("SELECT * FROM orcamentos WHERE id=?", (id, ))
  99. linhas = banco.fetchall()
  100. banco.disconnect()
  101. return linhas