diff --git a/GitVersion.yml b/GitVersion.yml index 6979f05..4387120 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -1,5 +1,5 @@ mode: ContinuousDelivery -next-version: 6.3.2 +next-version: 6.3.3 increment: Patch major-version-bump-message: '\+semver:\s?(breaking|major|release)' minor-version-bump-message: '\+semver:\s?(feat|feature|minor)' diff --git a/src/EasyKeys.Shipping.FedEx.Shipment/Models/ShipmentDetails.cs b/src/EasyKeys.Shipping.FedEx.Shipment/Models/ShipmentDetails.cs index 926924b..5992532 100644 --- a/src/EasyKeys.Shipping.FedEx.Shipment/Models/ShipmentDetails.cs +++ b/src/EasyKeys.Shipping.FedEx.Shipment/Models/ShipmentDetails.cs @@ -92,6 +92,12 @@ public class ShipmentDetails /// public FedExPaymentType PaymentType { get; set; } = FedExPaymentType.Sender; + /// + /// Default payment type would be recipient unless its a COD. + /// Sender,ThirdParty,Recipient,Account,Collect. + /// + public FedExPaymentType CustomsPaymentType { get; set; } = FedExPaymentType.Recipient; + /// /// Collect on delivery is defaulted to false. /// diff --git a/src/EasyKeys.Shipping.FedEx.Shipment/RestApi/Impl/FedExShipmentProvider.cs b/src/EasyKeys.Shipping.FedEx.Shipment/RestApi/Impl/FedExShipmentProvider.cs index 11dc22e..6c2a98a 100644 --- a/src/EasyKeys.Shipping.FedEx.Shipment/RestApi/Impl/FedExShipmentProvider.cs +++ b/src/EasyKeys.Shipping.FedEx.Shipment/RestApi/Impl/FedExShipmentProvider.cs @@ -296,7 +296,8 @@ public async Task CreateShipmentAsync(FedExServiceType serviceTyp }).ToList() }; - switch (shipmentDetails.PaymentType.Name) + // customs payment type + switch (shipmentDetails.CustomsPaymentType.Name) { case "SENDER": shipmentRequest.RequestedShipment.CustomsClearanceDetail.DutiesPayment = new Payment_1 @@ -320,6 +321,29 @@ public async Task CreateShipmentAsync(FedExServiceType serviceTyp } }; break; + + case "THIRD_PARTY": + shipmentRequest.RequestedShipment.ShippingChargesPayment = new Payment + { + PaymentType = PaymentType.THIRD_PARTY, + Payor = new Payor + { + ResponsibleParty = new ResponsiblePartyParty + { + AccountNumber = new PartyAccountNumber + { + Value = shipmentDetails.AccountNumber + } + } + } + }; + break; + default: + shipmentRequest.RequestedShipment.CustomsClearanceDetail.DutiesPayment = new Payment_1 + { + PaymentType = Payment_1PaymentType.RECIPIENT + }; + break; } } @@ -347,6 +371,23 @@ public async Task CreateShipmentAsync(FedExServiceType serviceTyp } }; break; + + case "THIRD_PARTY": + shipmentRequest.RequestedShipment.ShippingChargesPayment = new Payment + { + PaymentType = PaymentType.THIRD_PARTY, + Payor = new Payor + { + ResponsibleParty = new ResponsiblePartyParty + { + AccountNumber = new PartyAccountNumber + { + Value = shipmentDetails.AccountNumber + } + } + } + }; + break; } var token = await _authService.GetTokenAsync(cancellationToken);