Compare commits

...

41 Commits

Author SHA1 Message Date
Ambulance Clerc
756eeab00c refactor code 2024-11-09 17:26:52 +01:00
Ambulance Clerc
94ca5534e5 update dl_version 2024-11-09 17:25:29 +01:00
Ambulance Clerc
d751edd248 update version 2024-11-01 20:31:56 +01:00
Ambulance Clerc
516ab4ac3f update suite à MAJ Attrib 2024-11-01 20:29:46 +01:00
Ambulance Clerc
32c8a5ca3f débug auto-update 2023-12-01 17:21:08 +01:00
Ambulance Clerc
f2422762d2 comment line 2023-12-01 17:20:39 +01:00
Ambulance Clerc
e8b52bcd17 Ajout du code débiteur 158 HRF Fribourg comme EBILL 2023-11-28 16:39:58 +01:00
Ambulance Clerc
90bb7e53b0 Débug custom_popup.py if name not exist in Debitor 2023-11-28 15:00:11 +01:00
Ambulance Clerc
56c23ae53c débug comparaison HRF et suppression du break au moment du HRF 2023-10-31 11:43:30 +01:00
Ambulance Clerc
5998bf48cb débug comparaison de l'adresse de livraison 2023-06-20 15:59:48 +02:00
Ambulance Clerc
5311208184 débug comparaison de l'adresse de livraison 2023-06-20 15:44:29 +02:00
Ambulance Clerc
86a2b99f39 débug comparaison de l'adresse de livraison 2023-06-20 15:44:04 +02:00
Ambulance Clerc
eb0e4b4429 débug comparaison de l'adresse de livraison 2023-06-20 15:02:52 +02:00
Ambulance Clerc
4387a1d00b débug comparaison de l'adresse de livraison 2023-06-20 14:53:20 +02:00
Ambulance Clerc
c722af1091 débug comparaison de l'adresse de livraison 2023-06-20 14:23:34 +02:00
Ambulance Clerc
92b3a76733 débug comparaison de l'adresse de livraison 2023-06-20 11:10:18 +02:00
Ambulance Clerc
5adbc77555 Débug de la feature adresse_livraison 2023-06-16 19:43:34 +02:00
Ambulance Clerc
1146ff01c7 Ajout de la comparaison de l'adresse de livraison 2023-06-16 17:29:35 +02:00
Ambulance Clerc
e4c075f6ef Ajout de la comparaison de l'adresse de livraison 2023-06-16 16:17:10 +02:00
Ambulance Clerc
f05a56bc5a Ajout de la comparaison de l'adresse de livraison 2023-06-16 16:16:49 +02:00
Ambulance Clerc
b19340e149 Changement de version 2023-04-26 11:14:47 +02:00
Ambulance Clerc
d313ddefac Changement du message de log, lors des comparaisons d'adresse 2023-04-26 11:14:08 +02:00
Ambulance Clerc
f3d94d330c Supression des options depreciate avec adaptation du code
Ajout de la persistance des otpions
2023-04-26 11:03:20 +02:00
Ambulance Clerc
c198410cd3 Ajout dans les log après chaque popup d'adresse 2023-04-25 16:37:06 +02:00
Ambulance Clerc
48353c6f98 Débug comparaison date 2023-04-25 14:07:43 +02:00
Ambulance Clerc
a94b2cc0d6 Changement sur la comparaison d'adresse. 2023-04-25 13:55:42 +02:00
Ambulance Clerc
9ba8998c32 Debug load config with outfile 2023-04-21 07:57:00 +02:00
Ambulance Clerc
513556f0a3 Copie automatique et lecture du fichier adresses.dbf 2023-04-21 00:32:05 +02:00
Ambulance Clerc
81a9717716 Changement sur la comparaison d'adresse. 2023-04-20 22:23:26 +02:00
Ambulance Clerc
3ff3416b39 Changement sur la comparaison d'adresse. 2023-04-20 20:44:38 +02:00
Ambulance Clerc
e430117d40 Changement de la longueur de l'HUID de 15 à 10 en raison de bug Winbiz 2023-03-01 18:56:40 +01:00
Ambulance Clerc
5060490ac4 Ajout d'un script pour compter les caractères du projet 2023-03-01 18:55:34 +01:00
Ambulance Clerc
d4e5ff6f1b nettoyage du code débiteur 2023-01-24 16:12:08 +01:00
Ambulance Clerc
894a8bbfbb nettoyage du code débiteur 2023-01-24 15:47:51 +01:00
Ambulance Clerc
4d2e2f2351 supression de "(facturation)" 2023-01-24 15:10:03 +01:00
Ambulance Clerc
6f09de76ab Divers débug sur erreur de saisi lors d'un code débiteur 3 et si code débiteur pas encore connu 2023-01-03 16:18:16 +01:00
Ambulance Clerc
eee31f3a1d Ajout d'une captation de bug si débiteur n'existe pas. 2023-01-03 15:15:11 +01:00
Ambulance Clerc
bf1533ccdb Changement de version 2022-09-07 18:10:27 +02:00
Ambulance Clerc
36ce8a2488 Strip et replace \n en "" sur le numéro opale 2022-09-07 18:05:53 +02:00
Ambulance Clerc
891a29e39b Changement de version 2022-09-07 11:17:48 +02:00
Ambulance Clerc
2f9d8c1da8 Changement de version 2022-09-07 11:12:46 +02:00
11 changed files with 694 additions and 533 deletions

