mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
[IMP] delivery_stamps: add GlobalPost methods and APO/FPO
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
{
|
||||
'name': 'Stamps.com (USPS) Shipping',
|
||||
'summary': 'Send your shippings through Stamps.com and track them online.',
|
||||
'version': '15.0.1.0.0',
|
||||
'version': '15.0.1.1.0',
|
||||
'author': "Hibou Corp.",
|
||||
'category': 'Warehouse',
|
||||
'license': 'OPL-1',
|
||||
|
||||
@@ -28,6 +28,21 @@ PATTERN_ID = r"{hex}{{8}}-{hex}{{4}}-{hex}{{4}}-{hex}{{4}}-{hex}{{12}}".format(
|
||||
RE_TRANSACTION_ID = compile(PATTERN_ID)
|
||||
|
||||
|
||||
# class LogPlugin(MessagePlugin):
|
||||
# def __init__(self):
|
||||
# self.logger = getLogger('stamps2')
|
||||
# self.last_sent_raw = None
|
||||
# self.last_received_raw = None
|
||||
#
|
||||
# def sending(self, context):
|
||||
# self.last_sent_raw = str(context.envelope)
|
||||
# self.logger.warning(self.last_sent_raw)
|
||||
#
|
||||
# def received(self, context):
|
||||
# self.last_received_raw = str(context.reply)
|
||||
# self.logger.warning(self.last_received_raw)
|
||||
|
||||
|
||||
class AuthenticatorPlugin(MessagePlugin):
|
||||
"""Handle message authentication.
|
||||
|
||||
@@ -90,6 +105,8 @@ class BaseService(object):
|
||||
credentials.Username = configuration.username
|
||||
credentials.Password = configuration.password
|
||||
self.plugin = AuthenticatorPlugin(credentials, self.client)
|
||||
# put in plugins=[] as well
|
||||
# self.logplugin = LogPlugin()
|
||||
self.client.set_options(plugins=[self.plugin], port=configuration.port)
|
||||
self.logger = getLogger("stamps")
|
||||
|
||||
|
||||
@@ -14,6 +14,12 @@ from .api.services import StampsService
|
||||
|
||||
_logger = getLogger(__name__)
|
||||
|
||||
STAMPS_US_APO_FPO_STATE_CODES = (
|
||||
'AE',
|
||||
'AP',
|
||||
'AA',
|
||||
)
|
||||
|
||||
STAMPS_PACKAGE_TYPES = [
|
||||
'Unknown',
|
||||
'Postcard',
|
||||
@@ -52,17 +58,23 @@ class StockPackageType(models.Model):
|
||||
class ProviderStamps(models.Model):
|
||||
_inherit = 'delivery.carrier'
|
||||
|
||||
delivery_type = fields.Selection(selection_add=[('stamps', 'Stamps.com (USPS)')],
|
||||
delivery_type = fields.Selection(selection_add=[('stamps', 'Stamps.com')],
|
||||
ondelete={'stamps': 'set default'})
|
||||
|
||||
stamps_username = fields.Char(string='Stamps.com Username', groups='base.group_system')
|
||||
stamps_password = fields.Char(string='Stamps.com Password', groups='base.group_system')
|
||||
|
||||
stamps_service_type = fields.Selection([('US-FC', 'First-Class'),
|
||||
('US-FCI', 'First-Class International'),
|
||||
('US-PM', 'Priority'),
|
||||
('US-PMI', 'Priority Mail International'),
|
||||
('US-EMI', ' Priority Mail Express International'),
|
||||
stamps_service_type = fields.Selection([('US-FC', 'USPS First-Class'),
|
||||
('US-PM', 'USPS Priority'),
|
||||
('US-XM', 'USPS Express'),
|
||||
('US-MM', 'USPS Media Mail'),
|
||||
('US-FCI', 'USPS First-Class International'),
|
||||
('US-PMI', 'USPS Priority International'),
|
||||
('US-EMI', 'USPS Express International'),
|
||||
('SC-GPE', 'GlobalPost Economy'),
|
||||
('SC-GPP', 'GlobalPost Standard'),
|
||||
('SC-GPESS', 'GlobalPost SmartSaver Economy'),
|
||||
('SC-GPPSS', 'GlobalPost SmartSaver Standard'),
|
||||
],
|
||||
required=True, string="Service Type", default="US-PM")
|
||||
stamps_default_packaging_id = fields.Many2one('stock.package.type', string='Default Package Type')
|
||||
@@ -79,7 +91,8 @@ class ProviderStamps(models.Model):
|
||||
('AZpl', 'AZPL'),
|
||||
('BZpl', 'BZPL'),
|
||||
],
|
||||
required=True, string="Image Type", default="Pdf")
|
||||
required=True, string="Image Type", default="Pdf",
|
||||
help='Generally PDF or ZPL are the great options.')
|
||||
stamps_addon_sc = fields.Boolean(string='Add Signature Confirmation')
|
||||
stamps_addon_dc = fields.Boolean(string='Add Delivery Confirmation')
|
||||
stamps_addon_hp = fields.Boolean(string='Add Hidden Postage')
|
||||
@@ -315,8 +328,9 @@ class ProviderStamps(models.Model):
|
||||
return result
|
||||
return result
|
||||
|
||||
def _stamps_needs_customs(self, from_partner, to_partner):
|
||||
return from_partner.country_id.code != to_partner.country_id.code
|
||||
def _stamps_needs_customs(self, from_partner, to_partner, picking=None):
|
||||
return from_partner.country_id.code != to_partner.country_id.code or \
|
||||
(to_partner.country_id.code == 'US' and to_partner.state_id.code in STAMPS_US_APO_FPO_STATE_CODES)
|
||||
|
||||
def stamps_send_shipping(self, pickings):
|
||||
res = []
|
||||
@@ -331,7 +345,7 @@ class ProviderStamps(models.Model):
|
||||
company, from_partner, to_partner = self._stamps_get_addresses_for_picking(picking)
|
||||
|
||||
customs = None
|
||||
if self._stamps_needs_customs(from_partner, to_partner):
|
||||
if self._stamps_needs_customs(from_partner, to_partner, picking=picking):
|
||||
customs = service.create_customs()
|
||||
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user