Ajout check des codes débiteurs
This commit is contained in:
146
class_debitors.py
Normal file
146
class_debitors.py
Normal file
@@ -0,0 +1,146 @@
|
||||
import pickle
|
||||
import os
|
||||
import shutil
|
||||
|
||||
class cls_debitors:
|
||||
items = []
|
||||
file_path = ""
|
||||
|
||||
def __init__(self, filepath=".temp"):
|
||||
self.items = []
|
||||
self.file_path = filepath
|
||||
|
||||
if not os.path.exists(self.file_path):
|
||||
os.makedirs(os.path.abspath(self.file_path))
|
||||
|
||||
if not os.path.isfile(os.path.join(self.file_path, f"debitors.bin")):
|
||||
shutil.copy("debitors_src.bin", os.path.join(self.file_path, f"debitors.bin"))
|
||||
self.load_debitors()
|
||||
|
||||
|
||||
|
||||
def get_names_by_code(self, code):
|
||||
for deb in self.items:
|
||||
if deb.code == int(code):
|
||||
return deb.names
|
||||
return None
|
||||
|
||||
def is_in_debitor_name(self, code, search_name):
|
||||
names = self.get_names_by_code(code)
|
||||
if search_name in names:
|
||||
return True
|
||||
return False
|
||||
|
||||
def add_items(self, code, name):
|
||||
for deb in self.items:
|
||||
if deb.code == code:
|
||||
deb.add_name(name)
|
||||
return
|
||||
deb = cls_debitor()
|
||||
deb.code = code
|
||||
deb.add_name(name)
|
||||
self.items.append(deb)
|
||||
|
||||
def save_debitors(self):
|
||||
if len(self.items) > 0:
|
||||
with open(os.path.join(self.file_path, f"debitors.bin"), "wb") as file:
|
||||
pickle.dump(self.items, file)
|
||||
|
||||
def load_debitors(self):
|
||||
try:
|
||||
with open(os.path.join(self.file_path, f"debitors.bin"), "rb") as file:
|
||||
self.items = pickle.load(file)
|
||||
except:
|
||||
print("Erreur lecture fichier débiteur")
|
||||
|
||||
|
||||
|
||||
class cls_debitor:
|
||||
code = ""
|
||||
names = []
|
||||
|
||||
def __init__(self):
|
||||
self.code = ""
|
||||
self.names = []
|
||||
|
||||
def add_name(self, name):
|
||||
self.names.append(name)
|
||||
|
||||
|
||||
o_debs = cls_debitors(filepath=os.getenv('APPDATA') + '\Attrib2Biz\.temp')
|
||||
|
||||
|
||||
|
||||
|
||||
'''
|
||||
|
||||
o_deb = cls_debitor()
|
||||
o_deb.code = 100
|
||||
o_deb.add_name("HRC Rennaz")
|
||||
o_deb.add_name("Hôpital riviera chablais Rennaz")
|
||||
|
||||
o_debs.items.append(o_deb)
|
||||
|
||||
o_deb = cls_debitor()
|
||||
o_deb.code = 101
|
||||
o_deb.add_name("HVS")
|
||||
|
||||
o_debs.items.append(o_deb)
|
||||
|
||||
o_debs.add_items(102,"Clinique Bernoise Montana - Secrétariat médical")
|
||||
o_debs.add_items(102,"Clinique Bernoise Montana")
|
||||
|
||||
o_debs.add_items(100,'Hôpital Riviera-Chablais Vaud-Valais - Fournisseurs ')
|
||||
o_debs.add_items(101,'Hôpital du Valais - Direction des Finances/Service des fournisseurs ')
|
||||
o_debs.add_items(102,'Clinique Bernoise Montana - Secrétariat médical ')
|
||||
o_debs.add_items(103,'Clinique Genevoise de Montana - Comptabilité ')
|
||||
o_debs.add_items(104,'Clinique SUVA - Comptabilité ')
|
||||
o_debs.add_items(105,'Fondation de Nant - Comptabilité ')
|
||||
o_debs.add_items(106,"Service de l'action sociale - Office de l'asile - Administration RAValais")
|
||||
o_debs.add_items(107,'OCVS - Comptabilité')
|
||||
o_debs.add_items(108,'Suva Aarau - Service Center')
|
||||
o_debs.add_items(109,'Suva Basel - Service Center')
|
||||
o_debs.add_items(110,'Suva Bellinzona - Assicurazione militare - Service Center')
|
||||
o_debs.add_items(111,'Suva Bellinzona - Service Center')
|
||||
o_debs.add_items(112,'Suva Bern - Militärversicherung - Service Center')
|
||||
o_debs.add_items(113,'Suva Chur - Service Center')
|
||||
o_debs.add_items(114,'Suva Delémont - Service Center')
|
||||
o_debs.add_items(115,'Suva Fribourg - Service Center')
|
||||
o_debs.add_items(116,'Suva Genève - Assurance militaire - Service Center')
|
||||
o_debs.add_items(117,'Suva Genève - Service Center')
|
||||
o_debs.add_items(118,'Suva La Chaux-de-Fonds - Service Center')
|
||||
o_debs.add_items(119,'Suva Lausanne - Service Center')
|
||||
o_debs.add_items(120,'Suva Luzern - Service Center')
|
||||
o_debs.add_items(121,'Suva Sion - Service Center')
|
||||
o_debs.add_items(122,'Suva Solothurn - Service Center')
|
||||
o_debs.add_items(123,'Suva St-Gallen - Militärversicherung - Service Center')
|
||||
o_debs.add_items(124,'Suva Zurich - Service Center')
|
||||
o_debs.add_items(125,'Antaé - Allianz Worldwide Care')
|
||||
o_debs.add_items(126,'Terre des Hommes - Soins aux Enfants ')
|
||||
o_debs.add_items(127,'REGA')
|
||||
o_debs.add_items(128,'CNAS Assistance')
|
||||
o_debs.add_items(129,'Clinique Lucernoise Montana - Comptabilité ')
|
||||
o_debs.add_items(130,'AAA Alpine Air Ambulance AG')
|
||||
o_debs.add_items(131,'CHUV')
|
||||
o_debs.add_items(132,'Clinique CIC Collombey SA - c/o Clinique CIC Suisse SA ')
|
||||
o_debs.add_items(133,'Clinique CIC Montreux SA ')
|
||||
o_debs.add_items(134,'Clinique CIC Saxon SA - c/o Clinique CIC Saxon SA ')
|
||||
o_debs.add_items(135,'Clinique CIC Suisse SA ')
|
||||
o_debs.add_items(136,'MedSTAR - Swiss Mobile Healthcare Alliance Sàrl')
|
||||
o_debs.add_items(137,'RFSM - Réseau fribourgeois de santé mentale ')
|
||||
o_debs.add_items(138,'Swiss Medical Network - GSMN Suisse SA - Clinique de Genolier')
|
||||
o_debs.add_items(139,'Swiss Medical Network - GSMN Suisse SA - Clinique de Montchoisi')
|
||||
o_debs.add_items(140,'Swiss Medical Network - GSMN Suisse SA - Clinique Valmont')
|
||||
o_debs.add_items(141,'Swiss Medical Network - Swiss Medical Network Hospitals SA - Hôpital de la Providence')
|
||||
o_debs.add_items(142,'Swiss Medical Network - Swiss Medical Network Hospitals SA - Clinique Montbrillant')
|
||||
o_debs.add_items(143,'Swiss Medical Network - Swiss Medical Network Hospitals SA - Clinique Générale Ste-Anne')
|
||||
o_debs.add_items(144,'Swiss Medical Network - Swiss Medical Network Hospitals SA - Clinique de Valère')
|
||||
o_debs.add_items(146,'Leukerbad Clinic - Comptabilité')
|
||||
o_debs.add_items(147,'Hôpital psychiatrique de Belle-Idée')
|
||||
o_debs.add_items(148,'Direction générale de la Santé VD')
|
||||
o_debs.add_items(149,'Swiss Risk & Care')
|
||||
o_debs.save_debitors()
|
||||
|
||||
|
||||
|
||||
'''
|
BIN
debitors_src.bin
Normal file
BIN
debitors_src.bin
Normal file
Binary file not shown.
18
main.py
18
main.py
@@ -21,6 +21,7 @@ from threading import *
|
||||
from class_invoices import *
|
||||
from class_addresses import *
|
||||
from auto_update import *
|
||||
from class_debitors import *
|
||||
|
||||
from version import *
|
||||
#test master 2
|
||||
@@ -218,6 +219,9 @@ class ClercAttrib2Biz():
|
||||
self.refresh_ui()
|
||||
self.read_addresses()
|
||||
|
||||
self.o_debs = cls_debitors(filepath=temp_dir)
|
||||
|
||||
|
||||
self.timer = self.fenetre.after(1000, self.main_timer_fn)
|
||||
|
||||
self.fenetre.mainloop()
|
||||
@@ -227,6 +231,9 @@ class ClercAttrib2Biz():
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def main_timer_fn(self):
|
||||
print("Pass tick timer main app")
|
||||
self.timer = self.fenetre.after(5000, self.main_timer_fn)
|
||||
@@ -464,7 +471,7 @@ class ClercAttrib2Biz():
|
||||
else:
|
||||
data.Debtor["code"] = str(data.Debtor["code"]).replace('.', '')
|
||||
|
||||
if data.Debtor["code"] != "1" and data.Debtor["code"] != None and int(data.Debtor["code"]) < 100:
|
||||
if int(data.Debtor["code"]) != "1" and data.Debtor["code"] != None and int(data.Debtor["code"]) < 100:
|
||||
if data.Patient["fip_number"] not in self.a_listings["to_check"]:
|
||||
self.a_listings["to_check"].append(data.Patient["fip_number"])
|
||||
self.logger.warning(f"Vérifier facture N°: {data.data['id']} / {data.Patient['fip_number']} {data.Debtor['code']} {data.Debtor['lastname']} {data.Debtor['firstname']}")
|
||||
@@ -488,11 +495,18 @@ class ClercAttrib2Biz():
|
||||
self.logger.warn(f"Débiteur établissement facture N°: {data.data['id']} / {data.Patient['fip_number']} {data.Debtor['name']}")
|
||||
'''
|
||||
|
||||
if data.Debtor["code"] == 1 and data.Patient["lastname"] + data.Patient["firstname"] != data.Debtor["lastname"] + data.Debtor["firstname"]:
|
||||
if int(data.Debtor["code"]) == 1 and 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 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'])}")
|
||||
|
||||
|
||||
|
||||
|
||||
if data.Patient["complement"] != None:
|
||||
self.a_listings["to_check"].append(data.Patient["fip_number"])
|
||||
print(data.Patient["complement"])
|
||||
|
Reference in New Issue
Block a user