TabOrc.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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 orcamentos(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, valor, descricao FROM orcamentos")
  45. linhas = banco.fetchall()
  46. banco.disconnect()
  47. return linhas
  48. def inserir_orc(cliente, cpf_cliente, carro, nome_mec, cpf_mec, valor, descricao, status):
  49. banco = Banco()
  50. try:
  51. banco.connect()
  52. banco.execute("INSERT INTO orcamentos VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?)",
  53. (cliente, carro, cpf_cliente, nome_mec, cpf_mec, valor, descricao, status))
  54. banco.persist()
  55. banco.disconnect()
  56. return messagebox.showinfo('Informe', 'Orçamento cadastrado com sucesso!')
  57. except:
  58. return messagebox.showwarning('Atenção', 'Ocorreu um erro no cadastro')
  59. def search(chave=''):
  60. banco = Banco()
  61. banco.connect()
  62. banco.execute("SELECT * FROM orcamentos WHERE cliente LIKE '%"
  63. + chave+"%' OR carro LIKE '%"
  64. + chave+"%' OR valor LIKE '%"
  65. + chave+"%' OR descricao LIKE '%"
  66. + chave+"%' OR mecanico LIKE '%"
  67. + chave+"%' OR id LIKE '%"
  68. + chave+"%' ")
  69. linhas = banco.fetchall()
  70. banco.disconnect()
  71. return linhas
  72. def update(cliente, carro, valor, descricao, mecanico, id):
  73. banco = Banco()
  74. banco.connect()
  75. banco.execute("UPDATE orcamentos SET cliente=?, carro=?, valor=?, descricao=? , mecanico=?WHERE id=?",
  76. (cliente, carro, valor, descricao, mecanico, id))
  77. banco.persist()
  78. banco.disconnect()
  79. def delete(id):
  80. banco = Banco()
  81. banco.connect()
  82. banco.execute("DELETE FROM orcamentos WHERE id=?", (id, ))
  83. banco.persist()
  84. banco.disconnect()
  85. def viewClientes():
  86. banco = Banco()
  87. banco.connect()
  88. banco.execute("SELECT idcliente, nome, carro, cpf FROM clientes")
  89. linhas = banco.fetchall()
  90. banco.disconnect()
  91. return linhas
  92. def searchCliente(chave=""):
  93. banco = Banco()
  94. banco.connect()
  95. banco.execute("SELECT * FROM clientes WHERE nome LIKE '%"
  96. + chave+"%' OR carro LIKE '%"
  97. + chave+"%' ")
  98. linhas = banco.fetchall()
  99. banco.disconnect()
  100. return linhas
  101. ## ==============| VER ORÇAMENTOS |=============== ##
  102. def populate():
  103. banco = Banco()
  104. banco.connect()
  105. banco.execute("SELECT * FROM orcamentos")
  106. linhas = banco.fetchall()
  107. banco.disconnect()
  108. return linhas
  109. def select_item(id):
  110. banco = Banco()
  111. banco.connect()
  112. banco.execute(
  113. "SELECT cliente, carro, cpf_cliente, mecanico, cpf_mec, valor, descricao FROM orcamentos WHERE id=?", (id, ))
  114. linhas = banco.fetchall()
  115. banco.disconnect()
  116. return linhas
  117. def delete_aprov(idorc):
  118. banco = Banco()
  119. banco.connect()
  120. banco.execute("DELETE FROM orcamentos WHERE id=?", (idorc, ))
  121. banco.persist()
  122. banco.disconnect()
  123. def filtrar(chave=''):
  124. banco = Banco()
  125. banco.connect()
  126. banco.execute("SELECT * FROM orcamentos WHERE cliente LIKE '%"
  127. + chave+"%' OR carro LIKE '%"
  128. + chave+"%' OR mecanico LIKE '%"
  129. + chave+"%' ")
  130. linhas = banco.fetchall()
  131. banco.disconnect()
  132. return linhas
  133. def inserir_ord(cliente, cpf_cliente, carro, mecanico, cpf_mec, valor, descricao, status):
  134. banco = Banco()
  135. try:
  136. banco.connect()
  137. banco.execute("INSERT INTO ordem VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?)",
  138. (cliente, carro, cpf_cliente, mecanico, cpf_mec, valor, descricao, status))
  139. banco.persist()
  140. banco.disconnect()
  141. return messagebox.showinfo('Informe', 'Ordem cadastrada com sucesso!')
  142. except:
  143. return messagebox.showwarning('Atenção', 'Ocorreu um erro no cadastro')
  144. def update_status(state, idordem):
  145. banco = Banco()
  146. banco.connect()
  147. banco.execute("UPDATE orcamentos SET status=? WHERE id=?",
  148. (state, idordem))
  149. banco.persist()
  150. banco.disconnect()