fix: add Employee support for CORE API -> Rattail import/datasync

This commit is contained in:
Lance Edgar 2024-07-04 18:29:05 -05:00
parent 4752409a45
commit 1b04b4097c
3 changed files with 60 additions and 0 deletions
rattail_corepos/importing/corepos

View file

@ -56,6 +56,7 @@ class FromCOREPOSToRattail(importing.ToRattailHandler):
importers['CustomerShopper'] = CustomerShopperImporter
importers['MembershipType'] = MembershipTypeImporter
importers['Member'] = MemberImporter
importers['Employee'] = EmployeeImporter
importers['Store'] = StoreImporter
importers['Department'] = DepartmentImporter
importers['Subdepartment'] = SubdepartmentImporter
@ -341,6 +342,34 @@ class CustomerShopperImporter(FromCOREPOSAPI, corepos_importing.model.CustomerSh
return data
class EmployeeImporter(FromCOREPOSAPI, corepos_importing.model.EmployeeImporter):
"""
Importer for employee data from CORE POS API.
"""
key = 'corepos_number'
supported_fields = [
'corepos_number',
'id',
'first_name',
'last_name',
'full_name',
'status',
]
def get_host_objects(self):
return self.api.get_employees()
def normalize_host_object(self, employee):
return {
'corepos_number': int(employee['emp_no']),
'id': int(employee['emp_no']),
'first_name': employee['FirstName'],
'last_name': employee['LastName'],
'full_name': normalize_full_name(employee['FirstName'], employee['LastName']),
'status': self.enum.EMPLOYEE_STATUS_CURRENT if employee['EmpActive'] else self.enum.EMPLOYEE_STATUS_FORMER,
}
class StoreImporter(FromCOREPOSAPI, corepos_importing.model.StoreImporter):
"""
Importer for store data from CORE POS API.