View File

@@ -1,5 +1,6 @@
from version import * from version import *
import urllib.request import urllib.request
import urllib.error
import ssl import ssl
import io import io
@@ -22,15 +23,22 @@ class auto_updater:
ctx.verify_mode = ssl.CERT_NONE ctx.verify_mode = ssl.CERT_NONE
data = urllib.request.urlopen("https://gitea.prod.resk-u.ch/CLERC/AttribWinbiz/raw/branch/master/dl_version", context=ctx) data = urllib.request.urlopen("https://gitea.prod.resk-u.ch/CLERC/AttribWinbiz/raw/branch/master/dl_version", context=ctx)
self.dl_version = str(data.read()).replace('b', '').replace("'", "") self.dl_version = str(data.read()).replace('b', '').replace("'", "").replace("\n","").replace('n',"")
ssl._create_default_https_context = ssl._create_unverified_context ssl._create_default_https_context = ssl._create_unverified_context
if self.dl_version != VERSION: if self.dl_version != VERSION:
print(f"Version différente trouvée {self.dl_version} téléchargement en cours => {self.temp_dir}update.exe") print(f"Version différente trouvée {self.dl_version} téléchargement en cours => {self.temp_dir}clerc_update.exe")
try: try:
urllib.request.urlretrieve(url=f"https://gitea.prod.resk-u.ch/CLERC/AttribWinbiz/releases/download/{self.clean(self.dl_version)}/Clercattrib2Biz_setup.exe", filename=f"{self.temp_dir}update.exe") url = f"https://gitea.prod.resk-u.ch/CLERC/AttribWinbiz/releases/download/{self.clean(self.dl_version)}/Clercattrib2Biz_setup.exe"
except: urllib.request.urlretrieve(url=url, filename=f"{self.temp_dir}clerc_update.exe")
print("ERREUR de téléchargement mise à jours") except urllib.error.URLError as e:
print(f"ERREUR de téléchargement mise à jour : {e.reason} \n {url}")
return "ERROR"
except urllib.error.HTTPError as e:
print(f"ERREUR HTTP lors du téléchargement : {e.code} {e.reason} \n {url}")
return "ERROR"
except Exception as e:
print(f"Erreur inattendue : {e} \n {url}")
return "ERROR" return "ERROR"
ret = True ret = True
return ret return ret

222
cl_attriblink.py Normal file
View File

