fix cursor/fetchall()

This commit is contained in:
2024-12-13 10:01:15 +01:00
parent ef3b54cc80
commit 247d0ad1d2
13 changed files with 82 additions and 64 deletions

View File

@ -1 +0,0 @@
,pc-sviluppo1,pcsviluppo1,12.12.2024 11:32,file:///home/pc-sviluppo1/.config/libreoffice/4;

BIN
TEST.xlsx

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -36,17 +36,7 @@ def insert_records(connection,codice,descrizione,descrizione2,um,prezzo,sc1,sc2,
if listino == 1: if listino == 1:
query_lsv = "INSERT INTO lsv (ART_CODICE,DATA_FINE,DATA_INIZIO,TSM_CODICE,TRL_CODICE,TLV_CODICE) VALUES (%s,%s,%s,%s,%s,%s)"
cursor.execute(query_lsv,(codice,data_fine,formatted_date,sc2,ricarica,listino))
count = cursor.rowcount
result.append(count)
query_lsa = "INSERT INTO lsa (ART_CODICE,TLA_CODICE,DATA_INIZIO,DATA_FINE,PREZZO,TSM_CODICE) VALUES (%s,%s,%s,%s,%s,%s)"
cursor.execute(query_lsa,(codice,tla,formatted_date,data_fine,prezzo,sc1))
count = cursor.rowcount
result.append(count)
##sggiungere aggiunta prezzo lsv sia per listino 1 che per listino diverso
select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s"
cursor_select.execute(select_percentuale_totale,(sc1, )) cursor_select.execute(select_percentuale_totale,(sc1, ))
percentuale_totale = cursor_select.fetchone() percentuale_totale = cursor_select.fetchone()
@ -60,9 +50,15 @@ def insert_records(connection,codice,descrizione,descrizione2,um,prezzo,sc1,sc2,
prezzo_lsv = ris + (ris*22)/100 prezzo_lsv = ris + (ris*22)/100
query_price = "INSERT INTO lsv (PREZZO) VALUES (%s)" query_lsv = "INSERT INTO lsv (ART_CODICE,DATA_FINE,DATA_INIZIO,TSM_CODICE,TRL_CODICE,TLV_CODICE,PREZZO) VALUES (%s,%s,%s,%s,%s,%s,%s)"
cursor.execute(query_price, (prezzo_lsv,)) cursor.execute(query_lsv,(codice,data_fine,formatted_date,sc2,ricarica,listino,prezzo_lsv))
count = cursor.rowcount
result.append(count)
query_lsa = "INSERT INTO lsa (ART_CODICE,TLA_CODICE,DATA_INIZIO,DATA_FINE,PREZZO,TSM_CODICE) VALUES (%s,%s,%s,%s,%s,%s)"
cursor.execute(query_lsa,(codice,tla,formatted_date,data_fine,prezzo,sc1))
count = cursor.rowcount
result.append(count)
else : else :

View File

@ -7,26 +7,41 @@ from tkinter import filedialog,messagebox
from datetime import datetime from datetime import datetime
from mysql.connector import Error from mysql.connector import Error
def search_article(connection,codice,listino): def search_article(connection, codice, listino):
cursor_1 = connection.cursor() cursor_1 = connection.cursor(buffered=True)
cursor_2 = connection.cursor() cursor_2 = connection.cursor(buffered=True)
query = "SELECT codice FROM art WHERE codice = %s" query_executed_cursor_2 = False # Variabile per controllare se la query è stata eseguita
cursor_1.execute(query,(codice,)) try:
result_1 = cursor_1.fetchone() query = "SELECT codice FROM art WHERE codice = %s"
cursor_1.execute(query, (codice,))
result_1 = cursor_1.fetchone()
if result_1: # se l'articolo esiste
query_lsv = "SELECT TLV_CODICE FROM lsv WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor_2.execute(query_lsv, (codice, listino))
result_2 = cursor_2.fetchone()
query_executed_cursor_2 = True # Imposta a True se la query è stata eseguita
if result_1: ## se l'articolo esiste creco per codice listino if result_2: # se il codice listino è stato trovato
print('codice listino trovato')
query_lsv = "SELECT TLV_CODICE FROM lsv WHERE ART_CODICE = %s AND TLV_CODICE = %s" return True # esistono sia articolo che codice listino
cursor_2.execute(query_lsv,(codice,listino)) else:
result_2 = cursor_2.fetchone() print('codice listino non trovato')
return 'not code art'
if result_2: ## se il codice listino è stato trovato
print('codice listino trovato')
return True ## esistono sia articolo che codice listino
else: else:
print('codice listino non trovato') print('codice non esiste')
return 'not code art' return False # l'articolo non esiste
else:
print('codice non esiste') except Exception as e:
return False ## l'articolo non esiste print(f"Errore durante la ricerca: {e}")
return None # Gestisci l'errore come necessario
finally:
# Assicurati di leggere tutti i risultati prima di chiudere il cursore
if cursor_1:
cursor_1.close() # Chiudi il cursore 1
if cursor_2 and query_executed_cursor_2:
cursor_2.fetchall() # Leggi eventuali risultati non letti solo se la query è stata eseguita
cursor_2.close() # Chiudi il cursore 2

View File

@ -6,54 +6,55 @@ import math
value_update = [] value_update = []
def update_records(connection,codice,prezzo,sc1,sc2,listino,ricarica,codice_barre,codice_alternativo,tsa_codice,frn): def update_records(connection,codice,prezzo,sc1,sc2,listino,ricarica,codice_barre,codice_alternativo,tsa_codice,frn):
print('test test')
cursor = connection.cursor()
cursor_select = connection.cursor()
print('cursor test')
try: try:
result = [] result = []
cursor = connection.cursor() print('test 1')
cursor_select = connection.cursor()
if sc1 is not None and not math.isnan(sc1): if sc1 is not None and not math.isnan(sc1):
query_lsa = "UPDATE lsa SET TSM_CODICE = %s WHERE ART_CODICE = %s AND TLA_CODICE = '1'" query_lsa = "UPDATE lsa SET TSM_CODICE = %s WHERE ART_CODICE = %s AND TLA_CODICE = '1'"
cursor.execute(query_lsa, (sc1, codice)) cursor.execute(query_lsa, (sc1, codice))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 2')
if sc2 is not None and not math.isnan(sc2): if sc2 is not None and not math.isnan(sc2):
query_lsv_tsm = "UPDATE lsv SET TSM_CODICE = %s WHERE ART_CODICE = %s AND TLV_CODICE = %s" query_lsv_tsm = "UPDATE lsv SET TSM_CODICE = %s WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor.execute(query_lsv_tsm, (sc2, codice,listino)) cursor.execute(query_lsv_tsm, (sc2, codice,listino))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 3')
if prezzo is not None and not math.isnan(prezzo): if prezzo is not None and not math.isnan(prezzo):
query_lsa = "UPDATE lsa SET PREZZO = %s WHERE ART_CODICE = %s AND TLA_CODICE = '1'" query_lsa = "UPDATE lsa SET PREZZO = %s WHERE ART_CODICE = %s AND TLA_CODICE = '1'"
cursor.execute(query_lsa, (prezzo,codice)) cursor.execute(query_lsa, (prezzo,codice))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 4')
if ricarica is not None and not math.isnan(ricarica): if ricarica is not None and not math.isnan(ricarica):
query_lsv = "UPDATE lsv SET TRL_CODICE = %s WHERE ART_CODICE = %s AND TLV_CODICE = %s" query_lsv = "UPDATE lsv SET TRL_CODICE = %s WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor.execute(query_lsv, (ricarica, codice,listino)) cursor.execute(query_lsv, (ricarica, codice,listino))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 5')
if codice_barre is not None: if codice_barre is not None:
query_bar = "UPDATE bar SET CODICE_BARRE = %s WHERE ART_CODICE = %s" query_bar = "UPDATE bar SET CODICE_BARRE = %s WHERE ART_CODICE = %s"
cursor.execute(query_bar, (codice_barre, codice)) cursor.execute(query_bar, (codice_barre, codice))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 6')
if not pd.isna(codice_alternativo): if not pd.isna(codice_alternativo):
query_alt = "UPDATE art SET CODICE_ALTERNATIVO = %s WHERE codice = %s" query_alt = "UPDATE art SET CODICE_ALTERNATIVO = %s WHERE codice = %s"
cursor.execute(query_alt, (codice_alternativo, codice)) cursor.execute(query_alt, (codice_alternativo, codice))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 7')
if tsa_codice is not None and not math.isnan(tsa_codice): if tsa_codice is not None and not math.isnan(tsa_codice):
query_tsa = "UPDATE art SET TSA_CODICE = %s WHERE codice = %s" query_tsa = "UPDATE art SET TSA_CODICE = %s WHERE codice = %s"
cursor.execute(query_tsa, (tsa_codice, codice)) cursor.execute(query_tsa, (tsa_codice, codice))
count = cursor.rowcount count = cursor.rowcount
result.append(count) result.append(count)
print('test 8')
if frn is not None: if frn is not None:
query_art = "UPDATE art SET FRN_CODICE = %s WHERE codice = %s" query_art = "UPDATE art SET FRN_CODICE = %s WHERE codice = %s"
cursor.execute(query_art, (frn, codice)) cursor.execute(query_art, (frn, codice))
@ -61,27 +62,33 @@ def update_records(connection,codice,prezzo,sc1,sc2,listino,ricarica,codice_barr
result.append(count) result.append(count)
#parte nuova prezzo di lsv #parte nuova prezzo di lsv
print('test 9')
if sc1 is not None and not math.isnan(sc1) and prezzo is not None and not math.isnan(prezzo): if sc1 is not None and not math.isnan(sc1) and prezzo is not None and not math.isnan(prezzo):
select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s LIMIT 1;"
cursor_select.execute(select_percentuale_totale,(sc1, )) cursor_select.execute(select_percentuale_totale, (sc1,))
percentuale_totale = cursor_select.fetchone() percentuale_totale = cursor_select.fetchall()
print('result select') print('result select')
print(percentuale_totale) print(percentuale_totale)
percentuale_totale = percentuale_totale[0]
percentuale_totale = float(percentuale_totale) if percentuale_totale: # Assicurati che ci sia un risultato
print('percentiale totale numero') percentuale_totale = percentuale_totale[0][0] # Accedi al primo elemento della tupla
print(percentuale_totale) percentuale_totale = float(percentuale_totale) # Converti in float
prezzo_netto = (prezzo * percentuale_totale)/100 print('percentiale totale numero')
print(prezzo_netto) print(percentuale_totale)
ris = prezzo_netto + (prezzo_netto*ricarica)/100
print(ris) prezzo_netto = (prezzo * percentuale_totale) / 100
prezzo_lsv = ris print(prezzo_netto)
if listino == 1 or listino == 4: ris = prezzo_netto + (prezzo_netto * ricarica) / 100
prezzo_lsv = ris + (ris*22)/100 print(ris)
print(prezzo_lsv) prezzo_lsv = ris
query_price = "UPDATE lsv SET PREZZO = %s WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor.execute(query_price, (prezzo_lsv, codice,listino)) if listino == 1 or listino == 4:
prezzo_lsv = ris + (ris * 22) / 100
print(prezzo_lsv)
query_price = "UPDATE lsv SET PREZZO = %s WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor.execute(query_price, (prezzo_lsv, codice, listino))
connection.commit() connection.commit()
@ -126,3 +133,4 @@ def update_records(connection,codice,prezzo,sc1,sc2,listino,ricarica,codice_barr
print(f"Errore durante l'aggiornamento: {e}") print(f"Errore durante l'aggiornamento: {e}")
finally: finally:
cursor.close() cursor.close()
cursor_select.close()