diff --git a/.~lock.TEST.xlsx# b/.~lock.TEST.xlsx# deleted file mode 100644 index a4623ff..0000000 --- a/.~lock.TEST.xlsx# +++ /dev/null @@ -1 +0,0 @@ -,pc-sviluppo1,pcsviluppo1,12.12.2024 11:32,file:///home/pc-sviluppo1/.config/libreoffice/4; \ No newline at end of file diff --git a/Articoli_Inseriti12-12-2024_11-37.xlsx b/Articoli_Inseriti12-12-2024_11-37.xlsx deleted file mode 100644 index 8dada3e..0000000 Binary files a/Articoli_Inseriti12-12-2024_11-37.xlsx and /dev/null differ diff --git a/TEST.xlsx b/TEST.xlsx deleted file mode 100644 index 2abdc47..0000000 Binary files a/TEST.xlsx and /dev/null differ diff --git a/__pycache__/connection.cpython-310.pyc b/__pycache__/connection.cpython-310.pyc deleted file mode 100644 index da63a4c..0000000 Binary files a/__pycache__/connection.cpython-310.pyc and /dev/null differ diff --git a/__pycache__/insert.cpython-310.pyc b/__pycache__/insert.cpython-310.pyc deleted file mode 100644 index 29ee9ce..0000000 Binary files a/__pycache__/insert.cpython-310.pyc and /dev/null differ diff --git a/__pycache__/search.cpython-310.pyc b/__pycache__/search.cpython-310.pyc deleted file mode 100644 index e22eb48..0000000 Binary files a/__pycache__/search.cpython-310.pyc and /dev/null differ diff --git a/__pycache__/update.cpython-310.pyc b/__pycache__/update.cpython-310.pyc deleted file mode 100644 index ce08dfc..0000000 Binary files a/__pycache__/update.cpython-310.pyc and /dev/null differ diff --git a/__pycache__/upload.cpython-310.pyc b/__pycache__/upload.cpython-310.pyc deleted file mode 100644 index d5b648a..0000000 Binary files a/__pycache__/upload.cpython-310.pyc and /dev/null differ diff --git a/__pycache__/write.cpython-310.pyc b/__pycache__/write.cpython-310.pyc deleted file mode 100644 index 88a7096..0000000 Binary files a/__pycache__/write.cpython-310.pyc and /dev/null differ diff --git a/__pycache__/write_excel_insert.cpython-310.pyc b/__pycache__/write_excel_insert.cpython-310.pyc deleted file mode 100644 index e1c0be3..0000000 Binary files a/__pycache__/write_excel_insert.cpython-310.pyc and /dev/null differ diff --git a/insert.py b/insert.py index 158e6a7..bd02954 100644 --- a/insert.py +++ b/insert.py @@ -36,17 +36,7 @@ def insert_records(connection,codice,descrizione,descrizione2,um,prezzo,sc1,sc2, 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" cursor_select.execute(select_percentuale_totale,(sc1, )) percentuale_totale = cursor_select.fetchone() @@ -59,10 +49,16 @@ def insert_records(connection,codice,descrizione,descrizione2,um,prezzo,sc1,sc2, ris = prezzo_netto + (prezzo_netto*ricarica)/100 prezzo_lsv = ris + (ris*22)/100 - - query_price = "INSERT INTO lsv (PREZZO) VALUES (%s)" - cursor.execute(query_price, (prezzo_lsv,)) + 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_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 : diff --git a/search.py b/search.py index f1520a5..6ae57fc 100644 --- a/search.py +++ b/search.py @@ -7,26 +7,41 @@ from tkinter import filedialog,messagebox from datetime import datetime from mysql.connector import Error -def search_article(connection,codice,listino): - cursor_1 = connection.cursor() - cursor_2 = connection.cursor() - query = "SELECT codice FROM art WHERE codice = %s" - cursor_1.execute(query,(codice,)) - result_1 = cursor_1.fetchone() +def search_article(connection, codice, listino): + cursor_1 = connection.cursor(buffered=True) + cursor_2 = connection.cursor(buffered=True) + query_executed_cursor_2 = False # Variabile per controllare se la query è stata eseguita + try: + 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 - - 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() - - if result_2: ## se il codice listino è stato trovato - print('codice listino trovato') - return True ## esistono sia articolo che codice listino + if result_2: # se il codice listino è stato trovato + print('codice listino trovato') + return True # esistono sia articolo che codice listino + else: + print('codice listino non trovato') + return 'not code art' else: - print('codice listino non trovato') - return 'not code art' - else: - print('codice non esiste') - return False ## l'articolo non esiste \ No newline at end of file + print('codice non esiste') + return False # l'articolo non esiste + + except Exception as e: + 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 + + diff --git a/update.py b/update.py index ac228fb..02fad28 100644 --- a/update.py +++ b/update.py @@ -6,54 +6,55 @@ import math value_update = [] 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: result = [] - cursor = connection.cursor() - cursor_select = connection.cursor() - + print('test 1') 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'" cursor.execute(query_lsa, (sc1, codice)) count = cursor.rowcount result.append(count) - + print('test 2') 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" cursor.execute(query_lsv_tsm, (sc2, codice,listino)) count = cursor.rowcount result.append(count) - + print('test 3') 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'" cursor.execute(query_lsa, (prezzo,codice)) count = cursor.rowcount result.append(count) - + print('test 4') 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" cursor.execute(query_lsv, (ricarica, codice,listino)) count = cursor.rowcount result.append(count) - + print('test 5') if codice_barre is not None: query_bar = "UPDATE bar SET CODICE_BARRE = %s WHERE ART_CODICE = %s" cursor.execute(query_bar, (codice_barre, codice)) count = cursor.rowcount result.append(count) - + print('test 6') if not pd.isna(codice_alternativo): query_alt = "UPDATE art SET CODICE_ALTERNATIVO = %s WHERE codice = %s" cursor.execute(query_alt, (codice_alternativo, codice)) count = cursor.rowcount result.append(count) - + print('test 7') if tsa_codice is not None and not math.isnan(tsa_codice): query_tsa = "UPDATE art SET TSA_CODICE = %s WHERE codice = %s" cursor.execute(query_tsa, (tsa_codice, codice)) count = cursor.rowcount result.append(count) - + print('test 8') if frn is not None: query_art = "UPDATE art SET FRN_CODICE = %s WHERE codice = %s" 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) #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): - select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" - cursor_select.execute(select_percentuale_totale,(sc1, )) - percentuale_totale = cursor_select.fetchone() + select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s LIMIT 1;" + cursor_select.execute(select_percentuale_totale, (sc1,)) + percentuale_totale = cursor_select.fetchall() print('result select') print(percentuale_totale) - percentuale_totale = percentuale_totale[0] - percentuale_totale = float(percentuale_totale) - print('percentiale totale numero') - print(percentuale_totale) - prezzo_netto = (prezzo * percentuale_totale)/100 - print(prezzo_netto) - ris = prezzo_netto + (prezzo_netto*ricarica)/100 - print(ris) - prezzo_lsv = ris - 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)) + + if percentuale_totale: # Assicurati che ci sia un risultato + percentuale_totale = percentuale_totale[0][0] # Accedi al primo elemento della tupla + percentuale_totale = float(percentuale_totale) # Converti in float + print('percentiale totale numero') + print(percentuale_totale) + + prezzo_netto = (prezzo * percentuale_totale) / 100 + print(prezzo_netto) + ris = prezzo_netto + (prezzo_netto * ricarica) / 100 + print(ris) + prezzo_lsv = ris + + 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() @@ -125,4 +132,5 @@ def update_records(connection,codice,prezzo,sc1,sc2,listino,ricarica,codice_barr except Error as e: print(f"Errore durante l'aggiornamento: {e}") finally: - cursor.close() \ No newline at end of file + cursor.close() + cursor_select.close() \ No newline at end of file