from mysql.connector import Error from datetime import datetime, date data_str = "2999-12-31" data_fine = datetime.strptime(data_str, "%Y-%m-%d").date() # value_insert = [] # def insert_records(connection,codice,descrizione,descrizione2,um,prezzo,sc1,sc2,ricarica,listino,codice_alternativo,codice_barre,art,tsa_codice,frn): # try: # # cursor_select = connection.cursor() # result = [] # cursor = connection.cursor() # if art == False: # query_art = "INSERT INTO art (codice, DESCRIZIONE1,DESCRIZIONE2, TUM_CODICE, codice_alternativo, TSA_CODICE, TUB_CODICE, TCM_CODICE, TGM_CODICE, TIV_CODICE_VENDITE, TIV_CODICE_ACQUISTI, TCA_CODICE, TAQ_CODICE, TS3_CODICE, TP2_CODICE, TIN_CODICE, TAA_CODICE, TNI_CODICE,FRN_CODICE) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" # cursor.execute(query_art,(codice, descrizione,descrizione2,um, codice_alternativo, tsa_codice,'0','0','0','22','22','0','0','0','0','0','0','0',frn)) # # count = cursor.rowcount # result.append(count) # # # query_bar = "INSERT INTO bar (ART_CODICE,CODICE_BARRE) VALUES (%s,%s)" # cursor.execute(query_bar,(codice,codice_barre)) # count = cursor.rowcount # result.append(count) # # # if listino == 1: # # select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" # cursor_select.execute(select_percentuale_totale,(sc1, )) # percentuale_totale = cursor_select.fetchone() # # percentuale_totale = percentuale_totale[0] # percentuale_totale = float(percentuale_totale) # # prezzo_netto = (prezzo * percentuale_totale)/100 # # ris = prezzo_netto + (prezzo_netto*ricarica)/100 # # prezzo_lsv = ris + (ris*22)/100 # # 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 : # # select_percentuale_totale = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" # cursor_select.execute(select_percentuale_totale,(sc1, )) # percentuale_totale = cursor_select.fetchone() # # percentuale_totale = percentuale_totale[0] # percentuale_totale = float(percentuale_totale) # # prezzo_netto = (prezzo * percentuale_totale)/100 # # ris = prezzo_netto + (prezzo_netto*ricarica)/100 # prezzo_lsv = ris # if listino == 4: # prezzo_lsv = ris + (ris*22)/100 # # 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) # # # connection.commit() # # if any(val != 0 for val in result): # row = [codice,descrizione,um,prezzo,sc1,sc2,ricarica,codice_alternativo,codice_barre,tsa_codice,frn] # value_insert.append(row) # return value_insert # # except Error as e: # print(f"Errore durante l'inserimento: {e}") # finally: # cursor.close() class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKCYAN = '\033[96m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' def insert_article(connection, codice_articolo, descrizione, descrizione2, um, codice_alternativo, tsa_codice, frn_codice): cursor_insert = connection.cursor() try: query_art = """ INSERT INTO art (codice, DESCRIZIONE1,DESCRIZIONE2, TUM_CODICE, codice_alternativo, TSA_CODICE, TUB_CODICE, TCM_CODICE, TGM_CODICE, TIV_CODICE_VENDITE, TIV_CODICE_ACQUISTI, TCA_CODICE, TAQ_CODICE, TS3_CODICE, TP2_CODICE, TIN_CODICE, TAA_CODICE, TNI_CODICE,FRN_CODICE) VALUES (%s, %s, %s, CASE WHEN %s != '' THEN %s ELSE NULL END, %s, CASE WHEN %s != '' THEN %s ELSE NULL END, %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s, CASE WHEN %s != '' THEN %s ELSE NULL END ) """ cursor_insert.execute(query_art, ( codice_articolo, descrizione, descrizione2, um, um, codice_alternativo, tsa_codice, tsa_codice, '0', '0', '0', '22', '22', '0', '0', '0', '0', '0', '0', '0', frn_codice, frn_codice)) if cursor_insert.rowcount > 0: return True else: return False except Error as e: print(bcolors.FAIL+f"Errore durante l'inserimento: {e}") finally: cursor_insert.close() def insert_barcode(connection,codice,codice_barre): cursor_insert = connection.cursor() try: query_bar = "INSERT INTO bar (ART_CODICE, CODICE_BARRE) VALUES (%s,%s)" cursor_insert.execute(query_bar, (codice, codice_barre)) if cursor_insert.rowcount > 0: return True else: return False except Error as e: print(bcolors.FAIL+f"Errore durante l'inserimento: {e}") finally: cursor_insert.close() def insert_listino_acquisto(connection,codice,prezzo,sc1): cursor_insert = connection.cursor() try: query_lsa = """ INSERT INTO lsa (ART_CODICE, TLA_CODICE, DATA_INIZIO, DATA_FINE, PREZZO, TSM_CODICE) VALUES (%s,%s,%s,%s,%s, CASE WHEN %s != '' THEN %s ELSE NULL END ) """ cursor_insert.execute(query_lsa, (codice, '1', date.today().strftime("%Y-%m-%d"), data_fine, prezzo, sc1, sc1)) if cursor_insert.rowcount > 0: return cursor_insert.lastrowid else: return False except Error as e: print(bcolors.FAIL+f"Errore durante l'inserimento: {e}") finally: cursor_insert.close() def insert_listino_vendita(connection,codice,prezzo,prezzo_pubblico,listino,sc1,sc2,ricarica): cursor_insert = connection.cursor() cursor_select_sc1 = connection.cursor(buffered=True) cursor_select_sc2 = connection.cursor(buffered=True) cursor_select_ricarica = connection.cursor(buffered=True) try: percentuale_totale_sc1 = percentuale_totale_sc2 = percentuale_ricarica = 0 if sc1: select_sc1 = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" cursor_select_sc1.execute(select_sc1, (sc1,)) result_sc1 = cursor_select_sc1.fetchone() percentuale_totale_sc1 = float(result_sc1[0]) if result_sc1 else 0 if sc2: select_sc2 = "SELECT PERCENTUALE_TOTALE FROM tsm WHERE CODICE = %s" cursor_select_sc2.execute(select_sc2, (sc2,)) result_sc2 = cursor_select_sc2.fetchone() percentuale_totale_sc2 = float(result_sc2[0]) if result_sc2 else 0 if ricarica: select_ricarica = "SELECT RICARICO FROM trl WHERE CODICE = %s" cursor_select_ricarica.execute(select_ricarica, (ricarica,)) result_ricarica = cursor_select_ricarica.fetchone() percentuale_ricarica = float(result_ricarica[0]) if result_ricarica else 0 if ricarica != '0': if percentuale_totale_sc1 != 0: prezzo = prezzo * (percentuale_totale_sc1 / 100) if percentuale_ricarica != 0: prezzo += prezzo * (percentuale_ricarica /100) if percentuale_totale_sc2 != 0: prezzo = prezzo * (percentuale_totale_sc2 /100) if listino == '1' or listino == '4': prezzo += prezzo * (22 / 100) if prezzo_pubblico != '' and listino == '1': prezzo = prezzo_pubblico query_lsv = """ INSERT INTO lsv (ART_CODICE,TLV_CODICE,DATA_INIZIO,DATA_FINE,PREZZO,TSM_CODICE,TRL_CODICE) VALUES (%s,%s,%s,%s,%s, CASE WHEN %s != '' THEN %s ELSE NULL END, CASE WHEN %s != '' THEN %s ELSE NULL END ) """ cursor_insert.execute(query_lsv, (codice, listino, date.today().strftime("%Y-%m-%d"), data_fine, prezzo, sc2, sc2, ricarica, ricarica)) if cursor_insert.rowcount > 0: return cursor_insert.lastrowid else: return False else: return False except Error as e: print(bcolors.FAIL+f"Errore durante l'inserimento: {e}") return None finally: cursor_insert.close() cursor_select_sc1.close() cursor_select_sc2.close() cursor_select_ricarica.close()