Untitled

 avatar
unknown
plain_text
2 years ago
9.2 kB
10
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...