Fix visitor duplication and improve PIN assignment
- Prevent duplicate entries for reservations with same dates - Assign PINs to existing visitors without them - Enhance logging for better debugging - Prioritize date matching over name matching for visitors - Consistently use last 4 digits of phone numbers for PINsmain
parent
59b6d5b964
commit
8a043a3be7
|
|
@ -167,7 +167,10 @@ class UnifiAccessManager:
|
||||||
)
|
)
|
||||||
|
|
||||||
if existing_visitor:
|
if existing_visitor:
|
||||||
|
self.logger.debug(f"Visitor already exists for dates {check_in_date} to {check_out_date}: {existing_visitor['first_name']} {existing_visitor['last_name']}")
|
||||||
self.changes['unchanged'].append(f"{existing_visitor['first_name']} {existing_visitor['last_name']}")
|
self.changes['unchanged'].append(f"{existing_visitor['first_name']} {existing_visitor['last_name']}")
|
||||||
|
if not existing_visitor.get('pin_code') and phone_number:
|
||||||
|
self.assign_pin_to_visitor(existing_visitor['id'], phone_number[-self.pin_code_digits:])
|
||||||
else:
|
else:
|
||||||
start_datetime = datetime.datetime.combine(check_in_date, self.check_in_time)
|
start_datetime = datetime.datetime.combine(check_in_date, self.check_in_time)
|
||||||
end_datetime = datetime.datetime.combine(check_out_date, self.check_out_time)
|
end_datetime = datetime.datetime.combine(check_out_date, self.check_out_time)
|
||||||
|
|
@ -177,6 +180,7 @@ class UnifiAccessManager:
|
||||||
success = self.create_visitor(first_name, last_name, phone_number, start_timestamp, end_timestamp)
|
success = self.create_visitor(first_name, last_name, phone_number, start_timestamp, end_timestamp)
|
||||||
if success:
|
if success:
|
||||||
self.changes['added'].append(guest_name)
|
self.changes['added'].append(guest_name)
|
||||||
|
self.logger.info(f"Created new visitor: {guest_name}")
|
||||||
else:
|
else:
|
||||||
self.logger.error(f"Failed to create visitor: {guest_name}")
|
self.logger.error(f"Failed to create visitor: {guest_name}")
|
||||||
|
|
||||||
|
|
@ -187,6 +191,7 @@ class UnifiAccessManager:
|
||||||
success = self.delete_visitor(visitor["id"], is_completed)
|
success = self.delete_visitor(visitor["id"], is_completed)
|
||||||
if success:
|
if success:
|
||||||
self.changes['deleted'].append(f"{visitor['first_name']} {visitor['last_name']}")
|
self.changes['deleted'].append(f"{visitor['first_name']} {visitor['last_name']}")
|
||||||
|
self.logger.info(f"Deleted visitor: {visitor['first_name']} {visitor['last_name']}")
|
||||||
else:
|
else:
|
||||||
self.logger.error(f"Failed to delete visitor: {visitor['first_name']} {visitor['last_name']}")
|
self.logger.error(f"Failed to delete visitor: {visitor['first_name']} {visitor['last_name']}")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue