Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save adrianmi8/3d6cdf54b087f1b42fb66dad3e1e282f to your computer and use it in GitHub Desktop.
Save adrianmi8/3d6cdf54b087f1b42fb66dad3e1e282f to your computer and use it in GitHub Desktop.
USPS Endicia Calculate Rates - CalculateUSPSRates
public with sharing class CalculateUSPSRates {
public List<zkusps.ShipmentRate> ratesList {get; set;}
public Account accountRecord {get; set;}
public void CalculateUSPSRates() {
this.accountRecord = [
SELECT Name, Phone, ShippingStreet, ShippingCity,
ShippingPostalCode, ShippingCountry, ShippingState
FROM Account
WHERE Id = :ApexPages.currentPage().getParameters().get('id')
LIMIT 1];
zkusps__EndiciaPreference__c preference = [
SELECT Id, Name,
zkusps__MailingFirstName__c, zkusps__MailingLastName__c,
zkusps__MailingCompanyName__c, zkusps__MailingCity__c,
zkusps__shippingSenderEmailDefault__c, zkusps__shippingSenderPhoneDefault__c,
zkusps__MailingState__c, zkusps__MailingZip4__c,
zkusps__MailingZip5__c, zkusps__shippingSenderNameDefault__c,
zkusps__labelImageTypeDefault__c, zkusps__MailingAddress__c,
zkusps__AccountId__c, zkusps__PassPhraseEncrypt__c
FROM zkusps__EndiciaPreference__c
LIMIT 1];
// 1. zkusps__QueuedShipment__c object
zkusps__QueuedShipment__c queuedShipment = new zkusps__QueuedShipment__c (
zkusps__LabelImageType__c = 'PNG',
zkusps__ServiceType__c = 'Domestic: Priority',
zkusps__PackagingType__c = 'Parcel',
zkusps__Account__c = accountRecord.Id,
// sender info
zkusps__SenderName__c = preference.zkusps__MailingFirstName__c,
zkusps__SenderCity__c = preference.zkusps__MailingCity__c,
zkusps__SenderCompany__c = preference.zkusps__MailingCompanyName__c,
zkusps__SenderEmail__c = preference.zkusps__shippingSenderEmailDefault__c,
zkusps__SenderPhone__c = preference.zkusps__shippingSenderPhoneDefault__c,
zkusps__SenderState__c = preference.zkusps__MailingState__c,
zkusps__SenderStreet__c = preference.zkusps__MailingAddress__c,
zkusps__SenderPostalCode__c = preference.zkusps__MailingZip5__c,
// recipient info
zkusps__RecipientName__c = accountRecord.Name,
zkusps__RecipientCity__c = accountRecord.ShippingCity,
zkusps__RecipientCompany__c = accountRecord.Name,
zkusps__RecipientCountry__c = accountRecord.ShippingCountry,
zkusps__RecipientPhone__c = accountRecord.Phone,
zkusps__RecipientState__c = accountRecord.ShippingState,
zkusps__RecipientStreet__c = accountRecord.ShippingStreet,
zkusps__RecipientPostalCode__c = accountRecord.ShippingPostalCode
);
// 2. zkusps__QueuedPackage__c object
zkusps__QueuedPackage__c queuedPackage = new zkusps__QueuedPackage__c (
zkusps__DeclaredValue__c = 1,
zkusps__WeightPounds__c = 0,
zkusps__WeightOunces__c = 2,
zkusps__Height__c = 1,
zkusps__Length__c = 1,
zkusps__Width__c = 1,
zkusps__QueuedShipment__c = queuedShipment.Id
);
List<zkusps__QueuedPackage__c> queuedPackages = new List<zkusps__QueuedPackage__c>();
queuedPackages.add(queuedPackage);
zkusps__QueuedShipmentSpecialServices__c specialServices = new zkusps__QueuedShipmentSpecialServices__c();
// validation
this.ratesList = zkusps.BulkShipmentInterface.calculateRates(queuedShipment, queuedPackages, specialServices, preference);
}
public Pagereference addCost() {
String serviceTypeValue = ApexPages.currentPage().getParameters().get('ServiceType');
String costValue = ApexPages.currentPage().getParameters().get('Cost');
accountRecord.Service_Type__c = serviceTypeValue;
accountRecord.Cost__c = Decimal.valueof(costValue);
update accountRecord;
return new Pagereference('/' + accountRecord.id);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment