Last active
November 14, 2017 17:47
-
-
Save adrianmi8/3d6cdf54b087f1b42fb66dad3e1e282f to your computer and use it in GitHub Desktop.
USPS Endicia Calculate Rates - CalculateUSPSRates
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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