@@ -0,0 +1,222 @@
class cl_AttribLink():
def __init__(self):
self.invoice_ID = None
self.FIP = None
self.comments = None
self.km = None
self.invoice_date = None
self.debtor_code = None
self.debtor_name = None
self.debtor_lastname = None
self.debtor_firstname = None
self.debtor_addr_complement = None
self.debtor_street = None
self.debtor_street_number = None
self.debtor_postal_code = None
self.debtor_city = None
self.debtor_country = None
self.debtor_gender = None
self.patient_AVS = None
self.patient_category = None
self.patient_birthdate = None
self.patient_lastname = None
self.patient_firstname = None
self.patient_addr_complement = None
self.patient_addr_2 = None
self.patient_street = None
self.patient_street_number = None
self.patient_postal_code = None
self.patient_city = None
self.patient_country = None
self.patient_gender = None
self.patient_insurance_name = None
self.intervention_type = None
self.intervention_base = None
self.intervention_team = None
self.intervention_start_time = None
self.intervention_end_time = None
#Intervention DEST
self.intervention_dest_name = None
self.intervention_dest_street = None
self.intervention_dest_street_number = None
self.intervention_dest_postal_code = None
self.intervention_dest_city = None
#Intervention Site
self.intervention_site_name = None
self.intervention_site_street = None
self.intervention_site_street_number = None
self.intervention_site_postal_code = None
self.intervention_site_city = None
self.src_key_invoice = {
"id": ["id"],
"total_price": ["total_price"],
"date": ["date"],
"comments": ["comments"],
}
self.src_key_debtor = {
"code": ["code"],
"name": ["name"],
"lastname": ["lastname"],
"firstname": ["firstname"],
"addr_complement": ["complement"],
"street": ["street"],
"addr_2": ["addr_2"],
"street_number": ["street_number"],
"postal_code": ["postal_code"],
"city": ["city"],
"country_name": ["country","country_name"],
"gender_name": ["gender","gender_name"],
}
self.src_key_patient = {
"fip": ["fip_number"],
"category_name": ["category", "category_name"],
"birthdate": ["birthdate"],
"AVS": ["insurance_policy_number"],
"lastname": ["lastname"],
"firstname": ["firstname"],
"addr_complement": ["complement"],
"street": ["street"],
"addr_2": ["addr_2"],
"street_number": ["street_number"],
"postal_code": ["postal_code"],
"city": ["city"],
"country_name": ["country","country_name"],
"gender_name": ["gender","gender_name"],
"insurance_name": ["insurance","insurance_name"],
}
self.src_key_article = {
"price": ["price"],
"code": ["code"],
"line_1": ["line_1"],
"line_2": ["line_2"],
"quantity": ["quantity"],
"unit_price": ["unit_price"],
"unit": ["unit", "unit_name"],
"price": ["price"],
}
self.src_key_intervention = {
"date": ["date"],
"type": ["type"],
"kilometers": ["kilometers"],
"start_time": ["start_time"],
"end_time": ["end_time"],
"base_name": ["base", "base_name"],
"team_name": ["team", "team_name"],
"destination_name": ["destination", "destination_name"],
"destination_street": ["destination", "destination_street"],
"destination_street_number": ["destination_street_number"],
"destination_city": ["destination_city"],
"destination_postal_code": ["destination_postal_code"],
"site_name": ["site", "site_name"],
"site_street": ["site", "site_street"],
"site_street_number": ["site_street_number"],
"site_city": ["site_city"],
"site_postal_code": ["site_postal_code"],
}
def parse_data(self, data):
self.invoice_ID = self.get_value_from_attrib(data=data, obj="data", key="id")
self.comments = self.get_value_from_attrib(data=data, obj="data", key="comments")
self.invoice_date = self.get_value_from_attrib(data=data, obj="data", key="date")
self.debtor_code = self.get_value_from_attrib(data=data, obj="debtor", key="code")
self.debtor_name = self.get_value_from_attrib(data=data, obj="debtor", key="name")
self.debtor_lastname = self.get_value_from_attrib(data=data,obj="debtor",key="lastname")
self.debtor_firstname = self.get_value_from_attrib(data=data,obj="debtor",key="firstname")
self.debtor_addr_complement = self.get_value_from_attrib(data=data,obj="debtor",key="addr_complement")
self.debtor_street = self.get_value_from_attrib(data=data,obj="debtor",key="street")
self.debtor_street_number = self.get_value_from_attrib(data=data,obj="debtor",key="street_number")
self.debtor_postal_code = self.get_value_from_attrib(data=data,obj="debtor",key="postal_code")
self.debtor_city = self.get_value_from_attrib(data=data,obj="debtor",key="city")
self.debtor_gender = self.get_value_from_attrib(data=data,obj="debtor",key="gender_name")
self.debtor_country = self.get_value_from_attrib(data=data,obj="debtor",key="country_name")
self.FIP = self.get_value_from_attrib(data=data, obj="patient", key="fip")
self.patient_category = self.get_value_from_attrib(data=data, obj="patient", key="category_name")
self.patient_birthdate = self.get_value_from_attrib(data=data, obj="patient", key="birthdate")
self.patient_lastname = self.get_value_from_attrib(data=data, obj="patient", key="lastname")
self.patient_addr_2 = self.get_value_from_attrib(data=data, obj="patient", key="addr_2")
self.patient_firstname = self.get_value_from_attrib(data=data, obj="patient", key="firstname")
self.patient_addr_complement = self.get_value_from_attrib(data=data, obj="patient", key="addr_complement")
self.patient_street = self.get_value_from_attrib(data=data,obj="patient",key="street")
self.patient_street_number = self.get_value_from_attrib(data=data,obj="patient",key="street_number")
self.patient_postal_code = self.get_value_from_attrib(data=data,obj="patient",key="postal_code")
self.patient_city = self.get_value_from_attrib(data=data,obj="patient",key="city")
self.patient_gender = self.get_value_from_attrib(data=data,obj="patient",key="gender_name")
self.patient_country = self.get_value_from_attrib(data=data,obj="patient",key="country_name")
self.patient_insurance_name = self.get_value_from_attrib(data=data,obj="patient",key="insurance_name")
self.km = self.get_value_from_attrib(data=data, obj="intervention", key="kilometers")
self.intervention_start_time = self.get_value_from_attrib(data=data, obj="intervention", key="start_time")
self.intervention_end_time = self.get_value_from_attrib(data=data, obj="intervention", key="end_time")
self.intervention_base = self.get_value_from_attrib(data=data, obj="intervention", key="base_name")
self.intervention_team = self.get_value_from_attrib(data=data, obj="intervention", key="team_name")
self.intervention_type = self.get_value_from_attrib(data=data, obj="intervention", key="type")
self.intervention_dest_name = self.get_value_from_attrib(data=data, obj="intervention", key="destination_name")
self.intervention_dest_street = self.get_value_from_attrib(data=data, obj="intervention", key="destination_street")
self.intervention_dest_street_number = self.get_value_from_attrib(data=data, obj="intervention", key="destination_street_number")
self.intervention_dest_postal_code = self.get_value_from_attrib(data=data, obj="intervention", key="destination_postal_code")
self.intervention_dest_city = self.get_value_from_attrib(data=data, obj="intervention", key="destination_city")
self.intervention_site_name = self.get_value_from_attrib(data=data, obj="intervention", key="site_name")
self.intervention_site_street = self.get_value_from_attrib(data=data, obj="intervention", key="site_street")
self.intervention_site_street_number = self.get_value_from_attrib(data=data, obj="intervention", key="site_street_number")
self.intervention_site_postal_code = self.get_value_from_attrib(data=data, obj="intervention", key="site_postal_code")
self.intervention_site_city = self.get_value_from_attrib(data=data, obj="intervention", key="site_city")
def on_error_not_found(self, obj, key):
print(f"ERROR AttribLink => obi[{obj}] and key [{key}] not found.")
def get_value_from_attrib(self,data,obj, key):
print(f"get value from {obj}=>{key}")
ret = False
t_obj = None
if obj == "data":
t_obj = data.data
key_src = self.src_key_invoice
elif obj == "debtor":
t_obj = data.Debtor
key_src = self.src_key_debtor
elif obj == "patient":
t_obj = data.Patient
key_src = self.src_key_patient
elif obj == "article":
t_obj = data
key_src = self.src_key_article
elif obj == "invoice":
t_obj = data
key_src = self.src_key_invoice
if obj == "intervention":
t_obj = data.Intervention
key_src = self.src_key_intervention
for t_key in key_src[key]:
if t_key in t_obj:
ret = t_obj[t_key]
if ret == False:
self.on_error_not_found(obj, key)
return None
else:
return ret

