Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save adrianmi8/b43c50569d373d83dba7faea8fc36c68 to your computer and use it in GitHub Desktop.
Save adrianmi8/b43c50569d373d83dba7faea8fc36c68 to your computer and use it in GitHub Desktop.
Zenkraft - Create Shipment from Account Object via Trigger - ShipmentService
public class FedexShipmentService {
public static zkfedex__ShipmatePreference__c shipmatePreference {
get;
set;
}
public static BulkShipmentSettings__c settings {
get;
set;
}
public static zkfedex__QueuedShipment__c createQueuedShipment(String bulkShipmentId, Account currentAccount) {
zkfedex__QueuedShipment__c queuedShipment = new zkfedex__QueuedShipment__c();
queuedShipment.zkfedex__BulkShipment__c = bulkShipmentId;
queuedShipment.zkfedex__ShipDate__c = Date.today();
queuedShipment.zkfedex__DropoffType__c = dropoffTypeMap.get(shipmatePreference.zkfedex__DropoffTypeDefault__c);
queuedShipment.zkfedex__LabelImageType__c = shipmatePreference.zkfedex__LabelImageTypeDefault__c;
queuedShipment.zkfedex__Account__c = currentAccount.Id;
queuedShipment.zkfedex__ServiceType__c = 'Domestic: FedEx Ground';
queuedShipment.zkfedex__PackagingType__c = 'Your Packaging';
queuedShipment.zkfedex__WeightDimensionUnits__c = 'LB / IN';
queuedShipment.zkfedex__PaymentType__c = 'Sender'; // Sender queuedShipment.zkfedex__SenderName__c = shipmatePreference.zkfedex__SenderNameDefault__c; queuedShipment.zkfedex__SenderCompany__c = shipmatePreference.zkfedex__CompanyName__c; queuedShipment.zkfedex__SenderPhone__c = shipmatePreference.zkfedex__SenderPhoneDefault__c; queuedShipment.zkfedex__SenderEmail__c = shipmatePreference.zkfedex__SenderEMailDefault__c; queuedShipment.zkfedex__SenderStreet__c = shipmatePreference.zkfedex__ShippingStreet__c; queuedShipment.zkfedex__SenderCity__c = shipmatePreference.zkfedex__ShippingCity__c; queuedShipment.zkfedex__SenderState__c = shipmatePreference.zkfedex__ShippingState__c; queuedShipment.zkfedex__SenderPostalCode__c = shipmatePreference.zkfedex__ShippingPostalCode__c; queuedShipment.zkfedex__SenderCountry__c = shipmatePreference.zkfedex__ShippingCountry__c; // Recipient queuedShipment.zkfedex__RecipientName__c = currentAccount.Name; queuedShipment.zkfedex__RecipientCompany__c = currentAccount.Name; queuedShipment.zkfedex__RecipientPhone__c = currentAccount.Phone; queuedShipment.zkfedex__RecipientEmail__c = currentAccount.Email__c; queuedShipment.zkfedex__RecipientStreet__c = currentAccount.ShippingStreet; queuedShipment.zkfedex__RecipientCity__c = currentAccount.ShippingCity; queuedShipment.zkfedex__RecipientState__c = currentAccount.ShippingState; queuedShipment.zkfedex__RecipientPostalCode__c = currentAccount.ShippingPostalCode; queuedShipment.zkfedex__RecipientCountry__c = currentAccount.ShippingCountry; return queuedShipment; } public static zkfedex__ShipmatePreference__c getShipmatePreference() { return [ SELECT Id, Name, zkfedex__FedExAccountNumber__c, zkfedex__FedExMeterNumber__c, zkfedex__EncryptedFedExMeterNumber__c, zkfedex__SubscriptionDataEncrypted__c, zkfedex__GenericFedExEndUserKey__c, zkfedex__GenericFedExEndUserPassword__c, zkfedex__EncryptedGenericFedExEndUserKey__c, zkfedex__EncryptedGenericFedExEndUserPasswd__c, zkfedex__GenericCredentialsEncrypted__c, zkfedex__CompanyName__c, zkfedex__ShippingStreet__c, zkfedex__ShippingCity__c, zkfedex__ShippingState__c, zkfedex__ShippingPostalCode__c, zkfedex__ShippingCountry__c, zkfedex__ShippingIsResidential__c, zkfedex__BillingStreet__c, zkfedex__BillingCity__c, zkfedex__BillingState__c, zkfedex__BillingPostalCode__c, zkfedex__BillingCountry__c, zkfedex__LabelImageTypeDefault__c, zkfedex__EMailMessageDefault__c, zkfedex__SendEMailNotificationToShipper__c, zkfedex__SendEMailNotificationToRecipient__c, zkfedex__EMailNotifyOnExceptionDefault__c, zkfedex__EMailNotifyOnDeliveryDefault__c, zkfedex__SenderNameDefault__c, zkfedex__SenderEMailDefault__c, zkfedex__SenderPhoneDefault__c, zkfedex__DetailedViewShipmatePreferenceList__c, zkfedex__DetailedViewReUsePackageList__c, zkfedex__AccountIsSetupForSmartPostOutbound__c, zkfedex__AccountIsSetupForSmartPostReturns__c, zkfedex__SmartPostHubId__c, zkfedex__DropoffTypeDefault__c FROM zkfedex__ShipmatePreference__c WHERE Name = :settings.Preference_Name__c LIMIT 1]; } public static Id createBulkShipment() { zkfedex__BulkShipment__c shipment = new zkfedex__BulkShipment__c(); shipment.zkfedex__ShipmatePreference__c = shipmatePreference.Id; insert shipment; return shipment.Id; } public static String processShipments(Id bulkShipmentId) { return zkfedex.BulkShipmentInterface.processBulkShipment(bulkShipmentId); } private static Map<String,String> dropoffTypeMap = new Map<String,String> { 'BUSINESS_SERVICE_CENTER' => 'Business Service Center', 'DROP_BOX' => 'Drop Box', 'REGULAR_PICKUP' => 'Regular Pickup', 'REQUEST_COURIER' => 'Request Courier', 'STATION' => 'Station' };}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment