Add employee importer for CORE -> Rattail, and CORE cashier auth handler

This commit is contained in:
Lance Edgar 2023-10-01 19:40:46 -05:00
parent fd5d3142ed
commit 117442f8db
9 changed files with 255 additions and 1 deletions

View file

@ -35,6 +35,7 @@ from corepos.db.office_trans import model as coretrans, Session as CoreTransSess
from rattail import importing
from rattail.gpc import GPC
from rattail.db.util import normalize_full_name
from rattail_corepos import importing as corepos_importing
@ -65,6 +66,7 @@ class FromCOREPOSToRattail(importing.FromSQLAlchemyHandler, importing.ToRattailH
def get_importers(self):
importers = OrderedDict()
importers['Employee'] = EmployeeImporter
importers['Tender'] = TenderImporter
importers['Vendor'] = VendorImporter
importers['Department'] = DepartmentImporter
@ -88,6 +90,30 @@ class FromCOREPOS(importing.FromSQLAlchemy):
"""
class EmployeeImporter(FromCOREPOS, corepos_importing.model.EmployeeImporter):
"""
Importer for employee data from CORE POS.
"""
host_model_class = corepos.Employee
key = 'corepos_number'
supported_fields = [
'corepos_number',
'first_name',
'last_name',
'full_name',
'status',
]
def normalize_host_object(self, employee):
return {
'corepos_number': employee.number,
'first_name': employee.first_name,
'last_name': employee.last_name,
'full_name': normalize_full_name(employee.first_name, employee.last_name),
'status': self.enum.EMPLOYEE_STATUS_CURRENT if employee.active else self.enum.EMPLOYEE_STATUS_FORMER,
}
class TenderImporter(FromCOREPOS, corepos_importing.model.TenderImporter):
"""
Importer for tender data from CORE POS.

View file

@ -54,6 +54,15 @@ class PersonImporter(importing.model.PersonImporter):
return query
class EmployeeImporter(importing.model.EmployeeImporter):
extensions = {
'_corepos': [
'corepos_number',
],
}
class CustomerImporter(importing.model.CustomerImporter):
extensions = {

View file

@ -34,6 +34,7 @@ class CoreposVersionMixin(object):
def add_corepos_importers(self, importers):
importers['CorePerson'] = CorePersonImporter
importers['CoreEmployee'] = CoreEmployeeImporter
importers['CoreCustomer'] = CoreCustomerImporter
importers['CoreCustomerShopper'] = CoreCustomerShopperImporter
importers['CoreMember'] = CoreMemberImporter
@ -54,6 +55,14 @@ class CorePersonImporter(base.VersionImporter):
return model.CorePerson
class CoreEmployeeImporter(base.VersionImporter):
@property
def host_model_class(self):
model = self.config.get_model()
return model.CoreEmployee
class CoreCustomerImporter(base.VersionImporter):
@property