def handle(self, *args, **options):
     for pep in Pep.objects.exclude(last_employer=''):
         pep.last_employer_en = transliterate(
             translate_company_type_in_string(pep.last_employer))
         pep.save(update_fields=['last_employer_en'])
     for pep in Pep.objects.exclude(last_job_title=''):
         pep.last_job_title_en = transliterate(
             translate_last_position_in_string(pep.last_job_title))
         pep.save(update_fields=['last_job_title_en'])
 def address_en(self):
     if self.address:
         return transliterate(translate_country_in_string(self.address))
     else:
         return None
Example #3
0
 def last_job_title_en(self):
     if self.last_job_title:
         return transliterate(translate_last_position_in_string(self.last_job_title))
     else:
         return None
Example #4
0
 def last_employer_en(self):
     if self.last_employer:
         return transliterate(translate_company_type_in_string(self.last_employer))
     else:
         return None
Example #5
0
 def place_of_birth_en(self):
     if self.place_of_birth:
         return transliterate(translate_country_in_string(self.place_of_birth))
     else:
         return None
Example #6
0
 def transliterate(self, text):
     new_text = transliterate(text)
     if new_text == text:
         new_text = translit(text, 'el',
                             reversed=True)  # Greek transliteration try
     return new_text
Example #7
0
 def save_or_update_peps_companies(self, peps_companies_data):
     address_converter = AddressConverter()
     for link in peps_companies_data:
         is_changed = False
         pep_source_id = link[0]
         pep = self.peps_dict.get(str(pep_source_id))
         if not pep:
             logger.info(
                 f'No such pep in our DB. '
                 f'Check records in the source DB with id {pep_source_id}')
             self.invalid_data_counter += 1
             continue
         company_antac_id = link[1]
         start_date = link[2]
         confirmation_date = link[3]
         end_date = link[4]
         category = link[5]
         edrpou = link[6]
         is_state_company = link[7]
         company_name = link[9]
         country_name = link[10]
         source_id = link[11]
         company_name_en = link[12]
         if not company_name_en:
             company_name_en = transliterate(
                 translate_company_type_in_string(company_name))
         relationship_type = link[13]
         relationship_type_en = link[14]
         country = address_converter.save_or_get_country(
             country_name) if country_name else None
         company = Company.include_deleted_objects.filter(
             antac_id=company_antac_id).first()
         company_update_fields = []
         if not company and edrpou:
             company = Company.include_deleted_objects.filter(
                 edrpou=edrpou, source=Company.UKRAINE_REGISTER).first()
             if company:
                 company.antac_id = company_antac_id
                 company_update_fields.append('antac_id')
         if not company:
             company = Company.objects.create(name=company_name,
                                              name_en=company_name_en,
                                              edrpou=edrpou,
                                              country=country,
                                              code=company_name + edrpou,
                                              source=Company.ANTAC,
                                              antac_id=company_antac_id,
                                              from_antac_only=True)
             self.create_company_link_with_pep(company, pep, category,
                                               start_date,
                                               confirmation_date, end_date,
                                               is_state_company, source_id,
                                               relationship_type,
                                               relationship_type_en)
             is_changed = True
         else:
             if company.name_en != company_name_en:
                 company.name_en = company_name_en
                 company_update_fields.append('name_en')
             if company_update_fields:
                 company_update_fields.append('updated_at')
                 company.save(update_fields=company_update_fields)
             already_stored_link = self.peps_companies_dict.get(source_id)
             if not already_stored_link:
                 self.create_company_link_with_pep(
                     company, pep, category, start_date, confirmation_date,
                     end_date, is_state_company, source_id,
                     relationship_type, relationship_type_en)
                 is_changed = True
             else:
                 update_fields = []
                 if already_stored_link.category != category:
                     already_stored_link.category = category
                     update_fields.append('category')
                 if already_stored_link.relationship_type != relationship_type:
                     already_stored_link.relationship_type = relationship_type
                     update_fields.append('relationship_type')
                 if already_stored_link.relationship_type_en != relationship_type_en:
                     already_stored_link.relationship_type_en = relationship_type_en
                     update_fields.append('relationship_type_en')
                 if already_stored_link.start_date != start_date:
                     already_stored_link.start_date = start_date
                     update_fields.append('start_date')
                 if already_stored_link.confirmation_date != confirmation_date:
                     already_stored_link.confirmation_date = confirmation_date
                     update_fields.append('confirmation_date')
                 if already_stored_link.end_date != end_date:
                     already_stored_link.end_date = end_date
                     update_fields.append('end_date')
                 if already_stored_link.is_state_company != is_state_company:
                     already_stored_link.is_state_company = is_state_company
                     update_fields.append('is_state_company')
                 if already_stored_link.source_id != source_id:
                     already_stored_link.source_id = source_id
                     update_fields.append('source_id')
                 if update_fields:
                     update_fields.append('updated_at')
                     already_stored_link.save(update_fields=update_fields)
                     is_changed = True
                 if self.outdated_peps_companies_dict.get(source_id):
                     del self.outdated_peps_companies_dict[source_id]
         if is_changed and self.refresh_updated_at_field:
             pep.save(update_fields=[
                 'updated_at',
             ])
     if self.outdated_peps_companies_dict:
         for link in self.outdated_peps_companies_dict.values():
             link.soft_delete()
             link.pep.save(update_fields=[
                 'updated_at',
             ])