[IMP] delivery_fedex_hibou: support per-package insurance and sig. request

This commit is contained in:
Jared Kipe
2022-01-19 10:27:25 -08:00
parent da1042568e
commit 68c923cbf0
2 changed files with 17 additions and 5 deletions

View File

@@ -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':