From 76da7e7193a98f92317d591e047d11f5ab031bee Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Mon, 21 Nov 2016 14:36:31 -0600 Subject: [PATCH] Cleanup refresh logic a bit, for vendor invoice batches --- rattail/batch/vendorinvoice.py | 42 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/rattail/batch/vendorinvoice.py b/rattail/batch/vendorinvoice.py index 04b27ee7..d91f4f40 100644 --- a/rattail/batch/vendorinvoice.py +++ b/rattail/batch/vendorinvoice.py @@ -108,29 +108,29 @@ class VendorInvoiceHandler(BatchHandler): """ Attempt to locate the product for the row, based on UPC etc. """ + session = orm.object_session(row) + + if row.upc: + product = self.find_product_by_upc(session, row.upc) + if product: + return product + + if row.vendor_code: + product = self.find_product_by_vendor_code(session, row.vendor_code) + if product: + return product + + def find_product_by_upc(self, session, upc): if hasattr(self, 'products'): + return self.products['upc'].get(upc) + else: + return api.get_product_by_upc(session, upc) - if row.upc: - product = self.products['upc'].get(row.upc) - if product: - return product - - if row.vendor_code: - product = self.products['vendor_code'].get(row.vendor_code) - if product: - return product - - else: # no cache, must query - - session = orm.object_session(row) - - if row.upc: - product = api.get_product_by_upc(session, row.upc) - if product: - return product - - if row.vendor_code: - product = api.get_product_by_vendor_code(session, row.vendor_code, self.vendor) + def find_product_by_vendor_code(self, session, code): + if hasattr(self, 'products'): + return self.products['vendor_code'].get(code) + else: + return api.get_product_by_upc(session, code, self.vendor) def refresh_row(self, row): """