[IMP] connector_opencart: when finding partners, search for inactive as well.

This commit is contained in:
Jared Kipe
2020-04-28 11:33:24 -07:00
parent 3aa31f8bcb
commit 5cc665df4c

View File

@@ -9,9 +9,6 @@ from odoo.addons.component.core import Component
from odoo.addons.connector.components.mapper import mapping from odoo.addons.connector.components.mapper import mapping
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
import logging
_logger = logging.getLogger(__name__)
class SaleOrderBatchImporter(Component): class SaleOrderBatchImporter(Component):
_name = 'opencart.sale.order.batch.importer' _name = 'opencart.sale.order.batch.importer'
@@ -215,21 +212,17 @@ class SaleOrderImporter(Component):
return self.env['res.partner'].create(values) return self.env['res.partner'].create(values)
def _partner_matches(self, partner, values): def _partner_matches(self, partner, values):
_logger.warn('_partner_matches partner: ' + str(partner) + ' values: ' + str(values))
for key, value in values.items(): for key, value in values.items():
if key in ('active', 'parent_id'): if key in ('active', 'parent_id'):
continue continue
if key == 'state_id': if key == 'state_id':
if value != partner.state_id.id: if value != partner.state_id.id:
_logger.warn(' return false for state_id value: ' + str(value) + ' partner.state_id.id: ' + str(partner.state_id.id))
return False return False
elif key == 'country_id': elif key == 'country_id':
if value != partner.country_id.id: if value != partner.country_id.id:
_logger.warn(' return false for country_id value: ' + str(value) + ' partner.country_id.id: ' + str(partner.country_id.id))
return False return False
elif bool(value) and value != getattr(partner, key): elif bool(value) and value != getattr(partner, key):
_logger.warn(' return false for ' + str(key) + ' : ' + str(value) + ' partner value: ' + str(getattr(partner, key)))
return False return False
return True return True
@@ -282,17 +275,15 @@ class SaleOrderImporter(Component):
} }
def _import_addresses(self): def _import_addresses(self):
record = self.opencart_record
partner_values = self._get_partner_values() partner_values = self._get_partner_values()
partners = self.env['res.partner'].search([ partners = self.env['res.partner'].search([
('email', '=', partner_values['email']), ('email', '=', partner_values['email']),
]) '|', ('active', '=', False), ('active', '=', True),
], order='active DESC, id ASC')
partner = None partner = None
for possible in partners: for possible in partners:
if self._partner_matches(possible, partner_values): if self._partner_matches(possible, partner_values):
_logger.warn('matched partner: ' + str(possible))
partner = possible partner = possible
break break
if not partner and partners: if not partner and partners:
@@ -307,7 +298,6 @@ class SaleOrderImporter(Component):
partner_values['active'] = False partner_values['active'] = False
shipping_partner = self._create_partner(copy(partner_values)) shipping_partner = self._create_partner(copy(partner_values))
else: else:
_logger.warn('same shipping partner')
shipping_partner = partner shipping_partner = partner
invoice_values = self._get_partner_values(info_string='payment_') invoice_values = self._get_partner_values(info_string='payment_')
@@ -317,7 +307,6 @@ class SaleOrderImporter(Component):
# Try to find existing invoice address.... # Try to find existing invoice address....
for possible in partners: for possible in partners:
if self._partner_matches(possible, invoice_values): if self._partner_matches(possible, invoice_values):
_logger.warn('matched invoice partner: ' + str(possible))
invoice_partner = possible invoice_partner = possible
break break
else: else:
@@ -325,10 +314,8 @@ class SaleOrderImporter(Component):
partner_values['active'] = False partner_values['active'] = False
invoice_partner = self._create_partner(copy(invoice_values)) invoice_partner = self._create_partner(copy(invoice_values))
elif self._partner_matches(partner, invoice_values): elif self._partner_matches(partner, invoice_values):
_logger.warn('same invoice partner')
invoice_partner = partner invoice_partner = partner
elif self._partner_matches(shipping_partner, invoice_values): elif self._partner_matches(shipping_partner, invoice_values):
_logger.warn('same invoice shipping partner')
invoice_partner = shipping_partner invoice_partner = shipping_partner
self.partner = partner self.partner = partner