Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
DiogoM-Almeida committed Nov 28, 2023
1 parent 2e4692a commit 1d09834
Show file tree
Hide file tree
Showing 71 changed files with 11,390 additions and 0 deletions.
244 changes: 244 additions & 0 deletions Banco/Conexao.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
import mysql
from mysql.connector import connect




class Conexao:
def __init__(self):
self.messageErro=""
pass


@staticmethod
def executa_sql(sql):
con = connect(
host='localhost',
port=3306,
user='root',
passwd='12345678',
database='dbtilapicultura'
)
cur = con.cursor()
cur.execute(sql)
con.close()

def __conecta(self):
config = {}
with open('Banco/stringConexao.txt', 'r') as file:
linhas = file.readlines()
for linha in linhas:
chave, valor = linha.strip().split('=')
config[chave] = valor
self.__con = connect(
host=str(config['host']),
port=3306,
user=str(config['usuario']),
passwd=str(config['senha']),
database=str(config['banco'])
)
"""def __conecta(self):
self.__con = connect(
host='localhost',
port=3306,
user='root',
passwd='12345678',
database='dbtilapicultura'
)"""
__cur = 0

def insere(self, sql, registros):
try:
self.messageErro = ""
self.__conecta()
self.__cur = self.__con.cursor()
self.__cur.execute(sql, registros)
self.__con.commit()
self.__con.close()
except mysql.connector.Error as err:
from mysqlx import errorcode
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
self.messageErro = "Erro de acesso negado: Verifique as credenciais de conexão."
print(self.messageErro)
elif err.errno == errorcode.ER_BAD_DB_ERROR:
self.messageErro="Banco de dados não existe."
print(self.messageErro)
else:
self.messageErro="Erro MySQL: {}".format(err)
print(self.messageErro)
else:
print("Inserção de dados bem-sucedida.")
finally:
if self.__con.is_connected():
self.__cur.close()
self.__con.close()
return self.messageErro

def insereCompra(self,compra):
try:
idCompra = 0
self.messageErro = ""
self.__conecta()
self.__cur = self.__con.cursor()
if compra.get_id_compra() <= 0:
sqlCompra="insert into compra (IdFornecedor ,ValorTotal,DataHora) values (%s, %s, %s);"
registros=(compra.get_fornecedor().get_id_fornecedor(), compra.get_valor_total(), compra.get_data_hora())
self.__cur.execute(sqlCompra, registros)
idCompra = self.__cur.lastrowid

for item in compra.get_compra_itens():
sqlCompraItem="insert into compraitem (IdCompra,IdItem,Valor,Qtd) values (%s,%s,%s,%s);"
registros=(str(idCompra), item.get_id_item(),item.get_valor(),item.get_qtd())
self.__cur.execute(sqlCompraItem, registros)
self.__con.commit()
self.__con.close()
except mysql.connector.Error as err:
from mysqlx import errorcode
print(self.messageErro)
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
self.messageErro = "Erro de acesso negado: Verifique as credenciais de conexão."
print(self.messageErro)
elif err.errno == errorcode.ER_BAD_DB_ERROR:
self.messageErro = "Banco de dados não existe."
print(self.messageErro)
else:
self.messageErro = "Erro MySQL: {}".format(err)
print(self.messageErro)
else:
print("Inserção de dados bem-sucedida.")
finally:
if self.__con.is_connected():
self.__cur.close()
self.__con.close()
return self.messageErro
def insereFornecedor(self, fornecedor):
try:
idEndereco= 0
IdPessoa = 0
self.messageErro = ""
self.__conecta()
self.__cur = self.__con.cursor()
if fornecedor.get_id_pessoa() <= 0:
sqlEndereco="insert into Endereco(IdMunicipio,Logradouro,Bairro,Numero,Cep) values (%s,%s,%s,%s,%s);"
registros=(fornecedor.get_pessoa().get_endereco().get_id_municipio(),
fornecedor.get_pessoa().get_endereco().get_logradouro(),
fornecedor.get_pessoa().get_endereco().get_bairro(),
fornecedor.get_pessoa().get_endereco().get_numero(),
fornecedor.get_pessoa().get_endereco().get_cep())
self.__cur.execute(sqlEndereco, registros)
idEndereco = self.__cur.lastrowid