View File

@@ -7,6 +7,7 @@ class cls_Addresses:
self.items.append(items) self.items.append(items)
def get_item_by_AVS(self, seek): def get_item_by_AVS(self, seek):
for item in self.items: for item in self.items:
if item.AVS == seek: if item.AVS == seek:
return item return item
@@ -21,3 +22,4 @@ class cls_addresse:
street_cpl = None street_cpl = None
npa = None npa = None
city = None city = None
addr_2 = None

View File

@@ -27,10 +27,13 @@ class cls_debitors:
return None return None
def get_names_by_code(self, code): def get_names_by_code(self, code):
for deb in self.items: default = []
if int(code) < 100:
return default
for deb in self.items: # items contient lensemble des objects détiteur provenant dun export BDD
if deb.code == int(code): if deb.code == int(code):
return deb.names return deb.names
return None return default
def is_in_debitor_name(self, code, search_name): def is_in_debitor_name(self, code, search_name):
names = self.get_names_by_code(code) names = self.get_names_by_code(code)

View File

@@ -16,6 +16,57 @@ class cls_Invoice:
self.data = obj self.data = obj
self.a_index = {"invoice": [], "intervention": [], "patient": [], "debtor": [], "articles": []} self.a_index = {"invoice": [], "intervention": [], "patient": [], "debtor": [], "articles": []}
self.index_counter = 0 self.index_counter = 0
self.format_debitor_addr_2()
def format_debitor_addr_2(self):
debitor = self.Debtor
con = ""
concat_str = ""
if "name" in debitor.keys():
if debitor["name"] is not None:
concat_str += con + debitor["name"]
# con = "#chr(13)##chr(10)#"
con = "\n"
if debitor["gender"] is not None:
concat_str += con + "Monsieur" if debitor["gender"] == "Masculin" else con + "Madame"
# con = "#chr(13)##chr(10)#"
con = "\n"
if debitor["lastname"] is not None:
concat_str += con + self.ifNotNull(debitor["lastname"]) + " " + self.ifNotNull(
debitor["firstname"])
# con = "#chr(13)##chr(10)#"
con = "\n"
if debitor["complement"] is not None:
concat_str += con + debitor["complement"]
# con = "#chr(13)##chr(10)#"
con = "\n"
if debitor["street"] is not None:
concat_str += con + self.ifNotNull(debitor["street"]) + " " + self.ifNotNull(
debitor["street_number"])
# con = "#chr(13)##chr(10)#"
con = "\n"
if debitor["city"] is not None:
concat_str += con + self.ifNotNull(debitor["postal_code"]) + " " + self.ifNotNull(
debitor["city"])
# con = "#chr(13)##chr(10)#"
con = "\n"
if debitor["country_name"] != "Suisse":
concat_str += con + debitor["country_name"]
# con = "#chr(13)##chr(10)#"
con = "\n"
self.Patient["addr_2"] = concat_str
self.Patient["selfish"] = self.is_addr_2_selfish(self.Patient)
def is_addr_2_selfish(self, patient):
print(patient)
temp_addr_2 = str(patient["addr_2"]).replace("Monsieur","").replace("Madame","").replace("\n","").replace(" ","")
str_compare = self.ifNotNull(patient['lastname']).replace('.','') + self.ifNotNull(patient['firstname']).replace('.','') + self.ifNotNull(patient['complement']).strip()+ self.ifNotNull(patient['street']).strip() + self.ifNotNull(patient['street_number']).strip() + self.ifNotNull(patient['postal_code']).strip() +self.ifNotNull(patient['city']).strip()
str_compare = str_compare.replace(" ","")
print(f"is_addr_2_selfish ? {str_compare} <> {temp_addr_2} = {str_compare == temp_addr_2}")
return str_compare == temp_addr_2
def ifNotNull(self, value, ret=""):
if value == None or value == "None":
return ret
return value.strip()
class cls_Col: class cls_Col:
data = [] data = []

