mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
[IMP] delivery_fedex_hibou: support per-package insurance and sig. request
This commit is contained in:
@@ -311,7 +311,8 @@ class DeliveryFedex(models.Model):
|
||||
# package_length=packaging.length,
|
||||
sequence_number=sequence,
|
||||
ref=('%s-%d' % (order_name, sequence)),
|
||||
insurance=superself.get_insurance_value(picking=picking, package=package)
|
||||
insurance=superself.get_insurance_value(picking=picking, package=package),
|
||||
signature_required=superself.get_signature_required(picking=picking, package=package)
|
||||
)
|
||||
srm.set_master_package(net_weight, package_count, master_tracking_id=master_tracking_id)
|
||||
request = srm.process_shipment()
|
||||
@@ -385,7 +386,8 @@ class DeliveryFedex(models.Model):
|
||||
# package_width=packaging.width,
|
||||
# package_length=packaging.length,
|
||||
ref=order_name,
|
||||
insurance=superself.get_insurance_value(picking=picking, package=picking_packages[:1])
|
||||
insurance=superself.get_insurance_value(picking=picking, package=picking_packages[:1]),
|
||||
signature_required=superself.get_signature_required(picking=picking, package=picking_packages[:1])
|
||||
)
|
||||
srm.set_master_package(net_weight, 1)
|
||||
|
||||
@@ -475,6 +477,7 @@ class DeliveryFedex(models.Model):
|
||||
meter_number = superself._get_fedex_meter_number(order=order, picking=picking)
|
||||
order_name = superself.get_order_name(order=order, picking=picking)
|
||||
insurance_value = superself.get_insurance_value(order=order, picking=picking, package=package)
|
||||
signature_required = superself.get_signature_required(order=order, picking=picking, package=package)
|
||||
residential = self._get_fedex_recipient_is_residential(recipient)
|
||||
date_planned = fields.Datetime.now()
|
||||
if self.env.context.get('date_planned'):
|
||||
@@ -558,7 +561,8 @@ class DeliveryFedex(models.Model):
|
||||
# package_length=packaging.length,
|
||||
sequence_number=1,
|
||||
ref=('%s-%d' % (order_name, 1)),
|
||||
insurance=insurance_value
|
||||
insurance=insurance_value,
|
||||
signature_required=signature_required
|
||||
)
|
||||
else:
|
||||
# deliver all together...
|
||||
@@ -576,7 +580,8 @@ class DeliveryFedex(models.Model):
|
||||
# po_number=po_number,
|
||||
# dept_number=dept_number,
|
||||
ref=('%s-%d' % (order_name, 1)),
|
||||
insurance=insurance_value
|
||||
insurance=insurance_value,
|
||||
signature_required=signature_required
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ class FedexRequest(fedex_request.FedexRequest):
|
||||
self.RequestedShipment.Recipient.Contact = Contact
|
||||
self.RequestedShipment.Recipient.Address = Address
|
||||
|
||||
def add_package(self, weight_value, sequence_number=False, mode='shipping', ref=False, insurance=False):
|
||||
def add_package(self, weight_value, sequence_number=False, mode='shipping', ref=False, insurance=False, signature_required=False):
|
||||
"""
|
||||
Adds ref type of object to include.
|
||||
:param weight_value: default
|
||||
@@ -89,6 +89,7 @@ class FedexRequest(fedex_request.FedexRequest):
|
||||
:param mode: default
|
||||
:param ref: NEW add CUSTOMER_REFERENCE object
|
||||
:param insurance: NEW add Insurance amount
|
||||
:param signature_required: NEW add signature required
|
||||
:return:
|
||||
"""
|
||||
package = self.client.factory.create('RequestedPackageLineItem')
|
||||
@@ -109,6 +110,12 @@ class FedexRequest(fedex_request.FedexRequest):
|
||||
insured.Currency = 'USD'
|
||||
package.InsuredValue = insured
|
||||
|
||||
special_service = self.client.factory.create("PackageSpecialServicesRequested")
|
||||
signature_detail = self.client.factory.create("SignatureOptionDetail")
|
||||
signature_detail.OptionType = 'DIRECT' if signature_required else 'NO_SIGNATURE_REQUIRED'
|
||||
special_service.SignatureOptionDetail = signature_detail
|
||||
package.SpecialServicesRequested = special_service
|
||||
|
||||
package.PhysicalPackaging = 'BOX'
|
||||
package.Weight = package_weight
|
||||
if mode == 'rating':
|
||||
|
||||
Reference in New Issue
Block a user