def original_merge(self): """ As the function worked originally :return: """ for ged_result in self.get_all_ids(): id_gedetineerde = ged_result[0] # Check whether it is in PrisonersCompare already_merged = PrisonersMerged.query.filter(PrisonersMerged.id_gedetineerde == id_gedetineerde).first() if already_merged: continue print(id_gedetineerde) #in_compare = db.session.query(prisonersmatch).filter( # prisonersmatch.c.master_id_ged == id_gedetineerde).first() in_compare = PrisonersMatch.query.filter(PrisonersMatch.master_id_ged == id_gedetineerde).first() # in_compare = PrisonersCompare.query.filter(PrisonersCompare.id_gedetineerde == id_gedetineerde).first() if in_compare: print('Has some matches') db_pris_compare = PrisonersCompare.query. \ filter(PrisonersCompare.id_gedetineerde == id_gedetineerde).first() # Get the matches using a join (using .matches does not work) matches = self.get_matches(db_pris_compare) for match in matches: print('idmatch:' + str(match.id_gedetineerde)) # It is db_gedetineerde = db_pris_compare.Gedetineerde db_verblijf = db_gedetineerde.Verblijf.first() db_geboorteplaats = db_verblijf.Geboorteplaats.first() db_misdrijf = db_verblijf.Misdrijf.first() db_woonplaats = db_verblijf.Woonplaats.first() db_prisoner = PrisonersMerged() db_prisoner.id_gedetineerde = db_gedetineerde.Id_gedetineerde db_prisoner.naam = db_gedetineerde.Naam db_prisoner.voornaam = db_gedetineerde.Voornaam db_prisoner.geslacht = db_gedetineerde.Geslacht if db_geboorteplaats: db_prisoner.geboorteplaats = db_geboorteplaats.Plaatsnaam_vertaling db_prisoner.geboorteplaats_nis = db_geboorteplaats.Plaatsnaam_NIS if db_misdrijf: db_prisoner.misdrijf = db_misdrijf.Misdrijf_vertaling if db_woonplaats: db_prisoner.woonplaats = db_woonplaats.Plaatsnaam_vertaling db_prisoner.woonplaats_nis = db_woonplaats.Plaatsnaam_NIS db_prisoner.beroep = self.get_occupation_closest_to(db_pris_compare, self.age_to, matches) # db_prisoner.leeftijd = db_pris_compare.Gedetineerde.first().Verblijf.first().Leeftijd db_prisoner.lichaamslengte = self.get_height_closest_to(db_pris_compare, self.age_to, matches) db_prisoner.geboortejaar = self.make_year_of_birth(db_pris_compare.Gedetineerde) db_prisoner.flag = True db_prisoner.control_leeftijd = self.make_control_leeftijd(db_pris_compare, matches) db_prisoner.control_lichaamslengte = self.make_control_lichaamslengte(db_pris_compare, matches) db.session.add(db_prisoner) try: db.session.commit() except Exception as e: db.session.rollback() print(e) else: # It isn't # Check whether it has been matched (we skip those as well) #has_been_checked = db.session.query(prisonersmatch).filter( # prisonersmatch.c.slave_id_ged == id_gedetineerde).first() has_been_checked = PrisonersMatch.query.filter(PrisonersMatch.slave_id_ged == id_gedetineerde).first() if not has_been_checked: db_gedetineerde = Gedetineerde.query.filter(Gedetineerde.Id_gedetineerde == id_gedetineerde).first() db_verblijf = db_gedetineerde.Verblijf.first() db_geboorteplaats = db_verblijf.Geboorteplaats.first() db_misdrijf = db_verblijf.Misdrijf.first() db_woonplaats = db_verblijf.Woonplaats.first() db_beroep = db_verblijf.Beroep.first() db_prisoner = PrisonersMerged() db_prisoner.id_gedetineerde = db_gedetineerde.Id_gedetineerde db_prisoner.naam = db_gedetineerde.Naam db_prisoner.voornaam = db_gedetineerde.Voornaam db_prisoner.geslacht = db_gedetineerde.Geslacht if db_geboorteplaats: db_prisoner.geboorteplaats = db_geboorteplaats.Plaatsnaam_vertaling db_prisoner.geboorteplaats_nis = db_geboorteplaats.Plaatsnaam_NIS if db_misdrijf: db_prisoner.misdrijf = db_misdrijf.Misdrijf_vertaling if db_woonplaats: db_prisoner.woonplaats = db_woonplaats.Plaatsnaam_vertaling db_prisoner.woonplaats_nis = db_woonplaats.Plaatsnaam_NIS if db_beroep: db_prisoner.beroep = db_beroep.Beroep_vertaling db_prisoner.leeftijd = db_verblijf.Leeftijd db_prisoner.geboortejaar = self.make_year_of_birth(db_gedetineerde) db_prisoner.lichaamslengte = db_verblijf.Lichaamslengte_m db.session.add(db_prisoner) try: db.session.commit() except Exception as e: db.session.rollback() print(e)
def new_merge(self): """ Function that merges and returns the correct id_gedetineerde + fill in the age :return: """ for ged_result in self.get_all_ids(): id_gedetineerde = ged_result[0] # Check whether it is in PrisonersCompare already_merged = PrisonersMerged.query.filter(PrisonersMerged.id_gedetineerde == id_gedetineerde).first() if already_merged: continue print(id_gedetineerde) #in_compare = db.session.query(prisonersmatch).filter( # prisonersmatch.c.master_id_ged == id_gedetineerde).first() in_compare = PrisonersMatch.query.filter(PrisonersMatch.master_id_ged == id_gedetineerde).first() # in_compare = PrisonersCompare.query.filter(PrisonersCompare.id_gedetineerde == id_gedetineerde).first() if in_compare: print('Has some matches') db_pris_compare = PrisonersCompare.query. \ filter(PrisonersCompare.id_gedetineerde == id_gedetineerde).first() # Get the matches using a join (using .matches does not work) matches = self.get_matches(db_pris_compare) for match in matches: print('idmatch:' + str(match.id_gedetineerde)) # It is # Now get all information from the one that's closest to our self.age_to db_prisoner_to_age = self.get_pris_closest_to(db_pris_compare, self.age_to, matches) print('pris closest to {0}: {1}'.format(str(self.age_to), str(db_prisoner_to_age.id_gedetineerde))) print('check:{0}'.format(db_pris_compare.id_gedetineerde)) db_gedetineerde = db_prisoner_to_age.Gedetineerde db_verblijf = db_gedetineerde.Verblijf.first() db_geboorteplaats = db_verblijf.Geboorteplaats.first() db_misdrijf = db_verblijf.Misdrijf.first() db_woonplaats = db_verblijf.Woonplaats.first() db_beroep = db_verblijf.Beroep.first() db_prisoner = PrisonersMerged() db_prisoner.id_gedetineerde = db_gedetineerde.Id_gedetineerde db_prisoner.id_gedetineerde_wrong = db_pris_compare.id_gedetineerde db_prisoner.naam = db_gedetineerde.Naam db_prisoner.voornaam = db_gedetineerde.Voornaam db_prisoner.geslacht = db_gedetineerde.Geslacht if db_geboorteplaats: db_prisoner.geboorteplaats = db_geboorteplaats.Plaatsnaam_vertaling db_prisoner.geboorteplaats_nis = db_geboorteplaats.Plaatsnaam_NIS if db_misdrijf: db_prisoner.misdrijf = db_misdrijf.Misdrijf_vertaling if db_woonplaats: db_prisoner.woonplaats = db_woonplaats.Plaatsnaam_vertaling db_prisoner.woonplaats_nis = db_woonplaats.Plaatsnaam_NIS if db_beroep: db_prisoner.beroep = db_beroep.Beroep_vertaling db_prisoner.leeftijd = db_verblijf.Leeftijd db_prisoner.geboortejaar = self.make_year_of_birth(db_gedetineerde) db_prisoner.lichaamslengte = db_verblijf.Lichaamslengte_m db_prisoner.flag = False db_prisoner.control_leeftijd = self.make_control_leeftijd(db_pris_compare, matches) db_prisoner.control_lichaamslengte = self.make_control_lichaamslengte(db_pris_compare, matches) db.session.add(db_prisoner) try: db.session.commit() except Exception as e: db.session.rollback() print(e) else: # It isn't # Check whether it has been matched (we skip those as well) #has_been_checked = db.session.query(prisonersmatch).filter( # prisonersmatch.c.slave_id_ged == id_gedetineerde).first() has_been_checked = PrisonersMatch.query.filter(PrisonersMatch.slave_id_ged == id_gedetineerde).first() if not has_been_checked: db_gedetineerde = Gedetineerde.query.filter(Gedetineerde.Id_gedetineerde == id_gedetineerde).first() db_verblijf = db_gedetineerde.Verblijf.first() db_geboorteplaats = db_verblijf.Geboorteplaats.first() db_misdrijf = db_verblijf.Misdrijf.first() db_woonplaats = db_verblijf.Woonplaats.first() db_beroep = db_verblijf.Beroep.first() db_prisoner = PrisonersMerged() db_prisoner.id_gedetineerde = db_gedetineerde.Id_gedetineerde db_prisoner.naam = db_gedetineerde.Naam db_prisoner.voornaam = db_gedetineerde.Voornaam db_prisoner.geslacht = db_gedetineerde.Geslacht if db_geboorteplaats: db_prisoner.geboorteplaats = db_geboorteplaats.Plaatsnaam_vertaling db_prisoner.geboorteplaats_nis = db_geboorteplaats.Plaatsnaam_NIS if db_misdrijf: db_prisoner.misdrijf = db_misdrijf.Misdrijf_vertaling if db_woonplaats: db_prisoner.woonplaats = db_woonplaats.Plaatsnaam_vertaling db_prisoner.woonplaats_nis = db_woonplaats.Plaatsnaam_NIS if db_beroep: db_prisoner.beroep = db_beroep.Beroep_vertaling db_prisoner.leeftijd = db_verblijf.Leeftijd db_prisoner.geboortejaar = self.make_year_of_birth(db_gedetineerde) db_prisoner.lichaamslengte = db_verblijf.Lichaamslengte_m db.session.add(db_prisoner) try: db.session.commit() except Exception as e: db.session.rollback() print(e)