mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
[IMP] connector_opencart: when finding partners, search for inactive as well.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user