|
|
|
@@ -1,4 +1,5 @@
|
|
|
|
import csv
|
|
|
|
import csv
|
|
|
|
|
|
|
|
import re
|
|
|
|
import json
|
|
|
|
import json
|
|
|
|
import os
|
|
|
|
import os
|
|
|
|
import logging
|
|
|
|
import logging
|
|
|
|
@@ -351,6 +352,16 @@ class ClercAttrib2Biz():
|
|
|
|
data.Debtor["firstname"] = data.Debtor["firstname"].strip()
|
|
|
|
data.Debtor["firstname"] = data.Debtor["firstname"].strip()
|
|
|
|
if data.Debtor["street"] is not None:
|
|
|
|
if data.Debtor["street"] is not None:
|
|
|
|
data.Debtor["street"] = data.Debtor["street"].strip()
|
|
|
|
data.Debtor["street"] = data.Debtor["street"].strip()
|
|
|
|
|
|
|
|
if data.data["comments"] is not None:
|
|
|
|
|
|
|
|
data.data["comments"] = data.data["comments"].strip().replace("\n",'')
|
|
|
|
|
|
|
|
if data.Debtor["code"] is not None:
|
|
|
|
|
|
|
|
data.Debtor["code"] = data.Debtor["code"].strip()
|
|
|
|
|
|
|
|
data.Debtor["code"] = re.sub(r'[^0-9]', '', data.Debtor["code"])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if "name" in data.Debtor.keys() and data.Debtor["name"] is not None:
|
|
|
|
|
|
|
|
data.Debtor["name"] = data.Debtor["name"].replace("(facturation)","")
|
|
|
|
|
|
|
|
data.Debtor["name"] = data.Debtor["name"].strip()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_code_validity(self, code,data):
|
|
|
|
def check_code_validity(self, code,data):
|
|
|
|
ret = True
|
|
|
|
ret = True
|
|
|
|
@@ -412,6 +423,7 @@ class ClercAttrib2Biz():
|
|
|
|
|
|
|
|
|
|
|
|
self.trim_all_data(data)
|
|
|
|
self.trim_all_data(data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print(f"Code débiteur => {data.data['id']}: {data.Debtor['code']}")
|
|
|
|
print(f"Code débiteur => {data.data['id']}: {data.Debtor['code']}")
|
|
|
|
if data.Debtor["code"] is None or '.' in data.Debtor["code"]:
|
|
|
|
if data.Debtor["code"] is None or '.' in data.Debtor["code"]:
|
|
|
|
print("ERROR code débiteur #1")
|
|
|
|
print("ERROR code débiteur #1")
|
|
|
|
@@ -454,17 +466,44 @@ class ClercAttrib2Biz():
|
|
|
|
self.logger.warn(f"Débiteur établissement facture N°: {data.data['id']} / {data.Patient['fip_number']} {data.Debtor['name']}")
|
|
|
|
self.logger.warn(f"Débiteur établissement facture N°: {data.data['id']} / {data.Patient['fip_number']} {data.Debtor['name']}")
|
|
|
|
'''
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
if int(data.Debtor["code"]) == 1 and data.Patient["lastname"] + data.Patient["firstname"] != data.Debtor["lastname"] + data.Debtor["firstname"]:
|
|
|
|
if int(data.Debtor["code"]) == 1:
|
|
|
|
self.a_listings["to_check"].append(data.Patient["fip_number"])
|
|
|
|
b_check_debitor = False
|
|
|
|
print(data.Patient["complement"])
|
|
|
|
if data.Debtor["lastname"] == None:
|
|
|
|
self.logger.warning(f"Débiteur différents: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
|
|
|
|
b_check_debitor = True
|
|
|
|
|
|
|
|
data.Debtor["lastname"] = ""
|
|
|
|
|
|
|
|
messagebox.showerror(title="Erreur",
|
|
|
|
|
|
|
|
message=f"Le débiteur n'a pas de nom, vérifier la facture ATTRIB et vérifier le code débiteur: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
|
|
|
|
|
|
|
|
if data.Debtor["firstname"] == None:
|
|
|
|
|
|
|
|
b_check_debitor = True
|
|
|
|
|
|
|
|
data.Debtor["firstname"] = ""
|
|
|
|
|
|
|
|
messagebox.showerror(title="Erreur",
|
|
|
|
|
|
|
|
message=f"Le débiteur n'a pas de prénom, vérifier la facture ATTRIB et vérifier le code débiteur: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
|
|
|
|
|
|
|
|
if b_check_debitor:
|
|
|
|
|
|
|
|
debitor_popup = Check_debitor_popup(self.fenetre, data.Debtor,
|
|
|
|
|
|
|
|
self.o_debs.get_names_by_code(data.Debtor['code']),
|
|
|
|
|
|
|
|
data.data['id'],
|
|
|
|
|
|
|
|
data.Patient['fip_number'], object=self.o_debs)
|
|
|
|
|
|
|
|
data.Debtor["code"] = debitor_popup.show()
|
|
|
|
|
|
|
|
if data.Patient["lastname"] + data.Patient["firstname"] != data.Debtor["lastname"] + data.Debtor["firstname"]:
|
|
|
|
|
|
|
|
self.a_listings["to_check"].append(data.Patient["fip_number"])
|
|
|
|
|
|
|
|
print(data.Patient["complement"])
|
|
|
|
|
|
|
|
self.logger.warning(f"Débiteur différents: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
|
|
|
|
|
|
|
|
|
|
|
|
if int(data.Debtor["code"]) >= 100:
|
|
|
|
if int(data.Debtor["code"]) >= 100:
|
|
|
|
|
|
|
|
if "name" not in data.Debtor.keys():
|
|
|
|
|
|
|
|
data.Debtor["name"] = "Invalide"
|
|
|
|
|
|
|
|
self.logger.warning(
|
|
|
|
|
|
|
|
f"Débiteur > 100 sans nom, vérifier la facture ATTRIB et vérifier le code débiteur: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
|
|
|
|
|
|
|
|
messagebox.showerror(title="Erreur",
|
|
|
|
|
|
|
|
message=f"Débiteur > 100 sans nom de débiteur ou d'établissement, vérifier la facture ATTRIB et vérifier le code débiteur: facture N°: {data.data['id']} / {data.Patient['fip_number']}")
|
|
|
|
|
|
|
|
self.a_listings["to_check"].append(data.Patient["fip_number"])
|
|
|
|
|
|
|
|
|
|
|
|
if not self.o_debs.is_in_debitor_name(code=data.Debtor["code"],search_name=data.Debtor["name"]):
|
|
|
|
if not self.o_debs.is_in_debitor_name(code=data.Debtor["code"],search_name=data.Debtor["name"]):
|
|
|
|
#messagebox.showerror(title="Erreur code débiteur erroné", message=f"Information débiteur incohérente: facture N°: {data.data['id']} / {data.Patient['fip_number']}.\nCode débiteur: {data.Debtor['code']}\nNom du débiteur: {data.Debtor['name']}. \nAurait dû être: {self.o_debs.get_names_by_code(data.Debtor['code'])}")
|
|
|
|
#messagebox.showerror(title="Erreur code débiteur erroné", message=f"Information débiteur incohérente: facture N°: {data.data['id']} / {data.Patient['fip_number']}.\nCode débiteur: {data.Debtor['code']}\nNom du débiteur: {data.Debtor['name']}. \nAurait dû être: {self.o_debs.get_names_by_code(data.Debtor['code'])}")
|
|
|
|
debitor_popup = Check_debitor_popup(self.fenetre,data.Debtor,self.o_debs.get_names_by_code(data.Debtor['code']),data.data['id'],data.Patient['fip_number'], object=self.o_debs)
|
|
|
|
debitor_popup = Check_debitor_popup(self.fenetre,data.Debtor,self.o_debs.get_names_by_code(data.Debtor['code']),data.data['id'],data.Patient['fip_number'], object=self.o_debs)
|
|
|
|
data.Debtor["code"] = debitor_popup.show()
|
|
|
|
data.Debtor["code"] = debitor_popup.show()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if data.Debtor["code"] is None or '.' in data.Debtor["code"]:
|
|
|
|
if data.Debtor["code"] is None or '.' in data.Debtor["code"]:
|
|
|
|
messagebox.showerror(title="Erreur Critique",
|
|
|
|
messagebox.showerror(title="Erreur Critique",
|
|
|
|
message=f"Les informations de la factures [{data.data['id']}] comportes trop d'erreur arrêt du processus ")
|
|
|
|
message=f"Les informations de la factures [{data.data['id']}] comportes trop d'erreur arrêt du processus ")
|
|
|
|
@@ -637,7 +676,7 @@ class ClercAttrib2Biz():
|
|
|
|
csv_col.data[40] = datetime.strptime(data.Patient["birthdate"], "%Y-%m-%d").strftime("%d.%m.%Y")
|
|
|
|
csv_col.data[40] = datetime.strptime(data.Patient["birthdate"], "%Y-%m-%d").strftime("%d.%m.%Y")
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
csv_col.data[40] = ""
|
|
|
|
csv_col.data[40] = ""
|
|
|
|
messagebox.showerror(title="Erreur date de naissance", message=f"La date de naissance de la facture {data.data['id']} est faux: [{data.Patient['birthdate']}], merci de le corriger ")
|
|
|
|
messagebox.showerror(title="Erreur date de naissance", message=f"La date de naissance de la facture {data.data['id']} ({data.Patient['lastname']}) est faux: [{data.Patient['birthdate']}], merci de le corriger ")
|
|
|
|
csv_col.data[48] = 0
|
|
|
|
csv_col.data[48] = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -734,6 +773,8 @@ class ClercAttrib2Biz():
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.save_file(lines,fileName=self.export_filename)
|
|
|
|
self.save_file(lines,fileName=self.export_filename)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def addToIndexs(self,obj,data,cat, key):
|
|
|
|
def addToIndexs(self,obj,data,cat, key):
|
|
|
|
#self.a_index[cat].append({"key":key,"index":len(obj.data)})
|
|
|
|
#self.a_index[cat].append({"key":key,"index":len(obj.data)})
|
|
|
|
if key not in self.a_index[cat]:
|
|
|
|
if key not in self.a_index[cat]:
|
|
|
|
|