16
counter.py Normal file
View File

@@ -0,0 +1,16 @@
import os
def count_chars_in_folder(folder_path):
total_chars = 0
for filename in os.listdir(folder_path):
filepath = os.path.join(folder_path, filename)
if os.path.isfile(filepath):
with open(filepath, 'r') as file:
content = file.read()
total_chars += len(content)
print(f"fichier {filepath} = { len(content)}")
return total_chars
folder_path = '.' # mettre le chemin absolu vers le dossier ici
total_chars = count_chars_in_folder(folder_path)
print(f"Le nombre total de caractères dans les fichiers du dossier {folder_path} est : {total_chars}")

View File

@@ -12,7 +12,7 @@ class Check_addresses_popup(Toplevel):
if(item_1["complement"] is None): if(item_1["complement"] is None):
item_1["complement"] = "" item_1["complement"] = ""
self.geometry(f"700x300+{parent.winfo_x() + 25 }+{parent.winfo_y() +25 }") self.geometry(f"700x450+{parent.winfo_x() + 25 }+{parent.winfo_y() +25 }")
self.resizable(True,True) self.resizable(True,True)
self.iconbitmap("./logo_clerc_03X_icon.ico") self.iconbitmap("./logo_clerc_03X_icon.ico")
self.title(f"Choix de l'adresse à conserver {item_1['fip_number']} / {factureID}. Code débiteur: {debitor['code']}") self.title(f"Choix de l'adresse à conserver {item_1['fip_number']} / {factureID}. Code débiteur: {debitor['code']}")
@@ -26,27 +26,42 @@ class Check_addresses_popup(Toplevel):
lbf_old = LabelFrame(self, text="Données Winbiz") lbf_old = LabelFrame(self, text="Données Winbiz")
lbf_old.grid(row=0, column=1, sticky='NSEW', padx=5, pady=5) lbf_old.grid(row=0, column=1, sticky='NSEW', padx=5, pady=5)
lbf_addr_2_new = LabelFrame(self, text="Livraison Attrib")
lbf_addr_2_new.grid(row=1, column=0, sticky='WE', padx=5, pady=5)
lbf_addr_2_old = LabelFrame(self, text="Livraison Winbiz")
lbf_addr_2_old.grid(row=1, column=1, sticky='NSEW', padx=5, pady=5)
str_address_1 = "" str_address_1 = ""
fonts = [] fonts = []
self.x_row = 0 self.x_row = 0
self.add_compares_element(new_frame=lbf_new,old_frame=lbf_old,label="N° AVS de l'adresse:",str1=item_1['insurance_policy_number'].replace('.',''), str2=item_2.AVS) self.add_compares_element(new_frame=lbf_new,old_frame=lbf_old,label="N° AVS de l'adresse:",str1=self.ifNotNull(item_1['insurance_policy_number']).replace('.',''), str2=item_2.AVS)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Nom:", str1=item_1['lastname'], str2=item_2.lastName) self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Nom:", str1=self.ifNotNull(item_1['lastname']), str2=item_2.lastName)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Prénom:", str1=item_1['firstname'], str2=item_2.firstName) self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Prénom:", str1=self.ifNotNull(item_1['firstname']), str2=item_2.firstName)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Date de naissance:", str1=datetime.strptime(item_1['birthdate'], "%Y-%m-%d").strftime("%d.%m.%Y"), str2=item_2.birth) self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Date de naissance:", str1=datetime.strptime(self.ifNotNull(item_1['birthdate']), "%Y-%m-%d").strftime("%d.%m.%Y"), str2=item_2.birth)
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Adresse:", str1=f"{item_1['street']} {item_1['street_number']}", str2=item_2.street) self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Adresse:", str1=f"{self.ifNotNull(item_1['street']).strip()} {self.ifNotNull(item_1['street_number']).strip()}", str2=item_2.street.strip())
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Complément:", str1=f"{item_1['complement']}", str2=item_2.street_cpl) self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="Complément:", str1=f"{self.ifNotNull(item_1['complement']).strip()}", str2=item_2.street_cpl.strip())
self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="NPA/Localité:", str1=f"{item_1['postal_code']} {item_1['city']}", str2=f"{item_2.npa} {item_2.city}") self.add_compares_element(new_frame=lbf_new, old_frame=lbf_old, label="NPA/Localité:", str1=f"{self.ifNotNull(item_1['postal_code'])} {self.ifNotNull(item_1['city'])}", str2=f"{item_2.npa} {item_2.city}")
str_address_1 += item_1['insurance_policy_number'].replace('.', '') if int(debitor["code"]) < 100:
str_address_1 += item_1['lastname'].strip() if item_1["selfish"]:
str_address_1 += item_1['firstname'].strip() force_color = "green"
else:
force_color = None
self.add_compares_element(new_frame=lbf_addr_2_new, old_frame=lbf_addr_2_old, label="Adresse livraison:", str1=item_1["addr_2"],
str2=self.ifNotNull(item_2.addr_2),force_color_1=force_color)
str_address_1 += self.ifNotNull(item_1['insurance_policy_number']).replace('.', '')
str_address_1 += self.ifNotNull(item_1['lastname']).strip()
str_address_1 +=self.ifNotNull( item_1['firstname']).strip()
str_address_1 += datetime.strptime(item_1['birthdate'], "%Y-%m-%d").strftime("%d.%m.%Y") str_address_1 += datetime.strptime(item_1['birthdate'], "%Y-%m-%d").strftime("%d.%m.%Y")
str_address_1 += f"{item_1['street']} {item_1['street_number']}" str_address_1 += f"{self.ifNotNull(item_1['street']).strip()} {self.ifNotNull(item_1['street_number']).strip()}"
str_address_1 += f"{item_1['complement']}" str_address_1 += f"{self.ifNotNull(item_1['complement']).strip()}"
str_address_1 += f"{item_1['postal_code']} {item_1['city']}" str_address_1 += f"{self.ifNotNull(item_1['postal_code'])} {self.ifNotNull(item_1['city'])}"
@@ -63,10 +78,10 @@ class Check_addresses_popup(Toplevel):
str_address_2 += f"{item_2.npa} {item_2.city}" str_address_2 += f"{item_2.npa} {item_2.city}"
self.listbox = Listbox(self, height=3, width=35) self.listbox = Listbox(self, height=3, width=35)
self.listbox.grid(row=1,column=0, columnspan= 2, pady=15,padx=15, sticky='NSEW') self.listbox.grid(row=2,column=0, columnspan= 2, pady=15,padx=15, sticky='NSEW')
self.btn = Button(self, text="Valider", command=self.select) self.btn = Button(self, text="Valider", command=self.select)
self.btn.grid(row=2,columnspan=2 , pady=10,padx=10, sticky='NSEW') self.btn.grid(row=3,columnspan=2 , pady=10,padx=10, sticky='NSEW')
for (idd, info) in ((0, "Winbiz"), (1, "Attrib")) : for (idd, info) in ((0, "Winbiz"), (1, "Attrib")) :
self.listbox.insert(END, info) self.listbox.insert(END, info)
@@ -88,22 +103,28 @@ class Check_addresses_popup(Toplevel):
self.listbox.selection_set(1) self.listbox.selection_set(1)
print(f"adresse différente [{str_address_1}] ({str_address_2})") print(f"adresse différente [{str_address_1}] ({str_address_2})")
def ifNotNull(self, value, ret=""):
if value == None or value == "None":
return ret
return value.strip()
def add_compares_element(self,new_frame, old_frame,str1, str2, label, force_color_1=None):
def add_compares_element(self,new_frame, old_frame,str1, str2, label):
label_font = font.Font(weight='bold', size=9) label_font = font.Font(weight='bold', size=9)
value_color = "black" value_color_1 = "black"
value_color_2 = "black"
con = "" con = ""
if str1 != str2: if str1 != str2:
value_color = "red" value_color_1 = "red"
value_color_2 = "red"
con = "*" con = "*"
if force_color_1 is not None:
value_color_1 = force_color_1
Label(new_frame, text=label, font=label_font).grid(row=self.x_row, column=0, sticky="W") Label(new_frame, text=str(label), font=label_font).grid(row=self.x_row, column=0, sticky="W")
Label(new_frame, text=con + str1 + con, fg=value_color).grid(row=self.x_row, column=1, sticky="W") Label(new_frame, text=con + str(str1) + con, fg=value_color_1, anchor="w", justify=LEFT).grid(row=self.x_row, column=1, sticky="W")
Label(old_frame, text=label, font=label_font).grid(row=self.x_row, column=0, sticky="W") Label(old_frame, text=str(label), font=label_font).grid(row=self.x_row, column=0, sticky="W")
Label(old_frame, text=con + str2 + con, fg=value_color).grid(row=self.x_row, column=1, sticky="W") Label(old_frame, text=con + str(str2) + con, fg=value_color_2, anchor="w", justify=LEFT).grid(row=self.x_row, column=1, sticky="W")
self.x_row += 1 self.x_row += 1
@@ -162,6 +183,8 @@ class Check_debitor_popup(Toplevel):
Label(lbf_new, text="Débiteur sélectionné dans Attrib", font=label_font).grid(row=1, column=0, sticky="W") Label(lbf_new, text="Débiteur sélectionné dans Attrib", font=label_font).grid(row=1, column=0, sticky="W")
text_name = Text(lbf_new, fg="red", height=3,width= 30) text_name = Text(lbf_new, fg="red", height=3,width= 30)
text_name.grid(row=1, column=1, sticky="W") text_name.grid(row=1, column=1, sticky="W")
if 'name' not in debitor:
debitor['name'] = ""
text_name.insert(END,debitor['name']) text_name.insert(END,debitor['name'])
text_name.configure(state='disabled') text_name.configure(state='disabled')

View File

@@ -1 +1 @@
20220902-1508 20241109-1726

803
main.py

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1 +1,2 @@
VERSION = "20220902-1508" VERSION = "20241109-1726"