Add support for Department, Subdepartment, Product in Rattail -> CORE API

This commit is contained in:
Lance Edgar 2020-03-15 15:54:15 -05:00
parent ab8894ef0d
commit cd93d3e36b
4 changed files with 301 additions and 18 deletions

View file

@ -152,6 +152,22 @@ class FromRattailToCore(NewDataSyncImportConsumer):
# also establish the API client for each!
importer.establish_api()
# sync all Department changes
types = [
'Department',
]
for change in [c for c in changes if c.payload_type in types]:
if change.payload_type == 'Department' and change.deletion:
# TODO: we have no way (yet) to delete a CORE department via API
# # just do default logic for this one
# self.invoke_importer(session, change)
pass
else: # we consider this an "add/update"
department = self.get_department(session, change)
if department:
self.process_change(session, self.importers['Department'],
host_object=department)
# sync all Vendor changes
types = [
'Vendor',
@ -164,13 +180,17 @@ class FromRattailToCore(NewDataSyncImportConsumer):
# self.invoke_importer(session, change)
# TODO: we have no way to delete a CORE vendor via API, right?
pass
else: # we consider this a "vendor add/update"
vendor = self.get_host_vendor(session, change)
else: # we consider this an "add/update"
vendor = self.get_vendor(session, change)
if vendor:
self.process_change(session, self.importers['Vendor'],
host_object=vendor)
def get_host_vendor(self, session, change):
def get_department(self, session, change):
if change.payload_type == 'Department':
return session.query(model.Department).get(change.payload_key)
def get_vendor(self, session, change):
if change.payload_type == 'Vendor':
return session.query(model.Vendor).get(change.payload_key)