Add employee importer for CORE -> Rattail, and CORE cashier auth handler
This commit is contained in:
parent
fd5d3142ed
commit
117442f8db
9 changed files with 255 additions and 1 deletions
|
@ -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.
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue