124 lines
4.5 KiB
Python
124 lines
4.5 KiB
Python
from datetime import date
|
|
from mysql.connector import Error
|
|
value_update = []
|
|
|
|
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 update_article(connection, codice_art, descrizione1, descrizione2, um, codice_alt, tsa_codice, frn_codice):
|
|
cursor_update = connection.cursor()
|
|
|
|
try:
|
|
query_art = """
|
|
UPDATE art
|
|
SET
|
|
CODICE_ALTERNATIVO = CASE WHEN %s != '' THEN %s ELSE CODICE_ALTERNATIVO END,
|
|
DESCRIZIONE1 = CASE WHEN %s != '' THEN %s ELSE DESCRIZIONE1 END,
|
|
DESCRIZIONE2 = CASE WHEN %s != '' THEN %s ELSE DESCRIZIONE2 END,
|
|
TUM_CODICE = CASE WHEN %s != '' THEN %s ELSE TUM_CODICE END,
|
|
TSA_CODICE = CASE WHEN %s != '' THEN %s ELSE TSA_CODICE END,
|
|
FRN_CODICE = CASE WHEN %s != '' THEN %s ELSE FRN_CODICE END
|
|
WHERE codice = %s
|
|
"""
|
|
cursor_update.execute(query_art, (codice_alt, codice_alt, descrizione1, descrizione1, descrizione2, descrizione2, um, um, tsa_codice, tsa_codice, frn_codice, frn_codice, codice_art))
|
|
|
|
if cursor_update.rowcount > 0:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
except Error as e:
|
|
print(bcolors.FAIL+f"Errore durante l'aggiornamento: {e}")
|
|
finally:
|
|
cursor_update.close()
|
|
|
|
|
|
|
|
def update_lsa(connection, id_lsa, prezzo, tsm_codice):
|
|
cursor_update = connection.cursor()
|
|
try:
|
|
if tsm_codice != '':
|
|
query_lsa = "UPDATE lsa SET PREZZO = %s, DATA_INIZIO = %s, TSM_CODICE = %s WHERE ID = %s"
|
|
cursor_update.execute(query_lsa, (prezzo, date.today().strftime("%Y-%m-%d"), tsm_codice, id_lsa))
|
|
else:
|
|
query_lsa = "UPDATE lsa SET PREZZO = %s, DATA_INIZIO = %s WHERE ID = %s"
|
|
cursor_update.execute(query_lsa, (prezzo, date.today().strftime("%Y-%m-%d"), id_lsa))
|
|
|
|
if cursor_update.rowcount > 0:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
except Error as e:
|
|
print(bcolors.FAIL+f"Errore durante l'aggiornamento: {e}")
|
|
finally:
|
|
cursor_update.close()
|
|
|
|
|
|
def update_lsv(connection, id_lsv, prezzo, prezzo_pubblico, listino, sc1, sc2, ricarica):
|
|
cursor_update = 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 != '':
|
|
prezzo = prezzo_pubblico
|
|
|
|
query_lsv = "UPDATE lsv SET PREZZO = %s, TRL_CODICE = %s, DATA_INIZIO = %s WHERE ID = %s"
|
|
cursor_update.execute(query_lsv, (prezzo, ricarica, date.today().strftime("%Y-%m-%d"), id_lsv))
|
|
|
|
if cursor_update.rowcount > 0:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
else:
|
|
return False
|
|
|
|
except Error as e:
|
|
print(bcolors.FAIL+f"Errore durante l'aggiornamento: {e}")
|
|
finally:
|
|
cursor_update.close() |