· 6 years ago · Nov 22, 2019, 06:18 PM
1import sqlite3
2
3from PyQt5.QtWidgets import QMessageBox, QTableWidget
4
5# Classe que representa o banco de dados
6class BancoDeDados:
7
8 def __init__(self, nome='banco.db'):
9 self.nome, self.conexao = nome, None
10
11# Conecta no Banco
12 def conecta(self):
13 self.conexao = sqlite3.connect(self.nome)
14
15# Desconectar do Banco
16 def desconecta(self):
17 try:
18 self.conexao.close()
19 except AttributeError:
20 pass
21
22# Criar Tabelas
23 def criar_tabelas(self):
24 try:
25 cursor = self.conexao.cursor()
26
27 cursor.execute ( """CREATE TABLE IF NOT EXISTS ESTOQUE (IDPRODUTO INTEGER PRIMARY KEY AUTOINCREMENT,
28 CODBARRA TEXT UNIQUE,
29 PRODUTO TEXT,
30 ESTOQUE REAL,
31 ESTOQUE_MIN REAL,
32 VALOR_CUSTO REAL,
33 VALOR_VENDA REAL,
34 ID_CATEGORIA INTEGER,
35 ID_FORNECEDOR INTEGER,
36 FOREIGN KEY (ID_CATEGORIA) REFERENCES CATEGORIA (IDCATEGORIA)
37 FOREIGN KEY (ID_FORNECEDOR) REFERENCES FORNECEDOR (IDFORNECEDOR))""" )
38
39 cursor.execute ( """CREATE TABLE IF NOT EXISTS CATEGORIA (IDCATEGORIA INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
40 CATEGORIA TEXT)""" )
41
42 cursor.execute ( """CREATE TABLE IF NOT EXISTS FORNECEDOR (IDFORNECEDOR INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
43 FORNECEDOR TEXT,
44 CNPJ TEXT UNIQUE,
45 RAZAO_SOCIAL TEXT UNIQUE,
46 EMAIL TEXT UNIQUE,
47 ID_TIPO INTEGER,
48 FOREIGN KEY (ID_TIPO) REFERENCES TIPOFORN (IDTIPO))""" )
49
50 cursor.execute ( """CREATE TABLE IF NOT EXISTS TIPOFORN (IDTIPO INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
51 TIPO TEXT)""" )
52
53 cursor.execute ( """CREATE TABLE IF NOT EXISTS ENDERECOFORN (IDENDERECO INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
54 RUA TEXT,
55 BAIRRO TEXT,
56 CEP TEXT,
57 CIDADE TEXT,
58 UF TEXT,
59 ID_FORNECEDOR INTEGER,
60 FOREIGN KEY(ID_FORNECEDOR) REFERENCES FORNECEDOR(IDFORNECEDOR))""" )
61
62 cursor.execute ( """CREATE TABLE IF NOT EXISTS TELEFONEFORN (IDTELEFONE INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
63 TELEFONE TEXT,
64 ID_FORNECEDOR INTEGER,
65 FOREIGN KEY(ID_FORNECEDOR) REFERENCES FORNECEDOR(IDFORNECEDOR))""" )
66
67 except AttributeError:
68 print('Erro!')
69
70 def inserirCategoria(self, IDCATEGORIA, CATEGORIA):
71 try:
72 cursor = self.conexao.cursor()
73 cursor.execute(f"""INSERT INTO CATEGORIA (IDCATEGORIA, CATEGORIA)
74 VALUES({IDCATEGORIA},'{CATEGORIA}')""")
75 self.conexao.commit()
76 except:
77 msg = QMessageBox()
78 msg.setText("Preencha os Campos")
79 msg.setWindowTitle("Dados não inseridos!")
80 msg.setStandardButtons ( QMessageBox.Ok | QMessageBox.Cancel )
81 msg.exec_()
82
83 def inserirProduto(self, IDPRODUTO, CODBARRA, PRODUTO, ESTOQUE, ESTOQUE_MIN, VALOR_CUSTO, VALOR_VENDA, ID_CATEGORIA, ID_FORNECEDOR):
84 try:
85 cursor = self.conexao.cursor()
86 cursor.execute(f"""INSERT INTO ESTOQUE (IDPRODUTO, CODBARRA, PRODUTO, ESTOQUE, ESTOQUE_MIN, VALOR_CUSTO, VALOR_VENDA, ID_CATEGORIA, ID_FORNECEDOR)
87 VALUES ({IDPRODUTO}, '{CODBARRA}', '{PRODUTO}', {ESTOQUE}, {ESTOQUE_MIN}, {VALOR_CUSTO}, {VALOR_VENDA}, {ID_CATEGORIA}, {ID_FORNECEDOR})""")
88 self.conexao.commit()
89 except:
90 msg = QMessageBox()
91 msg.setText("Preencha os Campos")
92 msg.setWindowTitle("Dados não inseridos!")
93 msg.setStandardButtons ( QMessageBox.Ok | QMessageBox.Cancel )
94 msg.exec_()
95
96if __name__ == "__main__":
97 banco = BancoDeDados()
98 banco.conecta()
99 banco.criar_tabelas()
100 banco.desconecta()