Untitled
unknown
plain_text
3 years ago
9.2 kB
15
Indexable
public without sharing class B2BCheckoutHelper
{
@AuraEnabled(cacheable=true)
public static Map<String,object> gatherBillingAddress(String cartId)
{
try
{
String accountId = [SELECT accountId FROM WebCart WHERE id = :cartId].accountId;
List<ContactPointAddress> addressList = [SELECT name,street,city,state,country,addressType,postalCode,parent.name FROM contactPointAddress WHERE parentId=:accountId];
List<ContactPointAddress> billingAddress = new List<ContactPointAddress>();
List<ContactPointAddress> shippingAddress = new List<ContactPointAddress>();
Map<String,object> result = new Map<String,Object>();
for(contactPointAddress address: addressList)
{
if(address.addressType == 'Billing')
{
billingAddress.add(address);
}
else if(address.addressType == 'Shipping')
{
shippingAddress.add(address);
}
}
result.put('billingAddress',billingAddress);
result.put('shippingAddress',shippingAddress);
result.put('accountId',accountId);
return result;
}
catch (Exception e) {
throw new AuraHandledException('Gather Billing Address Error:'+e.getMessage());
}
}
@AuraEnabled
public static string insertAddress(Map<String,Object> dataMap)
{
try
{
ContactPointAddress cpa = new ContactPointAddress();
cpa.name = 'Address Entered By User:';
cpa.city = String.valueOf(dataMap.get('city'));
cpa.state = String.valueOf(dataMap.get('state'));
cpa.street= String.valueOf(dataMap.get('street'));
cpa.country = String.valueOf(dataMap.get('country'));
cpa.postalCode = String.valueOf(dataMap.get('postalCode'));
cpa.addressType= 'Shipping';
if(String.valueOf(dataMap.get('saveAddress')) == 'true')
{
cpa.parentId = String.valueOf(dataMap.get('accountId'));
}
insert cpa;
return cpa.id;
}
catch (Exception e) {
throw new AuraHandledException('Insert Address Error:'+e.getMessage());
}
}
@AuraEnabled
public static string updateBillingAddress(String billingAddressId,string accountId,String cartId){
try
{
ContactPointAddress cpa = [SELECT name,street,city,state,country,postalCode FROM contactPointAddress WHERE id=:billingAddressId];
WebCart cart = [SELECT billingCity,billingState,billingStreet,billingCountry,billingPostalCode FROM WebCart WHERE id=:cartId ];
cart.billingStreet = cpa.street;
cart.billingCity = cpa.city;
cart.billingPostalCode = cpa.postalCode;
cart.billingState = cpa.state;
cart.billingCountry = cpa.country;
update cart;
return 'Billing Address updated in cart'+ cartId;
}
catch (Exception e)
{
throw new AuraHandledException('Update billing address failed:'+e.getMessage());
}
}
@AuraEnabled
public static string updateShippingAddress(String shippingAddressId,String accountId,String cartId)
{
try{
ContactPointAddress cpa = [SELECT name,street,city,state,country,postalCode FROM contactPointAddress WHERE id=:shippingAddressId];
CartDeliveryGroup Cgroup = [SELECT deliverToName,deliverTostreet,deliverTocity,deliverTostate,deliverToCountry,deliverToPostalCode FROM cartDeliveryGroup WHERE cartId =:cartId];
Cgroup.deliverToName = cpa.name;
Cgroup.deliverTostreet = cpa.street;
Cgroup.deliverTocity = cpa.city;
Cgroup.deliverTostate = cpa.state;
Cgroup.deliverToCountry = cpa.country;
Cgroup.deliverToPostalCode = cpa.postalCode;
update Cgroup;
return 'Cart Group Update SuccessFull';
}
catch(Exception e)
{
throw new AuraHandledException('Update Shipping Address Failed:'+e.getMessage());
}
}
@AuraEnabled(cacheable= true)
public static Map<String,Object> getCartDetails(String cartId)
{
WebCart cart = [SELECT id,AccountId,Account.name,Account.Phone,billingCity,billingState,billingStreet,billingCountry,billingPostalCode,
(SELECT deliverToName,deliverTostreet,deliverTocity,deliverTostate,deliverToCountry,deliverToPostalCode FROM cartDeliveryGroups)
FROM WebCart WHERE id = :cartId];
/**String accountId = cart.AccountId;
Account account = [SELECT id,name,Phone FROM Account WHERE id =: accountId];
CartDeliveryGroup cgroup = [SELECT deliverToName,deliverTostreet,deliverTocity,deliverTostate,deliverToCountry,deliverToPostalCode FROM cartDeliveryGroup WHERE cartId =:cartId];**/
Map<String,object> billingAddress = new Map<String,Object>();
billingAddress.put('street',cart.billingStreet);
billingAddress.put('city',cart.billingCity);
billingAddress.put('state',cart.billingState);
billingAddress.put('country',cart.billingCountry);
billingAddress.put('postalCode',cart.BillingPostalCode);
Map<string,Object> shippingAddress = new Map<String,Object>();
shippingAddress.put('street',cart.cartDeliveryGroups.get(0).deliverToStreet);
shippingAddress.put('city',cart.cartDeliveryGroups.get(0).deliverToCity);
shippingAddress.put('state',cart.cartDeliveryGroups.get(0).deliverToState);
shippingAddress.put('country',cart.cartDeliveryGroups.get(0).deliverToCountry);
shippingAddress.put('postalCode',cart.cartDeliveryGroups.get(0).deliverToPostalCode);
Map<String,object> accountDetails = new Map<String,Object>();
accountDetails.put('name',cart.Account.name);
accountDetails.put('phone',cart.Account.phone);
accountDetails.put('id',cart.AccountId);
Map<String,Object> result = new Map<String,Object>();
result.put('billingAddress',billingAddress);
result.put('shippingAddress',shippingAddress);
result.put('accountDetails',accountDetails);
return result;
}
@AuraEnabled
public static ConnectApi.CartItemCollection getCartItems(string communityId,String accountId,String cartId)
{
String webStoreId = B2BUtils.resolveCommunityIdToWebstoreId(communityId);
return ConnectApi.Commercecart.getcartItems(webStoreId,accountId,cartId);
}
@AuraEnabled
public static Map<String,Object> billingaddressMap(String cartId)
{
try
{
WebCart cart= [SELECT billingCity,billingState,billingStreet,billingCountry,billingPostalCode FROM WebCart WHERE id=:cartId];
Map<String,Object> billingAddressmap = new Map<String,Object>();
billingAddressMap.put('billingCity',cart.billingCity);
billingAddressMap.put('billingState',cart.billingState);
billingAddressMap.put('billingStreet',cart.billingStreet);
billingAddressMap.put('billingCountry',cart.billingCountry);
billingAddressMap.put('billingPostalCode',cart.billingPostalCode);
return billingAddressMap;
}
catch (Exception e)
{
throw new AuraHandledException(e.getMessage());
}
}
@AuraEnabled
public static Map<String,Object> shippingAddressMap(String cartId){
try
{
CartDeliveryGroup cgroup = [SELECT deliverToName,deliverTostreet,deliverTocity,deliverTostate,deliverToCountry,deliverToPostalCode FROM cartDeliveryGroup WHERE cartId =:cartId];
Map<String,Object> shippingAddressMap = new Map<String,Object>();
shippingAddressMap.put('deliverTostreet',cgroup.deliverTostreet);
shippingAddressMap.put('deliverTocity',cgroup.deliverTocity);
shippingAddressMap.put('deliverTostate',cgroup.deliverTostate);
shippingAddressMap.put('deliverToCountry',cgroup.deliverToCountry);
shippingAddressMap.put('deliverToPostalCode',cgroup.deliverToPostalCode);
return shippingAddressMap;
}
catch (Exception e)
{
throw new AuraHandledException(e.getMessage());
}
}
@AuraEnabled(cacheable=true)
public static string getAddressDetails(String cpaId){
try
{
ContactPointAddress cpa = [SELECT street,city,state,country,postalcode FROM contactPointAddress WHERE id =:cpaId];
String address= cpa.Street +' '+cpa.city+ ' '+cpa.state+' '+cpa.country+' '+cpa.postalcode;
return address;
}
catch (Exception e) {
throw new AuraHandledException(e.getMessage());
}
}
}Editor is loading...