sqlPessoa=""
if fornecedor.get_pessoa().get_tipo() == 0:
registros = (idEndereco,fornecedor.get_pessoa().get_nome(),fornecedor.get_pessoa().get_apelido(),
fornecedor.get_pessoa().get_rg(),fornecedor.get_pessoa().get_cpf())
sqlPessoa = "insert into Pessoa(IdEndereco,Nome,Apelido,RG,CPF,tipoObjeto) values (%s,%s,%s,%s,%s,0);"
else:
registros = (idEndereco, fornecedor.get_pessoa().get_razao_social(), fornecedor.get_pessoa().get_nome_fantasia(),
fornecedor.get_pessoa().get_cnpj(), fornecedor.get_pessoa().get_ie())
sqlPessoa = "insert into Pessoa(IdEndereco,RazaoSocial,NomeFantasia,Cnpj,InscricaoEstadual,tipoObjeto) values (%s,%s,%s,%s,%s,1);"
self.__cur.execute(sqlPessoa, registros)
IdPessoa = self.__cur.lastrowid

self.__cur.execute('insert into fornecedor (IdPessoa) values('+str(IdPessoa)+');')
else:
if fornecedor.get_pessoa().get_tipo() == 0:
registros = (fornecedor.get_pessoa().get_nome(),
fornecedor.get_pessoa().get_apelido(),
fornecedor.get_pessoa().get_rg(),
fornecedor.get_pessoa().get_cpf())
sql="update pessoa set Nome=%s, Apelido=%s, Rg=%s,CPF=%s WHERE IdPessoa="+str(fornecedor.get_id_pessoa())+";"
self.__cur.execute(sql, registros)
else:
registros = (fornecedor.get_pessoa().get_razao_social(),
fornecedor.get_pessoa().get_nome_fantasia(),
fornecedor.get_pessoa().get_cnpj(),
fornecedor.get_pessoa().get_ie())
sql = ("update pessoa set RazaoSocial=%s, NomeFantasia=%s, Cnpj=%s,InscricaoEstadual=%s "
"WHERE IdPessoa=" + str(fornecedor.get_id_pessoa()) + ";")
self.__cur.execute(sql, registros)

registros = (fornecedor.get_pessoa().get_endereco().get_id_municipio(),
fornecedor.get_pessoa().get_endereco().get_logradouro(),
fornecedor.get_pessoa().get_endereco().get_bairro(),
fornecedor.get_pessoa().get_endereco().get_numero(),
fornecedor.get_pessoa().get_endereco().get_cep())
sql = (" update endereco set IdMunicipio=%s, Logradouro=%s, Bairro=%s, Numero=%s, Cep=%s WHERE IdEndereco="
+ str(fornecedor.get_pessoa().get_id_endereco()))
self.__cur.execute(sql, registros)

self.__con.commit()
self.__con.close()
except mysql.connector.Error as err:
from mysqlx import errorcode
print(self.messageErro)
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
self.messageErro = "Erro de acesso negado: Verifique as credenciais de conexão."
print(self.messageErro)
elif err.errno == errorcode.ER_BAD_DB_ERROR:
self.messageErro="Banco de dados não existe."
print(self.messageErro)
else:
self.messageErro="Erro MySQL: {}".format(err)
print(self.messageErro)
else:
print("Inserção de dados bem-sucedida.")
finally:
if self.__con.is_connected():
self.__cur.close()
self.__con.close()
return self.messageErro

def deletar(self, sql):
try:
self.__conecta()
self.messageErro = ""
self.__cur = self.__con.cursor()
self.__cur.execute(sql)
self.__con.commit()
self.__con.close()
except mysql.connector.Error as err:
from mysqlx import errorcode
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
self.messageErro = "Erro de acesso negado: Verifique as credenciais de conexão."
print(self.messageErro)
elif err.errno == errorcode.ER_BAD_DB_ERROR:
self.messageErro = "Banco de dados não existe."
print(self.messageErro)
else:
self.messageErro = "Erro MySQL: {}".format(err)
print(self.messageErro)
else:
print("Exclusao de dados bem-sucedida.")
finally:
if self.__con.is_connected():
self.__cur.close()
self.__con.close()
return self.messageErro

def listar(self, sql):
try:
self.__conecta()
self.__cur = self.__con.cursor()
self.__cur.execute(sql)
listaDados = self.__cur.fetchall()
self.__cur.close()
self.__con.close()

