Skip to content

Commit

Permalink
BAH-3521 | Fix. Reset address fields when the api payload sends field…
Browse files Browse the repository at this point in the history
…s as null
  • Loading branch information
mohan-13 authored and rahu1ramesh committed Feb 27, 2024
1 parent 32da4d7 commit 96bafd2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
6 changes: 2 additions & 4 deletions bahmni_address_mapping/models/address_mapping_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ class AddressMappingService(models.Model):

@api.model
def _map_address_fields(self, address):
mapped_result = {}
mapped_result = {'country_id': None, 'state_id': None, 'district_id': None, 'subdistrict_id': None,
'village_id': None, 'zip': None, 'street': None, 'street2': None}
address_field_for_country = self._get_openmrs_address_field('country')
address_field_for_state = self._get_openmrs_address_field('state')
address_field_for_district = self._get_openmrs_address_field('district')
Expand Down Expand Up @@ -101,7 +102,6 @@ def _map_address_fields(self, address):
else:
_logger.warning('Village value not passed in address with field %s', address_field_for_village)

mapped_result = self.clean_up_address(mapped_result)
_logger.info('Input address: %s', str(address))
_logger.info('Mapped address: %s', str(mapped_result))
return mapped_result
Expand All @@ -110,8 +110,6 @@ def _get_openmrs_address_field(self, odoo_field_name):
return self.env['address.mapping.table'].search([('odoo_address_field', '=', odoo_field_name)],
limit=1).openmrs_address_field

def clean_up_address(self, address):
return {key: value for key, value in address.items() if value}

@api.model
def _find_country(self, country_name):
Expand Down
11 changes: 6 additions & 5 deletions bahmni_api_feed/models/api_event_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ def _create_or_update_customer(self, vals):
for rec in customer_vals.keys():
if not customer_vals[rec]:
del customer_vals[rec]
address_data = vals.get('preferredAddress')
# get validated address details
address_details = self.env['address.mapping.service']._map_address_fields(address_data)
# update address details
customer_vals.update(address_details)
_logger.info("Customer vals: %s", customer_vals)
existing_customer = self.env['res.partner'].search([('ref', '=', patient_ref)])
if existing_customer:
existing_customer.write(customer_vals)
Expand All @@ -65,11 +71,6 @@ def _get_customer_vals(self, vals):
'local_name': vals.get('local_name') if vals.get('local_name') else False,
'uuid': vals.get('uuid'),
'customer_rank': 1})
address_data = vals.get('preferredAddress')
# get validated address details
address_details = self.env['address.mapping.service']._map_address_fields(address_data)
# update address details
res.update(address_details)
# update other details : for now there is only scope of updating contact.
if vals.get('primaryContact'):
res.update({'phone': vals['primaryContact']})
Expand Down

0 comments on commit 96bafd2

Please sign in to comment.