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_AVS = self.get_value_from_attrib(data=data, obj="patient", key="AVS") 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