except mysql.connector.Error as err:
from mysqlx import errorcode
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Erro de acesso negado: Verifique as credenciais de conexão.")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Banco de dados não existe.")
else:
print("Erro MySQL: {}".format(err))
else:
return listaDados
print("Consulta de dados bem-sucedida.")
finally:
if self.__con.is_connected():
self.__cur.close()
self.__con.close()


4 changes: 4 additions & 0 deletions Banco/stringConexao.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
host=localhost
usuario=root
senha=12345678
banco=dbtilapicultura
101 changes: 101 additions & 0 deletions Classes/ajusteitem.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import datetime

from Banco.Conexao import Conexao
from Classes.item import Item


class AjusteItem:

def __init__(self, idajuste=0,descricao: str = "", datahora=datetime.datetime.today(), qtdatual: int = 0,
qtdmovimentacao: int = 0, qtdnova: int = 0, iditem=0, item=Item()):
self.__id_ajuste = idajuste
self.__descricao = descricao
self.__qtd_atual = qtdatual
self.__qtd_movimentacao = qtdmovimentacao
self.__qtd_nova = qtdnova
self.__data_hora = datahora
self.__id_item = iditem
self.__item = item

def get_id_ajuste(self) -> int:
return self.__id_ajuste

def set_id_ajuste(self, idaju: int):
self.__id_ajuste = idaju

def get_qtd_atual(self) -> int:
return self.__qtd_atual

def set_qtd_atual(self, qtd: int):
self.__qtd_atual = qtd

def get_qtd_nova(self) -> int:
return self.__qtd_nova

def set_qtd_nova(self, qtd: int):
self.__qtd_nova = qtd

def get_qtd_movimentacao(self) -> int:
return self.__qtd_movimentacao

def set_qtd_movimentacao(self, qtd: int):
self.__qtd_movimentacao = qtd

def get_id_item(self) -> int:
return self.__id_item

def set_id_item(self, iditem: int):
self.__id_item = iditem

def get_item(self) -> Item:
return self.__item

def set_item(self, item: Item):
self.__item = item

def set_descricao(self, desc: str):
self.__descricao = desc

def get_descricao(self) -> str:
return self.__descricao

def dados_principais(self):
return str(self.__id_ajuste) + "-" + self.__descricao+"-" + self.get_item().dados_principais()
def validcao(self):
msgErro = ''
if self.get_id_item() <= 0:
msgErro += 'Item deve ser Selecionado \n'
if len(self.get_descricao()) <= 0:
msgErro += 'Descrição é Obrigatório\n'
if self.get_qtd_movimentacao() == 0:
msgErro += 'Movimentacao deve ser DIFERENTE de ZERO \n'
return msgErro
def salvar(self):
strErro = self.validcao()
sql = ""
if len(strErro) < 1:
if self.__id_ajuste <= 0:
sql = "INSERT into ajusteitem (Iditem,Descricao,DataHora, QtdAtual, QtdMovimentacao,QtdNova) values(%s,%s,%s,%s,%s,%s);"
registro = (self.__id_item, self.__descricao, self.__data_hora, self.__qtd_atual,self.__qtd_movimentacao,self.__qtd_nova)
print(sql, registro)
strErro = Conexao().insere(sql, registro)
return strErro

def listar(self, where=""):
sql = ("SELECT IdAjuste,aj.Descricao,DataHora,QtdAtual,QtdMovimentacao,QtdNova,ta.Iditem,ta.descricao,ta.Tipo "
+ "FROM ajusteitem AS aj INNER JOIN item AS ta ON ta.Iditem=aj.Iditem" ) + where + ";"
print(sql)
dados = Conexao().listar(sql)
lista = []
index = -1
if dados is not None:
for linha in dados:
lista.insert(index + 1, AjusteItem(int(linha[0]), str(linha[1]),
datetime.datetime.strptime(str(linha[2]), '%Y-%m-%d %H:%M:%S'),
int(linha[3]), int(linha[4]),int(linha[5]), int(linha[6]),
Item(int(linha[6]),str(linha[7]), tipo=int(linha[8]))))
return lista

def deletar(self, id: int):
sql = "delete from ajusteitem where IdAjuste=" + str(id)
return str(Conexao().deletar(sql))
Loading

0 comments on commit 1d09834

Please sign in to comment.