5310 lines
363 KiB
OpenEdge ABL
5310 lines
363 KiB
OpenEdge ABL
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* This class is handle for all Aura Component's Controller.
|
|
* Shopify API Documentation: https://shopify.dev/docs/admin-api/rest/reference
|
|
* Create Shopify Store: https://www.shopify.com/signup?itcat=identity&itterm=create-new-store
|
|
* Shopify API Release 2020: https://www.shopify.in/partners/blog/shopify-api-release-january-2020
|
|
* What is Person Account in Salesforce ? https://help.salesforce.com/articleView?id=account_person.htm&type=5
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
* @author Sumit <sumit@hicShopify.com>
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
*/
|
|
|
|
public with sharing class AddDeleteController {
|
|
|
|
//Wrapper class for field mapping
|
|
public class FieldWrapper{
|
|
|
|
@AuraEnabled
|
|
public String filedlabel{get;set;}
|
|
|
|
@AuraEnabled
|
|
public String filedApiName{get;set;}
|
|
|
|
@AuraEnabled
|
|
public String dataType{get;set;}
|
|
}
|
|
//Use @AuraEnabled to enable client- and server-side access to the method
|
|
@AuraEnabled
|
|
public static String getUserName() {
|
|
return userinfo.getName();
|
|
}
|
|
|
|
/**************************************getSampeledata*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Use for get all sample records from the Shopify's store with limit of 5 in each recoord
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static list<string> getSampeledata(String store){
|
|
list<string> listofallsampledata = new list<string>();
|
|
List<HIC_ShopifySync__HIC_Configuration__c > configurationList = new List<HIC_ShopifySync__HIC_Configuration__c >();
|
|
String query = 'Select '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c, name, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Order_Sync__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__ProductVariantBatchCompleted__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999';
|
|
configurationList = database.query(query);
|
|
System.debug('configurationList-'+configurationList);
|
|
listofallsampledata = getlistofobjecforsample('products.json',configurationList,listofallsampledata);
|
|
listofallsampledata = getlistofobjecforsample('customers.json',configurationList,listofallsampledata);
|
|
|
|
|
|
if(configurationList[0].HIC_ShopifySync__Collection_Sync__c){
|
|
listofallsampledata = getlistofobjecforsample('custom_collections.json',configurationList,listofallsampledata);
|
|
}else{
|
|
listofallsampledata.add('null');
|
|
}
|
|
if(configurationList[0].HIC_ShopifySync__Order_Sync__c == True ){
|
|
listofallsampledata = getlistofobjecforsample('orders.json',configurationList,listofallsampledata);
|
|
}else{
|
|
listofallsampledata.add('null');
|
|
}
|
|
if(configurationList[0].HIC_ShopifySync__Draft_Order_Sync__c ){
|
|
listofallsampledata = getlistofobjecforsample('draft_orders.json',configurationList,listofallsampledata);
|
|
}else{
|
|
listofallsampledata.add('null');
|
|
}
|
|
if(configurationList[0].HIC_ShopifySync__Inventory_Location_Sync__c ){
|
|
listofallsampledata = getlistofobjecforsample('locations.json',configurationList,listofallsampledata);
|
|
}else{
|
|
listofallsampledata.add('null');
|
|
}
|
|
|
|
if(!listofallsampledata.isEmpty()){
|
|
return listofallsampledata;
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**************************************getlistofobjecforsample*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Use for get all sample records from the Shopify's store with limit of 5 in each recoord
|
|
* @param String objectname - Shopify's Entity Name (Oject Name)
|
|
* @param list<HIC_ShopifySync__HIC_Configuration__c> configurationList - ListofConfigurationSettings
|
|
* @param list<String> listofallsampledata - list of all sample records
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static list<String> getlistofobjecforsample(String objectname,list<HIC_ShopifySync__HIC_Configuration__c> configurationList, list<String> listofallsampledata){
|
|
String JSONbody;
|
|
|
|
if(configurationList.isEmpty()) return null;
|
|
JSONbody = HIC_ShopifyUtility.fetchAllDataUsingId(objectname+'?limit=5',configurationList);
|
|
|
|
if((JSONbody == '' || JSONbody == null || JSONbody == '{}') ) {
|
|
listofallsampledata.add('null');
|
|
}else{
|
|
Map<String, Object> meta = (Map<String, Object>) JSON.deserializeUntyped(JSONbody);
|
|
if(!meta.isEmpty() && meta.containsKey(objectname.remove('.json'))){
|
|
List<Object> objectList = (List<Object>) meta.get(objectname.remove('.json'));
|
|
|
|
|
|
if((objectList.isEmpty() || objectList == null ) && objectname == 'custom_collections.json'){
|
|
JSONbody = HIC_ShopifyUtility.fetchAllDataUsingId('smart_collections.json?limit=5',configurationList);
|
|
if((JSONbody == '' || JSONbody == null || JSONbody == '{}') ) {
|
|
listofallsampledata.add('null');
|
|
return listofallsampledata;
|
|
}else{
|
|
Map<String, Object> metanew = (Map<String, Object>) JSON.deserializeUntyped(JSONbody);
|
|
if(!meta.isEmpty() && metanew.containsKey('smart_collections')){
|
|
objectList = (List<Object>) metanew.get('smart_collections');
|
|
}
|
|
}
|
|
}
|
|
if(!objectList.isEmpty() && objectList != null ){
|
|
listofallsampledata.add(JSON.serialize(objectList));
|
|
}else{
|
|
listofallsampledata.add('null');
|
|
}
|
|
}
|
|
}
|
|
return listofallsampledata;
|
|
}
|
|
|
|
/**************************************getusertimezone*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Use for get user time zone
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static string getusertimezone(){
|
|
TimeZone tz = UserInfo.getTimeZone();
|
|
String GMTValue = tz.getDisplayName();
|
|
return UserInfo.getTimeZone().getDisplayName().trim().substring(4,7);
|
|
|
|
}
|
|
|
|
/**************************************getListofLogs*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of all Shopify Logs records from Salesforce
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled()
|
|
public static List<HIC_ShopifySync__Shopify_Log__c> getListofLogs(){
|
|
List<HIC_ShopifySync__Shopify_Log__c> listoflogs = new List<HIC_ShopifySync__Shopify_Log__c>();
|
|
listoflogs = [select id,name,HIC_ShopifySync__Error_id__c,Createddate,LastModifieddate,HIC_ShopifySync__Shopify_Id__c,HIC_ShopifySync__Is_Webhook__c,HIC_ShopifySync__Info__c,HIC_ShopifySync__Second_Info__c,HIC_ShopifySync__Third_Info__c,HIC_ShopifySync__Store__c from HIC_ShopifySync__Shopify_Log__c WITH SECURITY_ENFORCED order by createdDate desc Limit 2000];
|
|
|
|
if(!listoflogs.isempty()){
|
|
Map<String, Schema.SObjectType> sObjectMap = Schema.getGlobalDescribe();
|
|
Map<String,String> mapofObjectApivsLabel = new Map<String,String>();
|
|
String labelobj = '';
|
|
for(HIC_ShopifySync__Shopify_Log__c obj : listoflogs){
|
|
labelobj = '';
|
|
if(String.isNotBlank(obj.name)){
|
|
if(mapofObjectApivsLabel.containskey(obj.name)){
|
|
obj.name = mapofObjectApivsLabel.get(obj.name);
|
|
}else if(sObjectMap.containskey(obj.name)){
|
|
labelobj = sObjectMap.get(obj.name).getDescribe().getLabel();
|
|
mapofObjectApivsLabel.put(obj.name,labelobj);
|
|
obj.name = labelobj;
|
|
}
|
|
}
|
|
}
|
|
system.debug('listoflogs--->'+listoflogs);
|
|
return listoflogs;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// wrapper class use for Shopify Logs
|
|
public class displaylogwrapper{
|
|
@AuraEnabled
|
|
public list<HIC_ShopifySync__Shopify_Log__c> listoflogs {get;set;}
|
|
|
|
@AuraEnabled
|
|
public String usertimezone {get;set;}
|
|
}
|
|
|
|
|
|
/**************************************saveCurrencyISOCode*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Currency ISOCode Selected from User
|
|
* @param String CurrencyISOCodeValue - CurrencyISOCode
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveCurrencyISOCode(String CurrencyISOCodeValue){
|
|
system.debug('CurrencyISOCodeValue -- '+CurrencyISOCodeValue);
|
|
String currencyvalue;
|
|
Boolean Ischanged = false;
|
|
String store = 'Default';
|
|
if(CurrencyISOCodeValue == null || CurrencyISOCodeValue == '') return true;
|
|
|
|
map<string,object> mapofcurrencyvalue = (map<string,object>) JSON.deserializeUntyped(CurrencyISOCodeValue);
|
|
if( !mapofcurrencyvalue.isEmpty() && mapofcurrencyvalue != null && mapofcurrencyvalue.containskey('CurrencyISOCode') && mapofcurrencyvalue.containskey('IsChanged') ){
|
|
currencyvalue = String.valueof(mapofcurrencyvalue.get('CurrencyISOCode'));
|
|
Ischanged = boolean.valueof(mapofcurrencyvalue.get('IsChanged'));
|
|
store = String.valueof(mapofcurrencyvalue.get('store'));
|
|
}
|
|
Boolean multiCurrencyEnabled = true;
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c > currencyMappingList = new List<HIC_ShopifySync__HIC_Field_Mapping__c >();
|
|
String query = '';
|
|
String CurrencyShopifyFieldValue = '';
|
|
if(multiCurrencyEnabled){
|
|
//Update Currency
|
|
if(Ischanged){
|
|
updateIschangeCurrencyconfigupdate(store);
|
|
}
|
|
query = ' select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__Store_External_ID__c,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c , HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where ' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +'= \'CurrencyISOCODE\' AND ' +CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999';
|
|
currencyMappingList = database.query(query);
|
|
if(currencyvalue == null || currencyvalue == '') return true;
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c allcurrency : currencyMappingList){
|
|
allcurrency.Id = null;
|
|
allcurrency.HIC_ShopifySync__Shopify_Fields__c = currencyvalue ;
|
|
|
|
allcurrency.HIC_ShopifySync__Store_External_ID__c = store+allcurrency.HIC_ShopifySync__External_ID__c;
|
|
|
|
}
|
|
try{
|
|
//update Configuration
|
|
upsert currencyMappingList HIC_ShopifySync__Store_External_ID__c ;
|
|
return true;
|
|
}catch(exception e){
|
|
return false;
|
|
}
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/**************************************updateIschangeCurrencyconfigupdate*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Update Currency into the configuration
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static void updateIschangeCurrencyconfigupdate(String store){
|
|
List<HIC_ShopifySync__HIC_Configuration__c> config = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__IsCurrencyChanged__c,name','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999');
|
|
if(config.isEmpty()) return;
|
|
config[0].HIC_ShopifySync__IsCurrencyChanged__c = true;
|
|
try{
|
|
upsert config name ;
|
|
}catch(exception e){
|
|
}
|
|
}
|
|
|
|
/**************************************getlistofCurrencyISOCode*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get List of Currency from Salesforce
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static list<String> getlistofCurrencyISOCode(String store){
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c > currencyMappingList = new List<HIC_ShopifySync__HIC_Field_Mapping__c >();
|
|
try{
|
|
Boolean multiCurrencyEnabled = Schema.getGlobalDescribe().containsKey('CurrencyType');
|
|
list<String> ListofcurrncyvalueAndValue = new list<String>();
|
|
|
|
String query = ' select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c,HIC_ShopifySync__GQL_Field_API__c, HIC_ShopifySync__Nested__c , HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__HIC_Field_Mapping__c')+ ' = \'order\' And ' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +'= \'CurrencyISOCODE\' And '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999';
|
|
currencyMappingList = database.query(query);
|
|
if(currencyMappingList.isEmpty()){
|
|
currencyMappingList.add(processFieldMappingSobjectWithAllFields('Opportunity','CurrencyISOCODE','','',true,false,'PICKLIST','string',store));
|
|
currencyMappingList.add(processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','','',true,false,'PICKLIST','string',store));
|
|
currencyMappingList.add(processFieldMappingSobjectWithAllFields('DraftOrder','CurrencyISOCODE','','',true,false,'PICKLIST','string',store));
|
|
currencyMappingList.add(processFieldMappingSobjectWithAllFields('Product2','CurrencyISOCODE','','',true,false,'PICKLIST','string',store));
|
|
upsert currencyMappingList HIC_ShopifySync__Store_External_ID__c;
|
|
}
|
|
if(multiCurrencyEnabled){
|
|
|
|
String ListType = 'List<CurrencyType>';
|
|
List<sobject> listOfAllCurrencyCode = (List<SObject>)Type.forName(ListType).newInstance();
|
|
list<CurrencyISOList> Listofcurrency = new list<CurrencyISOList>();
|
|
listOfAllCurrencyCode = database.query('SELECT id,ISOCode FROM CurrencyType WHERE IsActive=TRUE WITH SECURITY_ENFORCED limit 999');
|
|
for(sobject obj1 : listOfAllCurrencyCode){
|
|
CurrencyISOList CurrencyWrapper = new CurrencyISOList();
|
|
CurrencyWrapper.ISOCode = String.valueof(obj1.get('ISOCode'));
|
|
Listofcurrency.add(CurrencyWrapper);
|
|
}
|
|
|
|
|
|
if(currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != null && currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != ''){
|
|
ListofcurrncyvalueAndValue.add(currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c);
|
|
}else{
|
|
ListofcurrncyvalueAndValue.add(UserInfo.getDefaultCurrency());
|
|
}
|
|
|
|
ListofcurrncyvalueAndValue.add(JSON.serialize(Listofcurrency));
|
|
|
|
return ListofcurrncyvalueAndValue;
|
|
|
|
|
|
|
|
}else{
|
|
if( !currencyMappingList.isEmpty() && currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != null && currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != ''){
|
|
ListofcurrncyvalueAndValue.add(currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c);
|
|
}else{
|
|
ListofcurrncyvalueAndValue.add(UserInfo.getDefaultCurrency());
|
|
}
|
|
|
|
ListofcurrncyvalueAndValue.add('');
|
|
|
|
return ListofcurrncyvalueAndValue;
|
|
}
|
|
}catch(Exception e){
|
|
|
|
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
//Wrapper list for Currency
|
|
public class CurrencyISOList{
|
|
@AuraEnabled
|
|
public String ISOCode;
|
|
}
|
|
|
|
|
|
/**************************************Deletesitefromconfig*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Delete Site URL From Configuration
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean Deletesitefromconfig(){
|
|
List<HIC_ShopifySync__Configuration__c> config = new List<HIC_ShopifySync__Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__Salesforce_Site_URL__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
if(config.isEmpty()) return false;
|
|
|
|
if(config[0].HIC_ShopifySync__Salesforce_Site_URL__c != null && config[0].HIC_ShopifySync__Salesforce_Site_URL__c != ''){
|
|
config[0].HIC_ShopifySync__Salesforce_Site_URL__c = null;
|
|
}
|
|
|
|
try{
|
|
database.update(config) ;
|
|
return true;
|
|
}catch(exception e){
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
/**************************************CheckSitefromConfiguration*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get last saved Salesforce Site URL in Configuration
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static string CheckSitefromConfiguration(){
|
|
List<HIC_ShopifySync__Configuration__c> config = new List<HIC_ShopifySync__Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__Salesforce_Site_URL__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
if(config.isEmpty()) return 'false';
|
|
|
|
if(config[0].HIC_ShopifySync__Salesforce_Site_URL__c != null && config[0].HIC_ShopifySync__Salesforce_Site_URL__c != '') {
|
|
return config[0].HIC_ShopifySync__Salesforce_Site_URL__c;
|
|
} else{
|
|
return 'false';
|
|
}
|
|
|
|
}
|
|
|
|
/**************************************savesiteurlconfig*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Salesforce's Site URL into Configuration settings
|
|
* @param String siteurl - Salesforce's Site URl Selected by User
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean savesiteurlconfig(String siteurl){
|
|
List<HIC_ShopifySync__Configuration__c> config = new List<HIC_ShopifySync__Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__Salesforce_Site_URL__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
if(config.isEmpty()) return false;
|
|
config[0].HIC_ShopifySync__Salesforce_Site_URL__c = siteurl;
|
|
try{
|
|
upsert config name ;
|
|
return true;
|
|
}catch(exception e){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**************************************batchabortedconfigupdate*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Update Configuration When Batch is Abort or get Any error on the Batch
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean batchabortedconfigupdate(){
|
|
List<HIC_ShopifySync__Configuration__c> config = new List<HIC_ShopifySync__Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__IsCurrencyChanged__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
if(config.isEmpty()) return false;
|
|
config[0].HIC_ShopifySync__BatchisAborted__c = true;
|
|
try{
|
|
upsert config name ;
|
|
return true;
|
|
}catch(exception e){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************updateconfigurationpbatchprocessingfield*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Update Configuration When Batch Processig is completed
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean updateconfigurationpbatchprocessingfield(String store){
|
|
List<HIC_ShopifySync__HIC_Configuration__c> config = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__BatchisAborted__c,name ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999');
|
|
if(config.isempty()) return false;
|
|
config[0].HIC_ShopifySync__Batch_Is_Processing__c = false;
|
|
config[0].HIC_ShopifySync__BatchisAborted__c = false;
|
|
config[0].HIC_ShopifySync__IsCurrencyChanged__c = false;
|
|
try{
|
|
upsert config name ;
|
|
return true;
|
|
}catch(exception e){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************returnDomainUrl*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Salesforce Base URl for Authentication
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static string returnDomainUrl(){
|
|
return URL.getSalesforceBaseUrl().toExternalForm();
|
|
}
|
|
|
|
|
|
/**************************************CheckSiteClassandPageAccess*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Check package class access in Site User
|
|
* Apex class Name: AuthenticateAllApexClass
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean CheckSiteClassandPageAccess(String Guestuserid){
|
|
|
|
List<SObject> siteList = new List<SObject>();
|
|
list<SiteWrapper> listofsitewrapper = new list<SiteWrapper>();
|
|
siteList = database.query('SELECT '+Checkaccessibility.isAccessible('GuestUserId, Name,MasterLabel, Subdomain, OptionsRequireHttps, UrlPathPrefix', 'Site') +' FROM Site WHERE '+Checkaccessibility.isAccessible('Status','Site') + ' = \'Active\' and '+Checkaccessibility.isAccessible('GuestUserId','Site') + ' = \''+Guestuserid+'\' Limit 1');
|
|
|
|
if(!Test.isRunningTest()){
|
|
if(siteList.isEmpty()) return false;
|
|
}
|
|
|
|
|
|
boolean SiteAccess = false;
|
|
list<Apexclass> listofApexclass = new list<Apexclass>();
|
|
list<Apexclass> listofAllApexclass = new list<Apexclass>();
|
|
list<Apexpage> listofApexPage = new list<Apexpage>();
|
|
list<Apexpage> listofALlApexPage = new list<Apexpage>();
|
|
list<user> listofuser = new list<user>();
|
|
|
|
Integer NumberOfApexClass =0;
|
|
Integer NumberOfApexPage=0;
|
|
|
|
|
|
listofuser = [select id,profileid from user where usertype= 'Guest' and id =: Guestuserid WITH SECURITY_ENFORCED];
|
|
if(!listofuser.isEmpty()){
|
|
String profileid = listofuser[0].profileid;
|
|
NumberOfApexClass = Integer.valueof(System.Label.NumberofApexClasses);
|
|
|
|
listofApexclass = [SELECT NamespacePrefix, Name FROM ApexClass WHERE Id IN (SELECT SetupEntityId FROM SetupEntityAccess WHERE Parent.Profileid =: profileid ) and NamespacePrefix = 'HIC_ShopifySync' and name = 'AuthenticateAllApexClass' WITH SECURITY_ENFORCED limit 1 ];
|
|
if(!listofApexclass.isEmpty() && listofApexclass != null ){
|
|
return true;
|
|
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
/**************************************CreateAuthenticateURL*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Create RemoteSite Setting for Authentication URL
|
|
* https://test.salesforce.com
|
|
* https://login.salesforce.com
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static void CreateAuthenticateURL(){
|
|
Organization orgRecord;
|
|
String URL = '';
|
|
if(Schema.sObjectType.organization.isAccessible() && Schema.sObjectType.organization.fields.issandbox.isAccessible() && Schema.sObjectType.organization.fields.id.isAccessible() ){
|
|
orgRecord = [select id,issandbox from organization LIMIT 1];
|
|
if(orgRecord.issandbox){
|
|
URL = 'https://test.salesforce.com';
|
|
}else{
|
|
URL = 'https://login.salesforce.com';
|
|
}
|
|
}
|
|
if(URL != ''){
|
|
if(!CheckingRemotesiteExistence(URL)){
|
|
createRemoteSiteSettings(URL);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/**************************************createRemoteSiteSettings*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Create RemoteSite Setting for Authentication URL
|
|
* @param String URL - URL for Create RemoteSite Setting
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static void createRemoteSiteSettings(String URL){
|
|
try{
|
|
if(URL == null || URL == '' || CheckingRemotesiteExistence(URL))return;
|
|
MetadataServiceNew.MetadataPort service = createService();
|
|
MetadataServiceNew.RemoteSiteSetting remoteSiteSettings = new MetadataServiceNew.RemoteSiteSetting();
|
|
remoteSiteSettings.fullName = 'HICShopifysyncmadeeasy'+DateTime.now().getTime();
|
|
remoteSiteSettings.url = URL;
|
|
remoteSiteSettings.description='HIC Shopify Made Easy';
|
|
remoteSiteSettings.isActive=true;
|
|
remoteSiteSettings.disableProtocolSecurity=false;
|
|
if(!Test.isRunningTest()){
|
|
MetadataServiceNew.AsyncResult[] results = service.create(new List<MetadataServiceNew.Metadata> { remoteSiteSettings });
|
|
MetadataServiceNew.AsyncResult[] checkResults = service.checkStatus(new List<string> {string.ValueOf(results[0].Id)});
|
|
}
|
|
}catch(Exception e){
|
|
|
|
}
|
|
}
|
|
|
|
/**************************************createToolingRemoteSiteSettings*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Create RemoteSite Setting for Tooling API URL
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String createToolingRemoteSiteSettings(){
|
|
String SFdomainUrl = URL.getSalesforceBaseUrl().toExternalForm();
|
|
if(CheckingRemotesiteExistence(SFdomainUrl)) return 'true';
|
|
try{
|
|
MetadataServiceNew.MetadataPort service = createService();
|
|
MetadataServiceNew.RemoteSiteSetting remoteSiteSettings = new MetadataServiceNew.RemoteSiteSetting();
|
|
remoteSiteSettings.fullName = 'HICShopifysyncmadeeasy'+DateTime.now().getTime();
|
|
remoteSiteSettings.url = SFdomainUrl;
|
|
remoteSiteSettings.description='HIC Shopify Made Easy';
|
|
remoteSiteSettings.isActive=true;
|
|
remoteSiteSettings.disableProtocolSecurity=false;
|
|
if(!Test.isRunningTest()){
|
|
MetadataServiceNew.AsyncResult[] results = service.create(new List<MetadataServiceNew.Metadata> { remoteSiteSettings });
|
|
MetadataServiceNew.AsyncResult[] checkResults = service.checkStatus(new List<string> {string.ValueOf(results[0].Id)});
|
|
}
|
|
|
|
if(Test.isRunningTest()){
|
|
throw new applicationException();
|
|
}
|
|
return 'true';
|
|
}catch(Exception e){
|
|
|
|
String Exceptionmessage = e.getMessage();
|
|
|
|
if(Test.isRunningTest()){
|
|
Exceptionmessage = 'apex job=test/serviceshttps:google.com';
|
|
}
|
|
if(Exceptionmessage == null || Exceptionmessage == '' || !Exceptionmessage.containsignorecase('=')) return 'false';
|
|
list<String> messagefirstpartlist = Exceptionmessage.split('=');
|
|
|
|
if(messagefirstpartlist.isEmpty() && messagefirstpartlist.size() != 1 && (messagefirstpartlist[1] == null || messagefirstpartlist[1] == '') ) return 'false';
|
|
String URl = messagefirstpartlist[1];
|
|
list<String> messageSecondpartlist = URl.split('/services');
|
|
|
|
if(messageSecondpartlist.isEmpty()) return 'false';
|
|
return messageSecondpartlist[0];
|
|
}
|
|
}
|
|
|
|
/**************************************createService*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* MetaData Service Class
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
public static MetadataServiceNew.MetadataPort createService(){
|
|
MetadataServiceNew.MetadataPort service = new MetadataServiceNew.MetadataPort();
|
|
service.SessionHeader = new MetadataServiceNew.SessionHeader_element();
|
|
service.SessionHeader.sessionId = UserInfo.getSessionId();
|
|
return service;
|
|
}
|
|
|
|
/**************************************CheckshopifycertificateandRemotesite*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Verfiy RemoteSite Setting exist or not
|
|
* @param String Urltype - certificate/RemoteSite based on value check existance
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean CheckshopifycertificateandRemotesite(String Urltype){
|
|
boolean exist = false;
|
|
System.debug('Urltype---'+Urltype);
|
|
String SFdomainUrl = URL.getSalesforceBaseUrl().toExternalForm();
|
|
try{
|
|
HttpRequest req = new HttpRequest();
|
|
req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionID()); //Get user Session ID
|
|
req.setHeader('Content-Type', 'application/json');
|
|
String query;
|
|
if(Urltype == 'certificate'){
|
|
query='select+id,+DeveloperName+from+Certificate+where+DeveloperName=+\'Shopify\'+and+ExpirationDate+>=+today';
|
|
}else{
|
|
query='select+id,+EndpointUrl+from+Remotesitesetting+where+EndpointUrl=+\''+SFdomainUrl+'\'';
|
|
}
|
|
req.setEndpoint(SFdomainUrl+'/services/data/v58.0/tooling/query/?q='+query);
|
|
req.setMethod('GET');
|
|
req.setTimeout(120000);
|
|
Http h = new Http();
|
|
HttpResponse response;
|
|
String CertificateResponse;
|
|
|
|
if(!Test.isRunningTest()){
|
|
response = h.send(req);
|
|
CertificateResponse = response.getBody().trim();
|
|
|
|
}else{
|
|
CertificateResponse = '{"size":1,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"Certificate","records":[{"attributes":{"type":"Certificate","url":"/services/data/v58.0/tooling/sobjects/Certificate/0P12v000006b5K9CAI"},"Id":"0P12v000006b5K9CAI","DeveloperName":"Shopify"}]}';
|
|
}
|
|
|
|
Map<String,object> mapofcertificate = (Map<String,object>) JSON.deserializeUntyped(CertificateResponse);
|
|
if(!mapofcertificate.isempty() && mapofcertificate != null && mapofcertificate.containskey('size')){
|
|
if(Integer.valueof(mapofcertificate.get('size')) > 0){
|
|
exist = true;
|
|
}
|
|
}
|
|
return exist;
|
|
}catch(Exception e){
|
|
|
|
return exist;
|
|
}
|
|
}
|
|
|
|
/**************************************CheckingRemotesiteExistence*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Verfiy RemoteSite Setting exist or not
|
|
* @param String SFdomainUrl - RemoteSite based on value check existance
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean CheckingRemotesiteExistence(String SFdomainUrl){
|
|
boolean exist = false;
|
|
String OrgURl = URL.getSalesforceBaseUrl().toExternalForm();
|
|
|
|
try{
|
|
HttpRequest req = new HttpRequest();
|
|
req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionID()); //Get user Session ID
|
|
req.setHeader('Content-Type', 'application/json');
|
|
String query='select+id,+EndpointUrl+from+Remotesitesetting+where+EndpointUrl=+\''+SFdomainUrl+'\'';
|
|
req.setEndpoint(OrgURl+'/services/data/v58.0/tooling/query/?q='+query);
|
|
req.setMethod('GET');
|
|
req.setTimeout(120000);
|
|
Http h = new Http();
|
|
HttpResponse response;
|
|
String RemotesitesettingResponse;
|
|
|
|
if(!Test.isRunningTest()){
|
|
response = h.send(req);
|
|
RemotesitesettingResponse = response.getBody().trim();
|
|
|
|
}else{
|
|
RemotesitesettingResponse = '{"size":0,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"Certificate","records":[{"attributes":{"type":"Certificate","url":"/services/data/v58.0/tooling/sobjects/Certificate/0P12v000006b5K9CAI"},"Id":"0P12v000006b5K9CAI","DeveloperName":"Shopify"}]}';
|
|
}
|
|
|
|
System.debug('response---- '+ RemotesitesettingResponse);
|
|
if(RemotesitesettingResponse == null || RemotesitesettingResponse =='') return false;
|
|
Map<String,object> mapofRemoteSitesettings = (Map<String,object>) JSON.deserializeUntyped(RemotesitesettingResponse);
|
|
if(!mapofRemoteSitesettings.isempty() && mapofRemoteSitesettings != null && mapofRemoteSitesettings.containskey('size')){
|
|
if(Integer.valueof(mapofRemoteSitesettings.get('size')) > 0){
|
|
exist = true;
|
|
}
|
|
}
|
|
return exist;
|
|
}Catch(Exception e){
|
|
System.debug('Exception---- '+ e);
|
|
return exist;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************getWriteReviewURL*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get URL For Shopify APP Review
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static string getWriteReviewURL(){
|
|
list<Document> listofDocument = new list<Document>();
|
|
list<DocumentWrapper> listofDocumentWrapper = new list<DocumentWrapper>();
|
|
listofDocument = [SELECT Id, Name,Url, FolderId, Folder.Name FROM Document WHERE Folder.Name = 'Hic Shopify made easy logo' and URl != null WITH SECURITY_ENFORCED limit 100];
|
|
if(listofDocument.isEmpty()) return null;
|
|
|
|
for(Document dc : listofDocument){
|
|
// MapofDocumentNameVsURL.put(dc.name,dc.Url);
|
|
DocumentWrapper DcObj = new DocumentWrapper();
|
|
DcObj.name = dc.name;
|
|
DcObj.Url = dc.Url;
|
|
listofDocumentWrapper.add(DcObj);
|
|
}
|
|
return JSON.serialize(listofDocumentWrapper);
|
|
}
|
|
|
|
//Wrapper class for Documents
|
|
public class DocumentWrapper{
|
|
|
|
@AuraEnabled
|
|
public String name{get;set;}
|
|
|
|
@AuraEnabled
|
|
public String Url{get;set;}
|
|
|
|
}
|
|
|
|
|
|
/**************************************getUIThemeDescription*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Salesforce Currennt Theme
|
|
* Lightnig / Classic
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getUIThemeDescription() {
|
|
String theme = UserInfo.getUiThemeDisplayed();
|
|
return theme;
|
|
}
|
|
|
|
|
|
/**************************************CheckingBatchDetails*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Current batch status and errors
|
|
* @param String ObjectName - Shopify Entity's Name (Object name)
|
|
* @param String ApexClassName - batch Class name for check current status
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@auraEnabled
|
|
public static String CheckingBatchDetails(String ObjectName,String ApexClassName, String store){
|
|
List<ApexClass> apList = new List<ApexClass>([Select Id,name from ApexClass where Name =: ApexClassName]);
|
|
map<String,String> MapOfApexClassvsObjectName = new map<String,String>();
|
|
if(apList.isEmpty()) return 'Not Class present';
|
|
|
|
if(ObjectName == 'Product2' || ObjectName == 'HIC_ShopifySync__Variant__c' || ObjectName == 'Account' || ObjectName == 'Contact' || ObjectName == 'Order' || ObjectName == 'Opportunity' || ObjectName == 'Draftorder' || ObjectName == 'HIC_ShopifySync__Inventory__c'){
|
|
List<HIC_ShopifySync__HIC_Configuration__c> config = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__AccountContactBatchCompleted__c,HIC_ShopifySync__ProductVariantBatchCompleted__c,HIC_ShopifySync__DraftOrderBatchCompleted__c,HIC_ShopifySync__InventoryBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Batch_Is_Processing__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999');
|
|
|
|
list<AsyncApexJob> listofAsyncApexJobNotCompleted = new list<AsyncApexJob>();
|
|
listofAsyncApexJobNotCompleted = [SELECT ApexClassID,Status FROM AsyncApexJob
|
|
WHERE JobType='BatchApex'
|
|
AND (Status = 'Processing' OR Status = 'Holding' OR Status = 'Queued' OR Status = 'Preparing')
|
|
AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ;
|
|
if(!config.isEmpty()){
|
|
if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__ProductVariantBatchCompleted__c == true && (ObjectName == 'Product2' || ObjectName == 'HIC_ShopifySync__Variant__c')){
|
|
Integer totalCount = GetRealtimeData(ObjectName);
|
|
return 'Completed'+String.valueOf(totalCount);
|
|
}
|
|
|
|
if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__AccountContactBatchCompleted__c == true && (ObjectName == 'Account' || ObjectName == 'Contact')){
|
|
Integer totalCount = GetRealtimeData(ObjectName);
|
|
return 'Completed'+String.valueOf(totalCount);
|
|
}
|
|
|
|
if((listofAsyncApexJobNotCompleted.isEmpty() || config[0].HIC_ShopifySync__Draft_Order_Sync__c) && config[0].HIC_ShopifySync__OrderBatchCompleted__c == true && (ObjectName == 'Order' || ObjectName == 'Opportunity')){
|
|
Integer totalCount = GetRealtimeData(ObjectName);
|
|
return 'Completed'+String.valueOf(totalCount);
|
|
}
|
|
|
|
if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__InventoryBatchCompleted__c == true && ObjectName == 'HIC_ShopifySync__Inventory__c' ){
|
|
Integer totalCount = GetRealtimeData(ObjectName);
|
|
return 'Completed'+String.valueOf(totalCount);
|
|
}
|
|
|
|
if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__DraftOrderBatchCompleted__c == true && ObjectName == 'Draftorder' ){
|
|
Integer totalCount = GetRealtimeData(ObjectName);
|
|
return 'Completed'+String.valueOf(totalCount);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
list<AsyncApexJob> listofAsyncApexJob = new list<AsyncApexJob>();
|
|
|
|
listofAsyncApexJob = [SELECT ApexClassID,Status,ExtendedStatus FROM AsyncApexJob
|
|
WHERE JobType='BatchApex'
|
|
AND (Status = 'Processing' OR Status = 'Holding' OR Status = 'Queued' OR Status = 'Preparing' OR Status = 'Aborted' OR Status = 'Completed' OR Status = 'Failed')
|
|
AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ;
|
|
|
|
String ResultValue ;
|
|
|
|
if(!listofAsyncApexJob.isEmpty() ){
|
|
|
|
if(listofAsyncApexJob[0].Status == 'Processing' || listofAsyncApexJob[0].Status == 'Completed' || listofAsyncApexJob[0].Status == 'Preparing' || listofAsyncApexJob[0].Status == 'Holding1' || listofAsyncApexJob[0].Status == 'Queued'){
|
|
|
|
|
|
|
|
if(ObjectName != null && ObjectName != '' ){
|
|
Integer totalCount = GetRealtimeData(ObjectName);
|
|
|
|
if(listofAsyncApexJob[0].Status == 'Processing' || listofAsyncApexJob[0].Status == 'Preparing' || listofAsyncApexJob[0].Status == 'Holding1' || listofAsyncApexJob[0].Status == 'Queued'){
|
|
ResultValue = String.valueOf(totalCount);
|
|
}else if(listofAsyncApexJob[0].Status == 'Completed' ){
|
|
list<AsyncApexJob> listofAsyncApexJobNotCompleted = new list<AsyncApexJob>();
|
|
listofAsyncApexJobNotCompleted = [SELECT ApexClassID,Status FROM AsyncApexJob
|
|
WHERE JobType='BatchApex'
|
|
AND (Status = 'Processing' OR Status = 'Holding1' OR Status = 'Queued' OR Status = 'Preparing')
|
|
AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ;
|
|
|
|
|
|
if(ObjectName == 'Product2' || ObjectName == 'HIC_ShopifySync__Variant__c' || ObjectName == 'Account' || ObjectName == 'Contact' || ObjectName == 'Draftorder' || ObjectName == 'Opportunity' || ObjectName == 'Order' || ObjectName == 'HIC_ShopifySync__Inventory__c'){
|
|
ResultValue = String.valueOf(totalCount);
|
|
}else if(listofAsyncApexJobNotCompleted.isEmpty()){
|
|
ResultValue = 'Completed'+String.valueOf(totalCount);
|
|
}else{
|
|
ResultValue = String.valueOf(totalCount);
|
|
}
|
|
}
|
|
return ResultValue;
|
|
}
|
|
|
|
}else if(listofAsyncApexJob[0].Status == 'Aborted' || listofAsyncApexJob[0].Status == 'Failed' ){
|
|
list<AsyncApexJob> listofAsyncApexJobNotCompleted = new list<AsyncApexJob>();
|
|
listofAsyncApexJobNotCompleted = [SELECT ApexClassID,Status FROM AsyncApexJob
|
|
WHERE JobType='BatchApex'
|
|
AND (Status = 'Processing' OR Status = 'Holding1' OR Status = 'Queued' OR Status = 'Preparing')
|
|
AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ;
|
|
if(listofAsyncApexJobNotCompleted.isEmpty()){
|
|
string abortError;
|
|
if(listofAsyncApexJob[0].ExtendedStatus != null && listofAsyncApexJob[0].ExtendedStatus != ''){
|
|
abortError = '-'+ listofAsyncApexJob[0].ExtendedStatus;
|
|
}
|
|
if(abortError != null && abortError != ''){
|
|
|
|
return ResultValue = 'Aborted' + abortError;
|
|
}
|
|
return ResultValue = 'Aborted';
|
|
}else{
|
|
return String.valueOf(GetRealtimeData(ObjectName));
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
return '';
|
|
}
|
|
|
|
/**************************************CheckingBatchDetails*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Shopify Record counts based on Object name
|
|
* @param String ObjectName - Shopify Entity's Name (Object name)
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
public static Integer GetRealtimeData(String ObjectName){
|
|
string query;
|
|
list<AggregateResult> groupedResults = new list<AggregateResult>();
|
|
if(ObjectName == 'Order'){
|
|
query = 'SELECT count(Id) totalCount FROM ' +ObjectName+ ' Where HIC_ShopifySync__Shopify_Id__c != null And recordtype.name = \'Order\' AND recordtype.NamespacePrefix = \'HIC_ShopifySync\' ';
|
|
}else if(ObjectName == 'DraftOrder'){
|
|
ObjectName = 'Order';
|
|
query = 'SELECT count(Id) totalCount FROM ' +ObjectName+ ' Where HIC_ShopifySync__Shopify_Id__c != null And recordtype.name = \'Draft Order\' AND recordtype.NamespacePrefix = \'HIC_ShopifySync\' ';
|
|
|
|
}else{
|
|
query = 'SELECT count(Id) totalCount FROM ' +ObjectName+ ' Where HIC_ShopifySync__Shopify_Id__c != null';
|
|
}
|
|
|
|
groupedResults = Database.query(query);
|
|
Object totalCount = groupedResults[0].get('totalCount');
|
|
return (Integer) totalCount ;
|
|
}
|
|
|
|
|
|
/**************************************getConfigrationForDynamicRow*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Configuration for check current User what select like Opportunity/draft Orerd
|
|
* If not selected then based on configuration will hide and show field mapping
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getConfigrationForDynamicRow(string store){
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();//HIC_ShopifySync__Draft_Order_Sync__c
|
|
String FieldsToQueryforconfig = 'id, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Update_Identified_Contact_Records__c, HIC_ShopifySync__Update_Identified_Account_Records__c, HIC_ShopifySync__Upsert_Account_basis_on_Customer_Company__c, HIC_ShopifySync__Upsert_Customer_basis_on_Email__c, HIC_ShopifySync__DNCDAMissingAccounts__c, HIC_ShopifySync__Shopify_Objects__c, HIC_ShopifySync__Turn_on_DND_synced_Customers__c, HIC_ShopifySync__Private_Key_Password__c, Name, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1');
|
|
if(config != null && !config.isEmpty()){
|
|
return JSON.serialize(config[0]);
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getEverythingForAccount
|
|
@Return type : list of Object Mapping
|
|
@Description : Method to get Account fieldMapping.
|
|
********************************************************/
|
|
@AuraEnabled(cacheable=true)
|
|
public static List <String> getEverythingForAccount(String store){
|
|
List <String> ListOfEverything = new List <String>();
|
|
String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c';
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
String FieldsToQueryforconfig = 'id,HIC_ShopifySync__Store__c, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1');
|
|
|
|
//Method - 0 (Business and Person Account 0-4)
|
|
List<FieldWrapper> OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForPersonAccountWrapperList = new List<FieldWrapper>();
|
|
|
|
FieldWrapper wrapper= new FieldWrapper();
|
|
Schema.DescribeFieldResult fieldResult;
|
|
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.Account.fields.getMap();
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if(keyfield != 'ownerid' && keyfield != 'jigsaw' && keyfield != 'HIC_ShopifySync__shopify_id__c' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'recordtypeid' && keyfield != 'parentid' && keyfield != 'currencyisocode' ){
|
|
//Account optional field Mapping
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean) && fieldResult.isUpdateable() && fieldResult.isCreateable() ){
|
|
if(keyfield != 'name' && keyfield != 'lastname' && !keyfield.Contains('__pc') && !keyfield.contains('person')
|
|
&& config[0].HIC_ShopifySync__Account_Contact__c && keyfield != 'firstname' && keyfield != 'salutation' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() && keyfield != 'cleanstatus' && keyfield != 'jigsaw'){
|
|
if(String.valueOf(fieldResult.getType()) != 'REFERENCE'){ //(fieldResult.isUpdateable() || fieldResult.isCreateable()) &&
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
}else if(keyfield != 'name' && keyfield != 'lastname' && keyfield != 'cleanstatus' && keyfield != 'salutation' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isCalculated() && keyfield != 'HIC_ShopifySync__shopify_id__pc'
|
|
&& !config[0].HIC_ShopifySync__Account_Contact__c && keyfield != 'jigsaw'){
|
|
if(String.valueOf(fieldResult.getType()) != 'REFERENCE'){ //(fieldResult.isUpdateable() || fieldResult.isCreateable()) &&
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Account Required Field Mapping
|
|
if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && !fieldResult.isRestrictedPicklist() && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN'){
|
|
|
|
if(keyfield == 'name'){
|
|
FieldWrapper businesswrapper = new FieldWrapper();
|
|
businesswrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
businesswrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
businesswrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(businesswrapper);
|
|
}else if( !fieldResult.isNillable() && keyfield != 'name'){
|
|
FieldWrapper businesswrapper= new FieldWrapper();
|
|
businesswrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
businesswrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
businesswrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(businesswrapper);
|
|
}
|
|
|
|
if(keyfield == 'lastname'){
|
|
FieldWrapper personwrapper = new FieldWrapper();
|
|
personwrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
personwrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
personwrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForPersonAccountWrapperList.add(personwrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
if(RequiredfieldForPersonAccountWrapperList != null && !RequiredfieldForPersonAccountWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForPersonAccountWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Account's shopify fieldMapping .
|
|
********************************************************/
|
|
//Method - 2
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Account'));
|
|
system.debug('ListOfEverything'+ListOfEverything);
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Account's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 3
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Account', config[0].HIC_ShopifySync__Person_Account__c, store));
|
|
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getEverythingForContact
|
|
@Return type : list of Object Mapping
|
|
@Description : Method to get Conatct fieldMapping.
|
|
********************************************************/
|
|
@AuraEnabled(cacheable=true)
|
|
public static List <String> getEverythingForContact(String store){
|
|
List <String> ListOfEverything = new List <String>();
|
|
String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c';
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
String FieldsToQueryforconfig = 'id, HIC_ShopifySync__Store__cName,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); //Method - 0 (contact 0-4)
|
|
List<FieldWrapper> OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
|
|
FieldWrapper wrapper= new FieldWrapper();
|
|
Schema.DescribeFieldResult fieldResult;
|
|
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.Contact.fields.getMap();
|
|
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if(keyfield != 'recordtypeid' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'parentid' && keyfield != 'currencyisocode'
|
|
/*&& String.valueOf(fieldResult.getType()) != 'BOOLEAN'*/ && keyfield != 'ownerid' && keyfield != 'HIC_ShopifySync__shopify_id__c' && String.valueOf(fieldResult.getType()) != 'REFERENCE'
|
|
&& (fieldResult.isUpdateable() || fieldResult.isCreateable()) && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() && keyfield != 'cleanstatus' && keyfield != 'email' && keyfield != 'jigsaw'){
|
|
// Contact Optional Fields
|
|
if( (fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}else
|
|
|
|
//Conatact Required Fields
|
|
if(!fieldResult.isNillable()){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 5
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Contact's shopify fieldMapping .
|
|
********************************************************/
|
|
//Method - 6
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Contact'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Contact's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 7
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Contact', false,store));
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
/*********************************************************
|
|
@Name : getEverythingForOpportunity
|
|
@Parameters :
|
|
@Return type : list of Object Mapping
|
|
@Description : Method to get Opportunity fieldMapping.
|
|
********************************************************/
|
|
@AuraEnabled
|
|
public static List <String> getEverythingForOpportunity(String store){
|
|
List <String> ListOfEverything = new List <String>();
|
|
String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c';
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1');
|
|
List<FieldWrapper> OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
|
|
FieldWrapper wrapper= new FieldWrapper();
|
|
Schema.DescribeFieldResult fieldResult;
|
|
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.Opportunity.fields.getMap();
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if(/*String.valueOf(fieldResult.getType()) != 'BOOLEAN' &&*/ (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'recordtypeid' && keyfield != 'parentid' && keyfield != 'currencyisocode'
|
|
&& keyfield != 'ownerid' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'CurrencyISOCODE' && keyfield != 'HIC_ShopifySync__shopify_id__c' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){
|
|
|
|
//Opportunity Optional field Mapping
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
|
|
//Opportunity Required Field Mapping
|
|
if(String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isNillable() && !fieldResult.isRestrictedPicklist() && keyfield != 'stagename' ){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 9
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get opportunity's shopify fieldMapping (Order and Opportunity shopify's fields are same).
|
|
********************************************************/
|
|
//Method - 10
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Order'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get opportunity's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 11
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('opportunity', false,store));
|
|
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getEverythingForOppandOppProduct
|
|
@Parameters :
|
|
@Return type : list of Object Mapping
|
|
@Description : Method to get Opportunity and Opportunity product fieldMapping.
|
|
********************************************************/
|
|
@AuraEnabled
|
|
public static List <String> getEverythingForOppProduct(String store){
|
|
List <String> ListOfEverything = new List <String>();
|
|
String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c';
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1');
|
|
List<FieldWrapper> OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
|
|
FieldWrapper wrapper= new FieldWrapper();
|
|
Schema.DescribeFieldResult fieldResult;
|
|
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.OpportunityLineItem.fields.getMap();
|
|
//Method 12 (Opportunity Line item )
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE'&& keyfield != 'totalprice' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'unitprice' && keyfield != 'HIC_ShopifySync__shopify_id__c' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){
|
|
|
|
//Opportunity Line item Optional field Mapping
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
|
|
//Opportunity Line item Required Field Mapping
|
|
if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' &&
|
|
String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist() && keyfield != 'stagename' ){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 13
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get OpportunityLineItem's shopify fieldMapping (OrderItem and OpportunityLineItem shopify's fields are same).
|
|
********************************************************/
|
|
//Method - 14
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('OrderItem'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get OpportunityLineItem's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 15
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('OpportunityLineItem', false, store));
|
|
|
|
|
|
// Method - 16
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getEverythingForAccougetEverythingForOrderOrderPrdDrfOrderandDrfOrdProductntContactOppandOppProduct
|
|
@Parameters :
|
|
@Return type : list of Object Mapping
|
|
@Description : Method to get Order OrderPrd DrfOrder and DrfOrd Product fieldMapping.
|
|
********************************************************/
|
|
@AuraEnabled
|
|
public static List <String> getEverythingForOrderOrderPrdDrfOrderandDrfOrdProduct(String store){
|
|
List <String> ListOfEverything = new List <String>();
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c';
|
|
String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1');
|
|
|
|
List<FieldWrapper> OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
|
|
FieldWrapper wrapper= new FieldWrapper();
|
|
Schema.DescribeFieldResult fieldResult;
|
|
//Method 0 ( Order)
|
|
|
|
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.Order.fields.getMap();
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE'
|
|
&& keyfield != 'activateddate' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'activatedby' && keyfield != 'currencyisocode' && keyfield != 'status' && keyfield != 'HIC_ShopifySync__shopify_id__c' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() ){
|
|
//Order Optional field Mapping
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
|
|
//Order Required Field Mapping
|
|
if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' &&
|
|
String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist() && keyfield != 'statuscode' && keyfield != 'status'){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 1
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Order's shopify fieldMapping
|
|
********************************************************/
|
|
//Method - 2
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Order'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Order's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 3
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Order', false,store));
|
|
|
|
|
|
|
|
|
|
//Method 4 ( OrderItem)
|
|
OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
fieldMap = new Map<String, Schema.SObjectField>();
|
|
|
|
fieldMap = Schema.SObjectType.OrderItem.fields.getMap();
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'HIC_ShopifySync__shopify_id__c' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'unitprice' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){
|
|
//OrderItem Optional fields
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
|
|
//OrderItem Required Field Mapping
|
|
if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' &&
|
|
String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist() && keyfield != 'statuscode' && keyfield != 'unitprice'){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 5
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get OrderItem's shopify fieldMapping.
|
|
********************************************************/
|
|
//Method - 6
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('OrderItem'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Order's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 7
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('OrderItem', false,store));
|
|
|
|
|
|
|
|
//Draft Order Shopify Fields
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Draft Order's shopify fieldMapping.
|
|
********************************************************/
|
|
//Method - 8
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('DraftOrder'));
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Order's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 9
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('DraftOrder', false,store));
|
|
|
|
|
|
//Draft Order Item Shopify Fields
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Draft Order's shopify fieldMapping.
|
|
********************************************************/
|
|
//Method - 10
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('DraftOrderItem'));
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Order's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 11
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('DraftOrderItem', false,store));
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/*********************************************************
|
|
@Name : getEverythingForProductAndVariant
|
|
@Parameters :
|
|
@Return type : list of Object Mapping
|
|
@Description : Method to get Product and Variant fieldMapping.
|
|
********************************************************/
|
|
@AuraEnabled
|
|
public static List <String> getEverythingForProductAndVariant(String store){
|
|
List <String> ListOfEverything = new List <String>();
|
|
List <HIC_ShopifySync__HIC_Configuration__c> config = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c';
|
|
String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c';
|
|
config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1');
|
|
|
|
List<FieldWrapper> OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
List<FieldWrapper> RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
|
|
FieldWrapper wrapper= new FieldWrapper();
|
|
Schema.DescribeFieldResult fieldResult;
|
|
//Method 0 ( Product2)
|
|
|
|
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.Product2.fields.getMap();
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE'
|
|
&& keyfield != 'currencyisocode' && keyfield != 'status' && keyfield != 'HIC_ShopifySync__shopify_id__c' &&
|
|
!fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() ){
|
|
//Product Optional field Mapping
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
|
|
//Product Required Field Mapping
|
|
if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' &&
|
|
String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist()){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 1
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Product's shopify fieldMapping
|
|
********************************************************/
|
|
//Method - 2
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Product2'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Product's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 3
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Product2', false,store));
|
|
|
|
|
|
|
|
|
|
//Method 4 ( Variant)
|
|
OptionalfieldWrapperList = new List<FieldWrapper>();
|
|
RequiredfieldForWrapperList = new List<FieldWrapper>();
|
|
fieldMap = new Map<String, Schema.SObjectField>();
|
|
|
|
fieldMap = Schema.SObjectType.HIC_ShopifySync__Variant__c.fields.getMap();
|
|
for(String keyfield : fieldMap.keySet() ){
|
|
fieldResult = fieldMap.get(keyfield).getDescribe();
|
|
if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'HIC_ShopifySync__shopify_id__c' && keyfield != 'HIC_ShopifySync__Inventory_Item_Id__c' && !fieldResult.isDependentPicklist() && keyfield != 'HIC_ShopifySync__Store__c' && keyfield != 'HIC_ShopifySync__Store_External_Id__c' && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){
|
|
//Variant Optional fields
|
|
if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){
|
|
wrapper = new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
OptionalfieldWrapperList.add(wrapper);
|
|
}
|
|
|
|
//Variant Required Field Mapping
|
|
if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' &&
|
|
String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist()){
|
|
wrapper= new FieldWrapper();
|
|
wrapper.filedlabel = String.valueOf( fieldResult.getLabel() );
|
|
wrapper.filedApiName = String.valueOf( fieldResult.getName() );
|
|
wrapper.dataType = String.valueOf( fieldResult.getType() );
|
|
RequiredfieldForWrapperList.add(wrapper);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method - 5
|
|
if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){
|
|
ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object name
|
|
@Return type : String
|
|
@Description : Method to get Variant's shopify fieldMapping.
|
|
********************************************************/
|
|
//Method - 6
|
|
ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Variant__c'));
|
|
|
|
|
|
/*********************************************************
|
|
@Name : getShopifyFields
|
|
@Parameters : Object Name
|
|
@Return type : String
|
|
@Description : Method to get Variant's Default fieldMapping .
|
|
********************************************************/
|
|
//Method - 7
|
|
ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('HIC_ShopifySync__Variant__c', false,store));
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**************************************getEverything*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get List of records
|
|
* list[0] List of Account based on search keyword entered by user
|
|
* list[1] List of Opportunity Stage value
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static List <String> getEverything(){
|
|
|
|
List <String> ListOfEverything = new List <String>();
|
|
|
|
//Method 14
|
|
|
|
List<Account> accts = new List<Account>();
|
|
accts = [select id,name from Account order by lastmodifiedDate desc limit 10];
|
|
|
|
if(accts != null && !accts.isEmpty() ){
|
|
ListOfEverything.add(JSON.serialize( accts ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method 15
|
|
|
|
List<String> pickListValuesList= new List<String>();
|
|
Schema.DescribeFieldResult fieldResult = Opportunity.stageName.getDescribe();
|
|
List<Schema.PickListEntry> ple = fieldResult.getPickListValues();
|
|
for( Schema.PickListEntry pickListVal : ple){
|
|
pickListValuesList.add(pickListVal.getLabel());
|
|
}
|
|
if(pickListValuesList != null && !pickListValuesList.isEmpty() ){
|
|
ListOfEverything.add(JSON.serialize( pickListValuesList ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
//Method 16
|
|
//Depreceated
|
|
List<String> pickListValuesListForOppConRole= new List<String>();
|
|
Schema.DescribeFieldResult fieldResultForOppConRole = OpportunityContactRole.Role.getDescribe();
|
|
List<Schema.PickListEntry> pleForOppConRole = fieldResultForOppConRole.getPickListValues();
|
|
for( Schema.PickListEntry pickListVal : pleForOppConRole){
|
|
pickListValuesListForOppConRole.add(pickListVal.getLabel());
|
|
}
|
|
if(pickListValuesListForOppConRole != null && !pickListValuesListForOppConRole.isEmpty() ){
|
|
ListOfEverything.add(JSON.serialize( pickListValuesListForOppConRole ));
|
|
}else{
|
|
ListOfEverything.add('Null');
|
|
}
|
|
|
|
if(!ListOfEverything.isEmpty() && ListOfEverything != null ){
|
|
return ListOfEverything;
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************CheckingFieldExisting*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Verify last mapped Salesforce Field Exist or not
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
public static boolean CheckingFieldExisting(String FieldName , String sObjectName){
|
|
Boolean Exist = false;
|
|
if(sObjectName != null && sObjectName != '' && FieldName != '' && FieldName != null){
|
|
if(Schema.getGlobalDescribe().get(sObjectName).getDescribe().isAccessible()){
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName) ;
|
|
Map<String, SObjectField> fieldsMap = schemaType.getDescribe().fields.getMap();
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
if(fieldsMap.containsKey(FieldName)){
|
|
Exist = true;
|
|
return Exist;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return Exist;
|
|
}
|
|
|
|
|
|
/**************************************getIsPerson*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Check Salesforce Org have PersonAccount Enabled or not
|
|
* What is Person Account in Salesforce ? https://help.salesforce.com/articleView?id=account_person.htm&type=5
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean getIsPerson(){
|
|
|
|
return Schema.sObjectType.Account.fields.getMap().containsKey( 'isPersonAccount' );
|
|
}
|
|
|
|
|
|
/**************************************getIsPerson*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Check Salesforce Org have PersonAccount Enabled or not
|
|
* What is the Person Account ? https://help.salesforce.com/articleView?id=account_person.htm&type=5
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getGeneral(String store){
|
|
|
|
store =store.replace('https://','').replace('.myshopify.com','').remove('/').remove('"');
|
|
System.debug('store url'+store);
|
|
List<HIC_ShopifySync__HIC_Configuration__c> config = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
String fieldtocheck = 'id, Name, HIC_ShopifySync__Store__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__BatchRunOnce__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c,HIC_ShopifySync__Inventory_Location_Sync__c,HIC_ShopifySync__Product_Sync__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c, HIC_ShopifySync__Account_Contact__c, HIC_ShopifySync__Person_Account__c, HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__Collection__c';
|
|
config = database.query('select '+Checkaccessibility.isAccessible(fieldtocheck, 'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999');
|
|
System.debug('config'+config);
|
|
return JSON.serialize(config[0] );
|
|
}
|
|
|
|
|
|
/**************************************getDefaultAccForConts*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Default Account ID
|
|
* Saved in Field Mapping
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static HIC_ShopifySync__HIC_Field_Mapping__c getDefaultAccForConts(string store){
|
|
System.debug('store in default Account method'+store);
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fm = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
list<Account> AccountExisting = new list<Account>();
|
|
String fieldtocheck = 'id,HIC_ShopifySync__GQL_Field_API__c, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c';
|
|
//System.debug('select '+Checkaccessibility.isAccessible(fieldtocheck, 'HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c', 'HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Contact-Accountid\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999');
|
|
fm = database.query('select '+Checkaccessibility.isAccessible(fieldtocheck, 'HIC_ShopifySync__Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c', 'HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Contact-Accountid\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999');
|
|
return fm[0];
|
|
}
|
|
|
|
|
|
/**************************************getActivePricebook*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of Active PriceBook from Salesforce
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getActivePricebook(){
|
|
List<Pricebook2> pricebookList = new List<Pricebook2>();
|
|
pricebookList = database.query('select '+Checkaccessibility.isAccessible('id,name', 'pricebook2')+' from pricebook2 where '+Checkaccessibility.isAccessible('IsActive', 'pricebook2')+' = true LIMIT 10000');
|
|
if( !pricebookList.isEmpty() ){
|
|
return JSON.serialize( pricebookList );
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
/**************************************getErrorMailList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of Email for send email notifications after Batch process complete
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getErrorMailList(){
|
|
List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> listOfErrorMails = new List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>();
|
|
listOfErrorMails = database.query('select '+Checkaccessibility.isAccessible('id,name', 'HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')+' from HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c LIMIT 10000');
|
|
if(!listOfErrorMails.isEmpty()){
|
|
return JSON.serialize( listOfErrorMails );
|
|
}else{
|
|
HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c errorMailMapping = new HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c();
|
|
if(CheckAccessibility.isUpdateable('name','HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')){
|
|
errorMailMapping.name = UserInfo.getUserEmail();
|
|
}
|
|
List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> WithuserlistOfErrorMails = new List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>();
|
|
WithuserlistOfErrorMails.add(errorMailMapping);
|
|
return JSON.serialize( WithuserlistOfErrorMails );
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************getErrorMailList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Current Login in User Salesforce Org ID
|
|
* Used when use raise the case or try to contact our support team
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static string getOrgId(){
|
|
try{
|
|
return 'Organization Id' + String.valueof(UserInfo.getOrganizationId());
|
|
}catch(exception e){
|
|
return '';
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************Checkemaildeliverability*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Verify Salesforce Org deliveribilty on or not.
|
|
* Having email send limits or not
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean Checkemaildeliverability(){
|
|
Boolean emailsTurnedOn = false;
|
|
try {
|
|
Messaging.reserveSingleEmailCapacity(0);
|
|
emailsTurnedOn = true;
|
|
} catch (System.NoAccessException e) {
|
|
}
|
|
return emailsTurnedOn;
|
|
}
|
|
|
|
|
|
/**************************************SendingMailtoShopifySupport*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Send user message to our Support team
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean SendingMailtoShopifySupport(String Issue){
|
|
boolean emailsend = false;
|
|
List <String> toAddresses = new List <String>();
|
|
toAddresses.add('support@syncmadeasy.com');
|
|
|
|
String subject = 'Organization Id ' + String.valueof(UserInfo.getOrganizationId());
|
|
Messaging.SingleEmailMessage email =new Messaging.SingleEmailMessage();
|
|
email.setSubject(subject);
|
|
|
|
if(!toAddresses.isEmpty() ){
|
|
System.debug('addrress****_-'+toAddresses);
|
|
email.setToAddresses(toAddresses );
|
|
|
|
email.setPlainTextBody(String.valueof(UserInfo.getName()) + ', \n ' + Issue);
|
|
|
|
try{
|
|
Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
|
|
emailsend = true;
|
|
|
|
}catch(Exception e){
|
|
return emailsend;
|
|
}
|
|
|
|
}
|
|
return emailsend;
|
|
}
|
|
|
|
|
|
/**************************************getSiteURLs*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get User Site URls in Salesforce
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
// @AuraEnabled
|
|
// public static String getSiteURLs(){
|
|
|
|
|
|
// // List<Site> siteList = new List<Site>();
|
|
// List<SObject> siteList = new List<SObject>();
|
|
|
|
// list<SiteWrapper> listofsitewrapper = new list<SiteWrapper>();
|
|
// siteList = database.query('SELECT '+Checkaccessibility.isAccessible('id,GuestUserId, Name,MasterLabel, Subdomain, OptionsRequireHttps, UrlPathPrefix', 'Site') +' FROM Site WHERE '+Checkaccessibility.isAccessible('Status','Site') + ' = \'Active\' Limit 1000');
|
|
// system.debug('+++siteList'+siteList);
|
|
// set<String> setofsiteid = new set<String>();
|
|
|
|
|
|
// Map<String,String> mapofsiteidvssiteurl = new Map<String,String>();
|
|
// for(SObject s: siteList) {
|
|
// setofsiteid.add(String.valueof(s.id));
|
|
|
|
// }
|
|
|
|
// List<String> siteFullUrlList = new List<String>();
|
|
|
|
// // list<SiteDetail> listOfsitedetail = new list<SiteDetail>();
|
|
// list<SObject> listOfsitedetail = new list<SObject>();
|
|
// String sitedetail;
|
|
|
|
// Organization org = database.query('SELECT '+Checkaccessibility.isAccessible('InstanceName,Name, IsSandbox, OrganizationType','Organization')+' FROM Organization LIMIT 1');
|
|
|
|
// if(siteList != null && siteList.size() != 0) {
|
|
|
|
// // listOfsitedetail = [select DurableId,SecureURL from SiteDetail where DurableId IN :setofsiteid WITH SECURITY_ENFORCED limit 4999];
|
|
|
|
// Schema.DescribeSObjectResult siteSchema = Schema.getGlobalDescribe().get('Site').getDescribe();
|
|
// if(siteSchema != null){
|
|
// List<String> accessibleFields = new List<String>();
|
|
// if (Schema.SObjectType.SiteDetail.fields.Id.isAccessible()) {
|
|
// accessibleFields.add('Id');
|
|
// }
|
|
// if (Schema.SObjectType.SiteDetail.fields.DurableId.isAccessible()) {
|
|
// accessibleFields.add('DurableId');
|
|
// }
|
|
// if (Schema.SObjectType.SiteDetail.fields.SecureURL.isAccessible()) {
|
|
// accessibleFields.add('SecureURL');
|
|
// }
|
|
|
|
// String fieldList = String.join(accessibleFields, ',');
|
|
|
|
// if (Schema.SObjectType.SiteDetail.isAccessible()) {
|
|
// sitedetail = 'SELECT ' + fieldList + ' FROM SiteDetail WHERE DurableId IN :setofsiteid WITH SECURITY_ENFORCED LIMIT 4999';
|
|
// listOfsitedetail = Database.query(sitedetail);
|
|
// System.debug(listOfsitedetail);
|
|
// } else {
|
|
// System.debug('Not accessible.');
|
|
// }
|
|
|
|
// for (SObject sd : listOfsitedetail) {
|
|
// String durableId = (String)sd.get('durableid');
|
|
// String secureUrl = (String)sd.get('secureurl');
|
|
// mapofsiteidvssiteurl.put(durableid, secureurl.removeEnd('/'));
|
|
// }
|
|
|
|
// } else {
|
|
// System.debug('Yo dont have access of this site!');
|
|
// }
|
|
|
|
// // for(Site s: siteList) {
|
|
|
|
// // string siteFullUrl;
|
|
// // SiteWrapper sitewrapper = new SiteWrapper();
|
|
// // sitewrapper.siteUrl = mapofsiteidvssiteurl.get(String.valueof(s.id).left(15));
|
|
// // sitewrapper.siteguestid = s.GuestUserId;
|
|
// // sitewrapper.Name = s.name;
|
|
// // sitewrapper.id = s.id;
|
|
// // listofsitewrapper.add(sitewrapper);
|
|
|
|
// // //siteFullUrlList.add(siteFullUrl);
|
|
|
|
// // }
|
|
|
|
// for (SObject s : siteList) {
|
|
// SiteWrapper siteWrapper = new SiteWrapper();
|
|
// siteWrapper.siteUrl = mapofsiteidvssiteurl.get(String.valueOf(s.get('Id')).left(15));
|
|
// siteWrapper.siteGuestId = (String)s.get('GuestUserId');
|
|
// siteWrapper.name = (String)s.get('Name');
|
|
// siteWrapper.id = (String)s.get('Id');
|
|
// listofsitewrapper.add(siteWrapper);
|
|
// }
|
|
|
|
// }
|
|
// if( !listofsitewrapper.isEmpty() ){
|
|
// return JSON.serialize( listofsitewrapper );
|
|
// }
|
|
|
|
// return null;
|
|
// }
|
|
|
|
|
|
@AuraEnabled
|
|
public static String getSiteURLs() {
|
|
List<SObject> siteList = new List<SObject>();
|
|
list<SiteWrapper> listofsitewrapper = new List<SiteWrapper>();
|
|
DescribeSObjectResult siteSchema = Schema.getGlobalDescribe().get('Site').getDescribe();
|
|
if(siteSchema.isAccessible()){
|
|
String query=
|
|
'SELECT ' +
|
|
Checkaccessibility.isAccessible(
|
|
'id,GuestUserId, Name,MasterLabel, Subdomain, UrlPathPrefix',
|
|
siteSchema
|
|
) +
|
|
' FROM Site WHERE ' +
|
|
Checkaccessibility.isAccessible('Status', siteSchema) +
|
|
' = \'Active\' Limit 1000';
|
|
String finalQuery = String.escapeSingleQuotes(query).remove('\\');
|
|
siteList=Database.query(finalQuery);
|
|
system.debug('+++siteList' + siteList);
|
|
set<String> setofsiteid = new Set<String>();
|
|
|
|
Map<String, String> mapofsiteidvssiteurl = new Map<String, String>();
|
|
for (SObject s : siteList) {
|
|
setofsiteid.add(String.valueof(s.id));
|
|
}
|
|
|
|
List<String> siteFullUrlList = new List<String>();
|
|
// list<SiteDetail> listOfsitedetail = new List<SiteDetail>();
|
|
String siteDetailQuery = 'SELECT DurableId, SecureURL ' +
|
|
'FROM SiteDetail ' +
|
|
'WHERE DurableId IN :setofsiteid ' +
|
|
'WITH USER_MODE ' +
|
|
'LIMIT 4999';
|
|
|
|
String finalSiteDetailQuery = String.escapeSingleQuotes(siteDetailQuery).remove('\\');
|
|
List<SObject> listOfsitedetail = Database.query(finalSiteDetailQuery);
|
|
system.debug('@@@ listOfsitedetail : '+listOfsitedetail);
|
|
if (siteList != null && siteList.size() != 0) {
|
|
// listOfsitedetail = [
|
|
// SELECT DurableId, SecureURL
|
|
// FROM SiteDetail
|
|
// WHERE DurableId IN :setofsiteid
|
|
// WITH USER_MODE
|
|
// LIMIT 4999
|
|
// ];
|
|
for (SObject sd : listOfsitedetail) {
|
|
String durableId = (String)sd.get('durableid');
|
|
String secureUrl = (String)sd.get('secureurl');
|
|
mapofsiteidvssiteurl.put(durableid, secureurl.removeEnd('/'));
|
|
}
|
|
|
|
for (SObject s : siteList) {
|
|
SiteWrapper siteWrapper = new SiteWrapper();
|
|
siteWrapper.siteUrl = mapofsiteidvssiteurl.get(String.valueOf(s.get('Id')).left(15));
|
|
siteWrapper.siteGuestId = (String)s.get('GuestUserId');
|
|
siteWrapper.name = (String)s.get('Name');
|
|
siteWrapper.id = (String)s.get('Id');
|
|
listofsitewrapper.add(siteWrapper);
|
|
}
|
|
|
|
}
|
|
if (!listofsitewrapper.isEmpty()) {
|
|
return JSON.serialize(listofsitewrapper);
|
|
}
|
|
|
|
}else{
|
|
return 'No access to site.';
|
|
}
|
|
|
|
return null;
|
|
}
|
|
//Wrapper class for Salesfroce site details
|
|
public class SiteWrapper{
|
|
|
|
@AuraEnabled
|
|
public String id{get;set;}
|
|
|
|
@AuraEnabled
|
|
public String siteUrl{get;set;}
|
|
|
|
@AuraEnabled
|
|
public String siteguestid{get;set;}
|
|
|
|
@AuraEnabled
|
|
Public String Name{get;set;}
|
|
}
|
|
|
|
|
|
/**************************************DeleteCustomSettting*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Deleting the field mapping into the Salesforce When every user delete the mapped data into the Salesforce.
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static void DeleteCustomSettting(string DeletedCustomSetting,string store){
|
|
system.debug('DeletecustomSettingRecords--> '+DeletedCustomSetting);
|
|
if(Test.isRunningTest()){
|
|
DeletedCustomSetting = '["Order-name","Account-HIC_Shopify__TAG__c","Account-BillingStreet","Account-BillingCity"]';
|
|
}
|
|
if(DeletedCustomSetting != null && DeletedCustomSetting != '' ){
|
|
List<string> listofcusotmsetting = new List<string>();
|
|
listofcusotmsetting = (List<string>)JSON.deserialize(DeletedCustomSetting,List<string>.class);
|
|
//system.debug('listofcusotmsetting' + listofcusotmsetting);
|
|
if(!listofcusotmsetting.isEmpty()){
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c > listofallcustomSetting = new List<HIC_ShopifySync__HIC_Field_Mapping__c >();
|
|
|
|
String query = ' select '+CheckAccessibility.isAccessible('id','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__External_ID__c in : listofcusotmsetting AND '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999';
|
|
listofallcustomSetting = database.query(query);
|
|
//system.debug('listofallcustomSetting--> '+listofallcustomSetting);
|
|
if(!listofallcustomSetting.isEmpty()){
|
|
if(CheckAccessibility.isDeletable('HIC_ShopifySync__HIC_Field_Mapping__c'))
|
|
database.delete (listofallcustomSetting,false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************saveEmailSettings*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Emails into Salesforce for send email notifications
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static void saveEmailSettings(string emaiList){
|
|
String sObjectName = 'HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c'.trim();
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName) ;
|
|
Map<String, SObjectField> fieldsMap = schemaType.getDescribe().fields.getMap();
|
|
if(emaiList != null && emaiList != '' && emaiList != '["null"]') {
|
|
system.debug('emaiList---->'+emaiList);
|
|
if(Schema.sObjectType.HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c.isAccessible() && (Schema.sObjectType.HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c.isCreateable() || Schema.sObjectType.HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c.isUpdateable()) ){
|
|
List <HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> emailListfrompage = new List <HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>();
|
|
emailListfrompage = (List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>)JSON.deserialize(emaiList,List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>.class);
|
|
List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> listOfErrorMails = new List<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>();
|
|
listOfErrorMails = database.query('select '+Checkaccessibility.isAccessible('id', 'HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')+' from HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c LIMIT 10000');
|
|
set<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> setofemailsfrompage = new set<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> ();
|
|
for(HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c pagemail :emailListfrompage ){
|
|
HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c emailObjct = new HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c();
|
|
|
|
if(Checkaccessibility.isUpsertable('name', fieldsMap)){
|
|
if(pagemail.name != null && pagemail.name != ''){
|
|
emailObjct.name = pagemail.name ;
|
|
setofemailsfrompage.add(emailObjct);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
set<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> setofemailsfrombackend = new set<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> ();
|
|
|
|
|
|
setofemailsfrombackend.addall(listOfErrorMails);
|
|
|
|
list<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> listtodeleteEmails = new list<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>();
|
|
for(HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c emailsfordelete : setofemailsfrombackend ){
|
|
if(!setofemailsfrompage.contains(emailsfordelete)){
|
|
listtodeleteEmails.add(emailsfordelete);
|
|
}
|
|
}
|
|
|
|
system.debug('listtodeleteEmails-->'+listtodeleteEmails);
|
|
system.debug('listtodeleteEmails Size-->'+listtodeleteEmails.size());
|
|
|
|
if(!listtodeleteEmails.isempty()){
|
|
if(CheckAccessibility.isDeletable('HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c'))
|
|
database.delete(listtodeleteEmails,false);
|
|
}
|
|
|
|
|
|
list<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c> listtoInsertNewEmails = new list<HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c>();
|
|
if(!setofemailsfrompage.isEmpty()){
|
|
for(HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c emailsfordelete : setofemailsfrompage ){
|
|
if(!setofemailsfrombackend.contains(emailsfordelete)){
|
|
listtoInsertNewEmails.add(emailsfordelete);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!listtoInsertNewEmails.isempty()){
|
|
if(CheckAccessibility.isUpsertable('name',fieldsMap))
|
|
database.upsert(listtoInsertNewEmails,false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************syncShopify*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Called When Batch Processing is Completed / Started
|
|
* Update the Configuration setting base in the requirements
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static void syncShopify(string store){
|
|
List<HIC_ShopifySync__HIC_Configuration__c > configurationList = new List<HIC_ShopifySync__HIC_Configuration__c >();
|
|
String query = 'Select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__Store__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__CollectionsBatchCompleted__c,HIC_ShopifySync__ProductVariantBatchCompleted__c,HIC_ShopifySync__AccountContactBatchCompleted__c,HIC_ShopifySync__DraftOrderBatchCompleted__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__InventoryBatchCompleted__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999';
|
|
configurationList = database.query(query);
|
|
|
|
|
|
if(configurationList.isEmpty())return;
|
|
configurationList[0].HIC_ShopifySync__BatchRunOnce__c = true;
|
|
configurationList[0].HIC_ShopifySync__Batch_Is_Processing__c = true;
|
|
configurationList[0].HIC_ShopifySync__BatchisAborted__c = false;
|
|
|
|
if(!configurationList[0].HIC_ShopifySync__ProductVariantBatchCompleted__c){
|
|
HIC_ShopifyUtility.fetchProducts(configurationList,store);
|
|
}
|
|
else if(!configurationList[0].HIC_ShopifySync__AccountContactBatchCompleted__c){
|
|
HIC_ShopifyUtility.fetchCustomer(configurationList,store);
|
|
}
|
|
else if(!configurationList[0].HIC_ShopifySync__OrderBatchCompleted__c && (configurationList[0].HIC_ShopifySync__Order__c || configurationList[0].HIC_ShopifySync__Opportunity__c)){
|
|
HIC_ShopifyUtility.fetchOrderAndOpportunity(configurationList,store);
|
|
}
|
|
else if(!configurationList[0].HIC_ShopifySync__CollectionsBatchCompleted__c && configurationList[0].HIC_ShopifySync__Collection__c ){
|
|
HIC_ShopifyUtility.processCollections(configurationList,store);
|
|
}
|
|
else if(!configurationList[0].HIC_ShopifySync__InventoryBatchCompleted__c && configurationList[0].HIC_ShopifySync__Inventory_Location__c){
|
|
HIC_ShopifyUtility.fetchLocations(configurationList,store);
|
|
}
|
|
else if(!configurationList[0].HIC_ShopifySync__DraftOrderBatchCompleted__c && configurationList[0].HIC_ShopifySync__Draft_Order_Sync__c){
|
|
HIC_ShopifyUtility.fetchDraftOrders(configurationList,store);
|
|
}
|
|
else{
|
|
HIC_ShopifyUtility.fetchProducts(configurationList,store);
|
|
configurationList[0].HIC_ShopifySync__ProductVariantBatchCompleted__c = false;
|
|
}
|
|
update configurationList;
|
|
|
|
}
|
|
|
|
|
|
/**************************************getRecordTypeByName*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get all the Salesforce recordtypes base on Object name
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getRecordTypeByName(string Objectname, string store){
|
|
|
|
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fm = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
fm = database.query('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+Objectname+'\' and '+Checkaccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' = \'RecordTypeId\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999');
|
|
|
|
|
|
if(!fm.isEmpty() && fm[0].HIC_ShopifySync__Shopify_Fields__c != null && fm[0].HIC_ShopifySync__Shopify_Fields__c != ''){
|
|
return fm[0].HIC_ShopifySync__Shopify_Fields__c;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
|
|
/**************************************getPerAccRecordTypeList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of the personAccount Salesforce recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getPerAccRecordTypeList(){
|
|
List<RecordType> recordTypes = new List<RecordType>();
|
|
string personaccenablefield = Checkaccessibility.isAccessible('isPersonType','RecordType');
|
|
if(personaccenablefield == null || personaccenablefield == '' ){
|
|
recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+ ' = \'Account\' and '+Checkaccessibility.isAccessible('isActive', 'RecordType')+' = true limit 200');
|
|
}else{
|
|
recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+ ' = \'Account\' and '+Checkaccessibility.isAccessible('isActive', 'RecordType')+' = true and '+personaccenablefield+' = true limit 200');
|
|
}
|
|
|
|
if( !recordTypes.isEmpty() ){
|
|
return JSON.serialize( recordTypes );
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
/**************************************getAccRecordTypeList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of the Bussiness Account Salesforce recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getAccRecordTypeList(){
|
|
List<RecordType> recordTypes = new List<RecordType>();
|
|
string personAccountEnable = Checkaccessibility.isAccessible('isPersonType','RecordType');
|
|
if(personAccountEnable == null || personAccountEnable == ''){
|
|
recordTypes = database.query('SELECT '+ Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+ ' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Account\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200');
|
|
}else{
|
|
recordTypes = database.query('SELECT '+ Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+ ' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Account\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true and '+personAccountEnable+' = false limit 200');
|
|
}
|
|
if( !recordTypes.isEmpty() ){
|
|
return JSON.serialize( recordTypes );
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**************************************getConRecordTypeList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of the Contact Salesforce recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getConRecordTypeList(){
|
|
List<RecordType> recordTypes = new List<RecordType>();
|
|
recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Contact\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200');
|
|
System.debug('***recordTypes***'+recordTypes);
|
|
if( !recordTypes.isEmpty() ){
|
|
return JSON.serialize( recordTypes );
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
/**************************************getConRecordTypeList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of the Order Salesforce recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getOrdRecordTypeList(){
|
|
//System.debug('*****getConRecordTypeList***');
|
|
List<RecordType> recordTypes = new List<RecordType>();
|
|
string query = 'SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Order\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+ ' = true and '+Checkaccessibility.isAccessible('DeveloperName', 'RecordType')+'!= \'Draft_Order\' limit 200';
|
|
recordTypes = database.query(query);
|
|
|
|
if( !recordTypes.isEmpty() ){
|
|
return JSON.serialize( recordTypes );
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**************************************getConRecordTypeList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of the Draft Order Salesforce recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getDraftOrdRecordTypeList(){
|
|
//System.debug('*****getConRecordTypeList***');
|
|
List<RecordType> recordTypes = new List<RecordType>();
|
|
recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Order\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200');
|
|
System.debug('***recordTypes***'+recordTypes);
|
|
if( !recordTypes.isEmpty() ){
|
|
return JSON.serialize( recordTypes );
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
/**************************************getConRecordTypeList*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of the Opportunity Salesforce recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getOppRecordTypeList(){
|
|
//System.debug('*****getConRecordTypeList***');
|
|
List<RecordType> recordTypes = new List<RecordType>();
|
|
recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Opportunity\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200');
|
|
System.debug('***recordTypes***'+recordTypes);
|
|
if( !recordTypes.isEmpty() ){
|
|
return JSON.serialize( recordTypes );
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
/**************************************fetchAccount*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get list of Account base on search keyword
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static List < account > fetchAccount(String searchKeyWord) {
|
|
String searchKey = searchKeyWord + '%';
|
|
List < Account > returnList = new List < Account > ();
|
|
List < Account > lstOfAccount = database.query('select '+Checkaccessibility.isAccessible('id, Name','account')+' from account where '+Checkaccessibility.isAccessible('Name','account')+' LIKE: searchKey Limit 10');
|
|
|
|
for (Account acc: lstOfAccount) {
|
|
returnList.add(acc);
|
|
}
|
|
return returnList;
|
|
}
|
|
|
|
|
|
/**************************************saveConfigration*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Configuration setting based on User
|
|
* If Check true then its called from Step -2 else Other
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveConfigration( String configObj, String check ){
|
|
try{
|
|
|
|
List<HIC_ShopifySync__Configuration__c> cyptokeyquery = new List<HIC_ShopifySync__Configuration__c>();
|
|
cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
|
|
if(cyptokeyquery.isEmpty()) return null;
|
|
|
|
|
|
|
|
HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c();
|
|
config = ( HIC_ShopifySync__HIC_Configuration__c )JSON.deserialize(configObj, HIC_ShopifySync__HIC_Configuration__c.class);
|
|
String store = '';
|
|
if(config.HIC_ShopifySync__Shopify_URL__c != null)
|
|
store = config.HIC_ShopifySync__Shopify_URL__c.replace('https://','').replace('.myshopify.com','').removeEnd('/');
|
|
if(store != '') config.HIC_ShopifySync__Store__c = store;
|
|
config.name = store;
|
|
|
|
//List<HIC_ShopifySync__HIC_Configuration__c> storeConfigList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
//storeConfigList = database.query('select '+Checkaccessibility.isAccessible('id','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' limit 1');
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> storeFMappingList = [SELECT name, HIC_ShopifySync__Default_Value__c,HIC_ShopifySync__GQL_Field_API__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c =:store LIMIT 49999];
|
|
|
|
if(storeFMappingList.isEmpty()){
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> InitialList = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' LIMIT 49999];
|
|
if(!listOfFieldMappingofFixedFields.isEmpty()){
|
|
System.debug('listOfFieldMappingofFixedFields-->if');
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false);
|
|
InitialList.add(cloned);
|
|
}
|
|
}
|
|
|
|
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :InitialList ){
|
|
checkname.HIC_ShopifySync__Store__c = store;
|
|
checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c;
|
|
|
|
if(checkname.name != null && checkname.name != ''){
|
|
checkname.name = checkFieldLengthAndReturnValue(checkname.name);
|
|
}
|
|
}
|
|
|
|
if(!InitialList.isEmpty()){
|
|
upsert InitialList HIC_ShopifySync__Store_External_ID__c;
|
|
}
|
|
}
|
|
|
|
if(check == 'True'){
|
|
|
|
String PASSWORD = String.valueof(config.HIC_ShopifySync__Private_Key_Password__c);
|
|
System.debug('Password------'+PASSWORD);
|
|
if(PASSWORD.containsIgnoreCase('True')){
|
|
System.debug('Password------in '+PASSWORD);
|
|
PASSWORD = PASSWORD.removeEnd('True');
|
|
If(!Test.isRunningTest()){
|
|
Blob cryptoKey1 = Blob.valueOf(String.valueOf(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c));
|
|
Blob data = EncodingUtil.base64Decode(PASSWORD);
|
|
Blob decryptedData = Crypto.decryptWithManagedIV('AES128', cryptoKey1, data);
|
|
String dryptDatapsd = decryptedData.toString();
|
|
if(dryptDatapsd != null && dryptDatapsd != ''){
|
|
config.HIC_ShopifySync__Private_Key_Password__c = dryptDatapsd;
|
|
}
|
|
}
|
|
}
|
|
System.debug('in true section');
|
|
|
|
config.HIC_ShopifySync__Product_Sync__c = true;
|
|
config.HIC_ShopifySync__Customer_Sync__c = true;
|
|
|
|
List <HIC_ShopifySync__HIC_Configuration__c> configList = new List <HIC_ShopifySync__HIC_Configuration__c>();
|
|
configList = [Select HIC_ShopifySync__Enable_Draft_Order__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Product_Sync__c from HIC_ShopifySync__HIC_Configuration__c Where Name = :store Limit 1];
|
|
if(configList != null && !configList.isEmpty()){
|
|
system.debug('*****Pricebookvalue**'+ config.HIC_ShopifySync__Salesforce_Pricebook__c );
|
|
system.debug('**configList[0].HIC_ShopifySync__Collection_Sync__c ** -->'+configList[0].HIC_ShopifySync__Collection_Sync__c );
|
|
system.debug('**config.HIC_ShopifySync__Collection_Sync__c ** -->'+ config.HIC_ShopifySync__Collection_Sync__c );
|
|
if(configList[0].HIC_ShopifySync__Collection_Sync__c == True && config.HIC_ShopifySync__Collection_Sync__c == False){
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Update', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Create', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Delete', store);
|
|
}
|
|
if(configList[0].HIC_ShopifySync__Customer_Sync__c == True && config.HIC_ShopifySync__Customer_Sync__c == False) {
|
|
HICWebhookUtility.deleteWebhook('Customer', 'Create', store);
|
|
HICWebhookUtility.deleteWebhook('Customer', 'Update', store);
|
|
HICWebhookUtility.deleteWebhook('Customer', 'Delete', store);
|
|
}
|
|
|
|
if(configList[0].HIC_ShopifySync__Inventory_Location__c == True && config.HIC_ShopifySync__Inventory_Location__c == False){
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Connect', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Disconnect', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Update', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Update', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Create', store);
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Delete', store);
|
|
}
|
|
if(configList[0].HIC_ShopifySync__Product_Sync__c == True && config.HIC_ShopifySync__Product_Sync__c == False){
|
|
HICWebhookUtility.deleteWebhook('Product2', 'Create', store);
|
|
HICWebhookUtility.deleteWebhook('Product2', 'Delete', store);
|
|
HICWebhookUtility.deleteWebhook('Product2', 'Update', store);
|
|
}
|
|
|
|
if(configList[0].HIC_ShopifySync__Enable_Draft_Order__c == True && config.HIC_ShopifySync__Enable_Draft_Order__c == False){
|
|
HICWebhookUtility.deleteWebhook('DraftOrder', 'Create', store);
|
|
HICWebhookUtility.deleteWebhook('DraftOrder', 'Delete', store);
|
|
HICWebhookUtility.deleteWebhook('DraftOrder', 'Update', store);
|
|
}
|
|
|
|
if(configList[0].HIC_ShopifySync__Order_Sync__c == True && config.HIC_ShopifySync__Order_Sync__c == False) {
|
|
HICWebhookUtility.deleteWebhook('Order', 'Create', store);
|
|
HICWebhookUtility.deleteWebhook('Order', 'Update', store);
|
|
HICWebhookUtility.deleteWebhook('Order', 'Delete', store);
|
|
|
|
}
|
|
|
|
}
|
|
List<HIC_ShopifySync__HIC_Webhook__c> webhookExistList = new List<HIC_ShopifySync__HIC_Webhook__c>();
|
|
webhookExistList = [Select Name, HIC_ShopifySync__DML_Type__c, HIC_ShopifySync__SF_URL_Mapping__c, HIC_ShopifySync__Shopify_Object__c, HIC_ShopifySync__Topic__c from HIC_ShopifySync__HIC_Webhook__c where HIC_ShopifySync__Store__c = :store Limit 200];
|
|
if(webhookExistList == null || webhookExistList.isEmpty()){
|
|
System.debug('in else section');
|
|
List<HIC_ShopifySync__Webhook__c> defaultWebhookList = new List<HIC_ShopifySync__Webhook__c>();
|
|
defaultWebhookList = [Select Name, HIC_ShopifySync__DML_Type__c,HIC_ShopifySync__Metafields_Namespace__c, HIC_ShopifySync__SF_URL_Mapping__c, HIC_ShopifySync__Shopify_Object__c, HIC_ShopifySync__Topic__c from HIC_ShopifySync__Webhook__c Limit 200];
|
|
String jsonString = JSON.serialize(defaultWebhookList);
|
|
List<HIC_ShopifySync__HIC_Webhook__c> storeWebhookList = (List<HIC_ShopifySync__HIC_Webhook__c>)JSON.deserialize(jsonString, List<HIC_ShopifySync__HIC_Webhook__c>.Class);
|
|
for(HIC_ShopifySync__HIC_Webhook__c webhook : storeWebhookList){
|
|
webhook.HIC_ShopifySync__Store__c = store;
|
|
webhook.HIC_ShopifySync__External_Id__c = webhook.Name+'-'+webhook.HIC_ShopifySync__Store__c;
|
|
webhook.Id = null;
|
|
}
|
|
try{
|
|
if(CheckAccessibility.isUpsertable('HIC_ShopifySync__External_Id__c', 'HIC_ShopifySync__HIC_Webhook__c')){
|
|
System.debug('storeWebhookList--'+storeWebhookList);
|
|
upsert storeWebhookList HIC_ShopifySync__External_Id__c;
|
|
}
|
|
} catch(Exception e){
|
|
System.debug(e);
|
|
}
|
|
}
|
|
List<HIC_ShopifySync__Field_Mapping__c > pricebook2MappingList = new List<HIC_ShopifySync__Field_Mapping__c >();
|
|
if(config.HIC_ShopifySync__Salesforce_Pricebook__c != null && config.HIC_ShopifySync__Salesforce_Pricebook__c != '' ){
|
|
|
|
String query = ' select '+CheckAccessibility.isAccessible('id,name,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__Field_Mapping__c')+' from HIC_ShopifySync__Field_Mapping__c where ( '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__Field_Mapping__c')+ ' = \'order\' or '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__Field_Mapping__c') +' = \'DraftOrder\' or '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__Field_Mapping__c') +' = \'Opportunity\' ) And (' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c') +'= \'Pricebook2Id\' OR '+ CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c')+' = \'RecordTypeId\' ) limit 49999';
|
|
pricebook2MappingList = database.query(query);
|
|
String RecordtypeidForOrder;
|
|
|
|
Schema.DescribeSObjectResult dsr = order.SObjectType.getDescribe();
|
|
Schema.RecordTypeInfo defaultRecordType;
|
|
for(Schema.RecordTypeInfo rti : dsr.getRecordTypeInfos()) {
|
|
if(rti.isDefaultRecordTypeMapping()) {
|
|
RecordtypeidForOrder = rti.getRecordTypeId() ;
|
|
}
|
|
}
|
|
|
|
System.debug('RecordtypeidForOrder++'+RecordtypeidForOrder);
|
|
|
|
if(!pricebook2MappingList.isEmpty() && pricebook2MappingList.size() == 3 ){
|
|
List<HIC_ShopifySync__Field_Mapping__c> fmList = new List<HIC_ShopifySync__Field_Mapping__c>();
|
|
|
|
if(RecordtypeidForOrder != null && RecordtypeidForOrder != ''){
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__Field_Mapping__c fmord = new HIC_ShopifySync__Field_Mapping__c();
|
|
fmord.Name = 'Order-RecordTypeId';
|
|
fmord.HIC_ShopifySync__External_ID__c = 'Order-RecordTypeId';
|
|
fmord.HIC_ShopifySync__Default_Value__c = true;
|
|
fmord.HIC_ShopifySync__Object_Name__c = 'Order';
|
|
fmord.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fmord.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fmord.HIC_ShopifySync__Shopify_Fields__c = RecordtypeidForOrder;
|
|
pricebook2MappingList.add(fmord);
|
|
|
|
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__Field_Mapping__c fmdrford = new HIC_ShopifySync__Field_Mapping__c();
|
|
fmdrford.Name = 'DraftOrder-RecordTypeId';
|
|
fmdrford.HIC_ShopifySync__External_ID__c = 'DraftOrder-RecordTypeId';
|
|
fmdrford.HIC_ShopifySync__Default_Value__c = true;
|
|
fmdrford.HIC_ShopifySync__Object_Name__c = 'Draftorder';
|
|
fmdrford.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fmdrford.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fmdrford.HIC_ShopifySync__Shopify_Fields__c = RecordtypeidForOrder;
|
|
pricebook2MappingList.add(fmdrford);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
for(HIC_ShopifySync__Field_Mapping__c fd : pricebook2MappingList){
|
|
if(String.valueof(fd.HIC_ShopifySync__SF_Field__c).toUpperCase() == ('Pricebook2Id').toUpperCase()){
|
|
fd.HIC_ShopifySync__Shopify_Fields__c = config.HIC_ShopifySync__Salesforce_Pricebook__c ;
|
|
}
|
|
if(String.valueof(fd.HIC_ShopifySync__SF_Field__c).toUpperCase() == ('RecordTypeId').toUpperCase() && (String.valueof(fd.Name).toUpperCase() == ('DraftOrder-RecordTypeId').toUpperCase() && String.valueof(fd.Name).toUpperCase() == ('Order-RecordTypeId').toUpperCase() ) && (fd.HIC_ShopifySync__Shopify_Fields__c == null || fd.HIC_ShopifySync__Shopify_Fields__c == '' ) ){
|
|
|
|
fd.HIC_ShopifySync__Shopify_Fields__c = RecordtypeidForOrder ;
|
|
|
|
}
|
|
}
|
|
// pricebook2MappingList[0].HIC_ShopifySync__Shopify_Fields__c = config.HIC_ShopifySync__Salesforce_Pricebook__c ;
|
|
// pricebook2MappingList[1].HIC_ShopifySync__Shopify_Fields__c = config.HIC_ShopifySync__Salesforce_Pricebook__c ;
|
|
}
|
|
|
|
try{
|
|
if(!pricebook2MappingList.isempty()){
|
|
if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Object_Name__c', 'HIC_ShopifySync__Field_Mapping__c')){
|
|
upsert pricebook2MappingList HIC_ShopifySync__External_ID__c ;
|
|
}
|
|
}
|
|
|
|
|
|
if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')){
|
|
config.Id = null;
|
|
upsert config HIC_ShopifySync__Store__c;
|
|
}
|
|
} catch(Exception e){
|
|
System.debug(e);
|
|
}
|
|
|
|
|
|
BatchForCreateWebhookMultiStore callBatch = new BatchForCreateWebhookMultiStore(store);
|
|
Database.executeBatch(callBatch, 1);
|
|
|
|
}else if(check == 'False'){
|
|
system.debug('**check'+check);
|
|
system.debug('**config'+config);
|
|
|
|
if( config.HIC_ShopifySync__order__c != null && config.HIC_ShopifySync__Opportunity__c != null){
|
|
if(config.HIC_ShopifySync__order__c == false){
|
|
config.HIC_ShopifySync__Order_Line_Item__c = false;
|
|
}else{
|
|
config.HIC_ShopifySync__Order_Line_Item__c = true;
|
|
}
|
|
|
|
if(config.HIC_ShopifySync__Opportunity__c == false){
|
|
config.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
|
}
|
|
|
|
if(config.HIC_ShopifySync__order__c == false && config.HIC_ShopifySync__Opportunity__c == true ){
|
|
config.HIC_ShopifySync__Opportunity_Line_Item__c = true;
|
|
}
|
|
|
|
}
|
|
|
|
if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')){
|
|
|
|
upsert config HIC_ShopifySync__Store__c;
|
|
|
|
}
|
|
}else if(check == 'Normal'){
|
|
if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')){
|
|
|
|
upsert config HIC_ShopifySync__Store__c;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
}catch( Exception e ){
|
|
//CustomSettingRecordInsert.SuccessMailSend('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber());
|
|
System.debug('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber());
|
|
return false;
|
|
}
|
|
// return false;
|
|
}
|
|
|
|
/**************************************savePriceBookMapping*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Pricebook field mapping for order and opportunity
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
|
|
@AuraEnabled
|
|
public static boolean savePriceBookMapping( String storename, String pricebookId ){
|
|
try{
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c > pricebook2MappingList = new List<HIC_ShopifySync__HIC_Field_Mapping__c >();
|
|
String query = ' select '+CheckAccessibility.isAccessible('id,name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where ' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +'= \'Pricebook2Id\' AND '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+storename+'\' LIMIT 49999';
|
|
pricebook2MappingList = database.query(query);
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c mapping : pricebook2MappingList){
|
|
mapping.HIC_ShopifySync__Shopify_Fields__c = pricebookId;
|
|
}
|
|
update pricebook2MappingList;
|
|
return true;
|
|
}catch(Exception e){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************getConfigration*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get saved Configuration to display in the page
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getConfigration(){
|
|
try{
|
|
List<HIC_ShopifySync__Configuration__c> cyptokeyquery = new List<HIC_ShopifySync__Configuration__c>();
|
|
cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__Refresh_Token__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
|
|
if(cyptokeyquery.isEmpty()) return null;
|
|
|
|
/*List<HIC_ShopifySync__Configuration__c> config = new List<HIC_ShopifySync__Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c, HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__IsCurrencyChanged__c, HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
if(config.isEmpty()) return null;*/
|
|
List<HIC_ShopifySync__HIC_Configuration__c> config = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Update_Identified_Contact_Records__c, HIC_ShopifySync__Update_Identified_Account_Records__c, HIC_ShopifySync__Upsert_Account_basis_on_Customer_Company__c, HIC_ShopifySync__Upsert_Customer_basis_on_Email__c, HIC_ShopifySync__DNCDAMissingAccounts__c, HIC_ShopifySync__Shopify_Objects__c, HIC_ShopifySync__Turn_on_DND_synced_Customers__c,HIC_ShopifySync__Store__c,HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c Where HIC_ShopifySync__Store__c != \'Default\' order by LastModifiedDate desc Limit 1');
|
|
if(config.isEmpty()){
|
|
config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Update_Identified_Contact_Records__c, HIC_ShopifySync__Update_Identified_Account_Records__c, HIC_ShopifySync__Upsert_Account_basis_on_Customer_Company__c, HIC_ShopifySync__Upsert_Customer_basis_on_Email__c, HIC_ShopifySync__DNCDAMissingAccounts__c, HIC_ShopifySync__Shopify_Objects__c, HIC_ShopifySync__Turn_on_DND_synced_Customers__c,HIC_ShopifySync__Store__c,HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c Where HIC_ShopifySync__Store__c = \'Default\' order by LastModifiedDate desc Limit 1');
|
|
config[0].Id = null;
|
|
config[0].HIC_ShopifySync__Refresh_Token__c = cyptokeyquery[0].HIC_ShopifySync__Refresh_Token__c;
|
|
return JSON.serialize(config[0] );
|
|
}
|
|
|
|
config[0].HIC_ShopifySync__Refresh_Token__c = cyptokeyquery[0].HIC_ShopifySync__Refresh_Token__c;
|
|
if(config[0].HIC_ShopifySync__Private_Key_Password__c != null && config[0].HIC_ShopifySync__Private_Key_Password__c != ''){
|
|
String PASSWORD = String.valueof(config[0].HIC_ShopifySync__Private_Key_Password__c);
|
|
|
|
Blob cryptoKey = Blob.valueOf(String.valueof(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c));
|
|
|
|
Blob data = Blob.valueOf(PASSWORD);
|
|
Blob encryptedData = Crypto.encryptWithManagedIV('AES128', cryptoKey, data );
|
|
String b64Data = EncodingUtil.base64Encode(encryptedData)+'True';
|
|
if(b64Data != null && b64Data != ''){
|
|
config[0].HIC_ShopifySync__Private_Key_Password__c = b64Data;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
return JSON.serialize(config[0] );
|
|
}catch(Exception e){
|
|
// CustomSettingRecordInsert.SuccessMailSend('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber());
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
@AuraEnabled
|
|
public static String getConfigrations(){
|
|
try{
|
|
List<HIC_ShopifySync__Configuration__c> cyptokeyquery = new List<HIC_ShopifySync__Configuration__c>();
|
|
cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c');
|
|
|
|
if(cyptokeyquery.isEmpty()) return null;
|
|
|
|
List<HIC_ShopifySync__HIC_Configuration__c> configList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
|
configList = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c,HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c Where HIC_ShopifySync__Store__c != \'Default\' ');
|
|
if(configList.isEmpty()) return null;
|
|
|
|
for(HIC_ShopifySync__HIC_Configuration__c config : configList){
|
|
if(config.HIC_ShopifySync__Private_Key_Password__c != null && config.HIC_ShopifySync__Private_Key_Password__c != ''){
|
|
String PASSWORD = String.valueof(config.HIC_ShopifySync__Private_Key_Password__c);
|
|
|
|
Blob cryptoKey = Blob.valueOf(String.valueof(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c));
|
|
|
|
Blob data = Blob.valueOf(PASSWORD);
|
|
Blob encryptedData = Crypto.encryptWithManagedIV('AES128', cryptoKey, data );
|
|
String b64Data = EncodingUtil.base64Encode(encryptedData);
|
|
if(b64Data != null && b64Data != ''){
|
|
config.HIC_ShopifySync__Private_Key_Password__c = b64Data;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return JSON.serialize(configList );
|
|
}catch(Exception e){
|
|
//CustomSettingRecordInsert.SuccessMailSend('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber());
|
|
return e.getMessage()+''+e.getLineNumber();
|
|
}
|
|
|
|
}
|
|
/**************************************saveGeneral*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* save Configuration setting into Salesforce
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveGeneral( String configObj ){
|
|
try{
|
|
HIC_ShopifySync__Configuration__c config = new HIC_ShopifySync__Configuration__c();
|
|
config = ( HIC_ShopifySync__Configuration__c )JSON.deserialize(configObj, HIC_ShopifySync__Configuration__c.class);
|
|
if(CheckAccessibility.isUpsertable('Name', 'HIC_ShopifySync__Configuration__c'))
|
|
upsert config Name;
|
|
return true;
|
|
}catch( Exception e ){
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**************************************getDefaultOppClosedate*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Saved Default Opportunity Closed date
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static HIC_ShopifySync__HIC_Field_Mapping__c getDefaultOppClosedate(string store){
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fm = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
//System.debug('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-CloseDate\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999');
|
|
fm = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__GQL_Field_API__c, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-CloseDate\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999');
|
|
if(!fm.isEmpty()){
|
|
return fm[0];
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************getAccountDetails*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get selected Account details to display into the page
|
|
* Based on Account ID
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static Account getAccountDetails(String accId){
|
|
List<Account> acc = new List<Account>();
|
|
acc = database.query('select '+Checkaccessibility.isAccessible('id, Name','Account')+' from Account where '+Checkaccessibility.isAccessible('id','Account')+' =: accId limit 1');
|
|
if(acc != null && !acc.isEmpty()){
|
|
return acc[0];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**************************************getDefaultOppStage*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Get Default Opportunity's Stage
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String getDefaultOppStage(string store){
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fm = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
System.debug('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-StageName\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 1');
|
|
fm = database.query('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-StageName\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 1');
|
|
system.debug('getDefaultOppStage'+ fm);
|
|
if(!fm.isempty() && fm != null && String.isNotBlank(fm[0].HIC_ShopifySync__Shopify_Fields__c)){
|
|
return fm[0].HIC_ShopifySync__Shopify_Fields__c;
|
|
}else{
|
|
Schema.DescribeFieldResult fieldResult = Opportunity.stageName.getDescribe();
|
|
List<Schema.PickListEntry> ple = fieldResult.getPickListValues();
|
|
if(!ple.isEmpty() && ple != null){
|
|
return String.valueOf(ple[0].getLabel());
|
|
}
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**************************************saveFieldMapping*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Field Mapping into the Saleforce Field Mapping Object.
|
|
* @param String contactList - List of Contact fieldmapping
|
|
* @param String orderList - List of Order fieldmapping
|
|
* @param String orderProductList - List of Order Product fieldmapping
|
|
* @param String draftOrderList - List of draft Order fieldmapping
|
|
* @param String draftOrderProductList - List of order product fieldmapping
|
|
* @param String opportunityList - List of Opportunity fieldmapping
|
|
* @param String opportunityProductList - List of Opportunity Product fieldmapping
|
|
* @param String DefaultAccountForContacts - List of Account and Contact fieldmapping
|
|
* @param String DefaultAccountForOrders - List of Default Account for Order and Opportunity fieldmapping
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveFieldMapping( String contactList,String orderList,String orderProductList,String draftOrderList,String draftOrderProductList,String opportunityList,String opportunityProductList,String DefaultAccountForContacts,String DefaultAccountForOrders, String store, String isNewStoreMapping){
|
|
/*Boolean isNewStoreMappingBoolean = isNewStoreMapping.containsIgnoreCase('true') ? true : false;
|
|
if(isNewStoreMappingBoolean){
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> InitialList = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' LIMIT 49999];
|
|
if(!listOfFieldMappingofFixedFields.isEmpty()){
|
|
System.debug('listOfFieldMappingofFixedFields-->if');
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false);
|
|
InitialList.add(cloned);
|
|
}
|
|
}
|
|
|
|
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :InitialList ){
|
|
checkname.HIC_ShopifySync__Store__c = store;
|
|
checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c;
|
|
|
|
if(checkname.name != null && checkname.name != ''){
|
|
checkname.name = checkFieldLengthAndReturnValue(checkname.name);
|
|
}
|
|
}
|
|
|
|
if(!InitialList.isEmpty()){
|
|
upsert InitialList HIC_ShopifySync__Store_External_ID__c;
|
|
}
|
|
} */
|
|
try{
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmList = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
if(contactList != null && contactList != ' '){
|
|
|
|
|
|
List<FieldMappingWrapper> accFMList = new List<FieldMappingWrapper>();
|
|
system.debug('**contactList--'+contactList);
|
|
CheckAccessibility.isAccessible('HIC_ShopifySync__External_ID__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Shopify_Field_Type__c,HIC_ShopifySync__Nested__c,HIC_ShopifySync__Shopify_Fields__c,HIC_ShopifySync__SF_Field_Type__c,Name,HIC_ShopifySync__Object_Name__c,HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c');
|
|
CheckAccessibility.isUpsertable('HIC_ShopifySync__External_ID__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Shopify_Field_Type__c,HIC_ShopifySync__Nested__c,HIC_ShopifySync__Shopify_Fields__c,HIC_ShopifySync__SF_Field_Type__c,Name,HIC_ShopifySync__Object_Name__c,HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c');
|
|
accFMList = ( List<FieldMappingWrapper> )JSON.deserialize(contactList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : accFMList){
|
|
System.debug('ob***'+ ob);
|
|
System.debug('ObjectSelectfield--> '+ob.selectedfields);
|
|
System.debug('ObjectShopifyfield--> '+ ob.shopifyFieldName);
|
|
System.debug('ObjectNestedfield--> '+ ob.shopifyNested);
|
|
System.debug('Objectgraphqlfield--> '+ ob.graphqlfield);
|
|
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
//System.debug('salesforce field'+ob.salesforceFieldLabel);
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if(orderList != null && orderList != null){
|
|
List<FieldMappingWrapper> ordFMList = new List<FieldMappingWrapper>();
|
|
ordFMList = ( List<FieldMappingWrapper> )JSON.deserialize(orderList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : ordFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else {
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
if(orderProductList != null && orderProductList != ''){
|
|
List<FieldMappingWrapper> ordProFMList = new List<FieldMappingWrapper>();
|
|
ordProFMList = ( List<FieldMappingWrapper> )JSON.deserialize(orderProductList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : ordProFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if(draftOrderList != null && draftOrderList != null){
|
|
List<FieldMappingWrapper> drfOrdFMList = new List<FieldMappingWrapper>();
|
|
drfOrdFMList = ( List<FieldMappingWrapper> )JSON.deserialize(draftOrderList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : drfOrdFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else {
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
if(draftOrderProductList != null && draftOrderProductList != ''){
|
|
List<FieldMappingWrapper> drfOrdProFMList = new List<FieldMappingWrapper>();
|
|
drfOrdProFMList = ( List<FieldMappingWrapper> )JSON.deserialize(draftOrderProductList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : drfOrdProFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if(opportunityList!= null && opportunityList != ''){
|
|
List<FieldMappingWrapper> oppFMList = new List<FieldMappingWrapper>();
|
|
oppFMList = ( List<FieldMappingWrapper> )JSON.deserialize(opportunityList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : oppFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if(opportunityProductList!= null && opportunityProductList!= ''){
|
|
List<FieldMappingWrapper> oppProFMList = new List<FieldMappingWrapper>();
|
|
oppProFMList = ( List<FieldMappingWrapper> )JSON.deserialize(opportunityProductList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : oppProFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}
|
|
else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != '' && fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
Account acc = new Account();
|
|
acc = ( Account )JSON.deserialize(DefaultAccountForContacts, Account.class);
|
|
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping : [select Id, Name,HIC_ShopifySync__GQL_Field_API__c, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c from HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c='default' AND HIC_ShopifySync__SF_Field__c ='Accountid']){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c clonedMapping = fieldMapping.clone(false,false,true,false);
|
|
if(acc != null && acc.get('Id') != null && acc.get('Id') != ''){
|
|
clonedMapping.HIC_ShopifySync__Default_Value__c = true;
|
|
clonedMapping.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id'));
|
|
clonedMapping.HIC_ShopifySync__GQL_Field_API__c = String.valueOf(acc.get('Id'));
|
|
}
|
|
fmList.add(clonedMapping);
|
|
}
|
|
|
|
/*if(acc != null){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Contact-Accountid';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Contact-Accountid';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Contact';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
if(acc.get('Id') != null && acc.get('Id') != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id'));
|
|
}
|
|
fmList.add(fm);
|
|
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm1 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm1.Name = 'Opportunity-Accountid';
|
|
fm1.HIC_ShopifySync__External_ID__c = 'Opportunity-Accountid';
|
|
fm1.HIC_ShopifySync__Default_Value__c = true;
|
|
fm1.HIC_ShopifySync__Object_Name__c = 'Opportunity';
|
|
fm1.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm1.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm1.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
fm1.HIC_ShopifySync__Nested__c = null;
|
|
if(acc.get('Id') != null && acc.get('Id') != ''){
|
|
fm1.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id'));
|
|
}
|
|
|
|
fmList.add(fm1);
|
|
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm2 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm2.Name = 'Order-Accountid';
|
|
fm2.HIC_ShopifySync__External_ID__c = 'Order-Accountid';
|
|
fm2.HIC_ShopifySync__Default_Value__c = true;
|
|
fm2.HIC_ShopifySync__Object_Name__c = 'Order';
|
|
fm2.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm2.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm2.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
if(acc.get('Id') != null && acc.get('Id') != ''){
|
|
fm2.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id'));
|
|
}
|
|
|
|
fmList.add(fm2);
|
|
|
|
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm3 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm3.Name = 'DraftOrder-Accountid';
|
|
fm3.HIC_ShopifySync__External_ID__c = 'DraftOrder-Accountid';
|
|
fm3.HIC_ShopifySync__Default_Value__c = true;
|
|
fm3.HIC_ShopifySync__Object_Name__c = 'DraftOrder';
|
|
fm3.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm3.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm3.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
if(acc.get('Id') != null && acc.get('Id') != ''){
|
|
fm3.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id'));
|
|
}
|
|
|
|
fmList.add(fm3);
|
|
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Contact-Accountid';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Contact-Accountid';
|
|
fm.HIC_ShopifySync__Default_Value__c = false;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Contact';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = 'id';
|
|
fmList.add(fm);
|
|
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm1 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm1.Name = 'Opportunity-Accountid';
|
|
fm1.HIC_ShopifySync__External_ID__c = 'Opportunity-Accountid';
|
|
fm1.HIC_ShopifySync__Default_Value__c = false;
|
|
fm1.HIC_ShopifySync__Object_Name__c = 'Opportunity';
|
|
fm1.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm1.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm1.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
fm1.HIC_ShopifySync__Nested__c = 'customer';
|
|
fm1.HIC_ShopifySync__Shopify_Fields__c = 'Id';
|
|
fmList.add(fm1);
|
|
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm2 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm2.Name = 'Order-Accountid';
|
|
fm2.HIC_ShopifySync__External_ID__c = 'Order-Accountid';
|
|
fm2.HIC_ShopifySync__Default_Value__c = false;
|
|
fm2.HIC_ShopifySync__Object_Name__c = 'Order';
|
|
fm2.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm2.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm2.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
fm2.HIC_ShopifySync__Nested__c = 'customer';
|
|
fm2.HIC_ShopifySync__Shopify_Fields__c = 'Id';
|
|
|
|
|
|
fmList.add(fm2);
|
|
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm3 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm3.Name = 'DraftOrder-Accountid';
|
|
fm3.HIC_ShopifySync__External_ID__c = 'DraftOrder-Accountid';
|
|
fm3.HIC_ShopifySync__Default_Value__c = false;
|
|
fm3.HIC_ShopifySync__Object_Name__c = 'DraftOrder';
|
|
fm3.HIC_ShopifySync__SF_Field__c = 'Accountid';
|
|
fm3.HIC_ShopifySync__Shopify_Field_Type__c = 'String';
|
|
fm3.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE';
|
|
fm3.HIC_ShopifySync__Nested__c = 'customer';
|
|
fm3.HIC_ShopifySync__Shopify_Fields__c = 'Id';
|
|
|
|
fmList.add(fm3);
|
|
}*/
|
|
|
|
|
|
|
|
//check field's value length
|
|
if(!fmList.isEmpty() && fmList.size() > 0){
|
|
System.debug('listOfFieldMappingofFixedFields-->');
|
|
|
|
/*list<HIC_ShopifySync__HIC_Field_Mapping__c> listOfFieldMappingofFixedFields = new list<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
if(isNewStoreMappingBoolean){
|
|
listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' and (HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Inventory__c' Or
|
|
HIC_ShopifySync__Object_Name__c = 'Product2' Or
|
|
HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Collect__c' Or
|
|
HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Inventory_Level__c' Or
|
|
HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Location__c' Or
|
|
HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Collection__c' Or
|
|
HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Order_Fulfillment_Item__c' Or
|
|
HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Variant__c' or (HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE' AND HIC_ShopifySync__SF_Field__c != 'Accountid'))
|
|
];
|
|
}else{
|
|
listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' AND
|
|
HIC_ShopifySync__SF_Field__c != 'Accountid'
|
|
];
|
|
}
|
|
|
|
System.debug('listOfFieldMappingofFixedFields--> '+listOfFieldMappingofFixedFields.size());
|
|
if(!listOfFieldMappingofFixedFields.isEmpty()){
|
|
System.debug('listOfFieldMappingofFixedFields-->if');
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false);
|
|
fmList.add(cloned);
|
|
}
|
|
}
|
|
*/
|
|
|
|
/*list<HIC_ShopifySync__HIC_Field_Mapping__c> listOfFieldMappingofFixedFields = new list<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
if(isNewStoreMappingBoolean){
|
|
listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' AND
|
|
(HIC_ShopifySync__Shopify_Field_Type__c = 'Reference' or Name = 'Order-Status')
|
|
];
|
|
}
|
|
|
|
System.debug('listOfFieldMappingofFixedFields--> '+listOfFieldMappingofFixedFields.size());
|
|
if(!listOfFieldMappingofFixedFields.isEmpty()){
|
|
System.debug('listOfFieldMappingofFixedFields-->if');
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false);
|
|
fmList.add(cloned);
|
|
}
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){
|
|
checkname.HIC_ShopifySync__Store__c = store;
|
|
checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c;
|
|
|
|
if(checkname.name != null && checkname.name != ''){
|
|
checkname.name = checkFieldLengthAndReturnValue(checkname.name);
|
|
}
|
|
}
|
|
|
|
if(!fmList.isEmpty()){
|
|
upsert fmList HIC_ShopifySync__Store_External_ID__c;
|
|
//Update fmList;
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
}catch( Exception e ){
|
|
System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
/**************************************saveFieldMappingSecond*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save account & Contact / Person Account Field mapping
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* @param String accountList - List of Account field mapping
|
|
* @param String DefaultOpportunityStage - Default Opportunity stage selected by the user
|
|
* @param String today - Identify records its person account or not
|
|
* @param boolean check - check true means user selected the default value into the page
|
|
* @param boolean Defaultmapping - Deafult Close date mapping by user
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveFieldMappingSecond(String accountList, String productList, String variantList, String DefaultOpportunityStage , String today, boolean check ,boolean Defaultmapping, String store ){
|
|
|
|
try{
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmList = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
|
|
if(productList != null && productList != null){
|
|
List<FieldMappingWrapper> proFMList = new List<FieldMappingWrapper>();
|
|
proFMList = ( List<FieldMappingWrapper> )JSON.deserialize(productList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : proFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}else if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
System.debug('ob.graphqlfield'+ob.graphqlfield);
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = '';
|
|
if(ob.graphqlfield.containsIgnoreCase('.')){
|
|
System.debug('ob.graphqlfield'+ob.graphqlfield);
|
|
if(ob.graphqlfield.containsIgnoreCase(',')){
|
|
System.debug('ob.graphqlfield'+ob.graphqlfield);
|
|
for(String str : ob.graphqlfield.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__GQL_Field_API__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = fm.HIC_ShopifySync__GQL_Field_API__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.graphqlfield.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else {
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
if(variantList != null && variantList != ''){
|
|
List<FieldMappingWrapper> variantFMList = new List<FieldMappingWrapper>();
|
|
variantFMList = ( List<FieldMappingWrapper> )JSON.deserialize(variantList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : variantFMList){
|
|
System.debug('ob***'+ ob);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}else if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
System.debug('ob.graphqlfield'+ob.graphqlfield);
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = '';
|
|
if(ob.graphqlfield.containsIgnoreCase('.')){
|
|
System.debug('ob.graphqlfield'+ob.graphqlfield);
|
|
if(ob.graphqlfield.containsIgnoreCase(',')){
|
|
System.debug('ob.graphqlfield'+ob.graphqlfield);
|
|
for(String str : ob.graphqlfield.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__GQL_Field_API__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = fm.HIC_ShopifySync__GQL_Field_API__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.graphqlfield.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields;
|
|
if(ob.salesforcefields.contains('HIC_ShopifySync__')){
|
|
String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_');
|
|
|
|
fm.Name = tempfieldname;
|
|
}else{
|
|
fm.Name = ob.sobjectType+'-'+ob.salesforcefields;
|
|
}
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if(DefaultOpportunityStage != null && DefaultOpportunityStage != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Opportunity-StageName';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Opportunity-StageName';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Opportunity';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'StageName';
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = 'pickList';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = DefaultOpportunityStage;
|
|
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = DefaultOpportunityStage;
|
|
|
|
fmList.add(fm);
|
|
}
|
|
System.debug('today---'+today);
|
|
if(check && today != null && today != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Opportunity-CloseDate';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Opportunity-CloseDate';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Opportunity';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'CloseDate';
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'Date';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = today;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c=today;
|
|
fmList.add(fm);
|
|
}else if(!Defaultmapping){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Opportunity-CloseDate';
|
|
//fm.HIC_ShopifySync__Default_Value__c = false;
|
|
fm.HIC_ShopifySync__External_ID__c = 'Opportunity-CloseDate';
|
|
fmList.add(fm);
|
|
}
|
|
List<FieldMappingWrapper> accFMList = new List<FieldMappingWrapper>();
|
|
if(fmList.size() > 0){
|
|
|
|
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){
|
|
checkname.HIC_ShopifySync__Store__c = store;
|
|
checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c;
|
|
|
|
if(checkname.name != null && checkname.name != ''){
|
|
checkname.name = checkFieldLengthAndReturnValue(checkname.name);
|
|
}
|
|
}
|
|
|
|
|
|
upsert fmList HIC_ShopifySync__Store_External_ID__c;
|
|
}
|
|
|
|
return true;
|
|
}catch( Exception e ){
|
|
System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
//wrapper class for field mapping
|
|
public class FieldMappingWrapper {
|
|
|
|
public String sobjectType;
|
|
public String salesforcefields;
|
|
public String selectedfields;
|
|
public String salesforceFieldType;
|
|
public String salesforceFieldLabel;
|
|
public String shopifyFieldName;
|
|
public String shopifyNested;
|
|
public String shopifyFieldType;
|
|
public Boolean DefaultValue;
|
|
public String graphqlfield;
|
|
|
|
public FieldMappingWrapper parse(String json) {
|
|
return (FieldMappingWrapper) System.JSON.deserialize(json, FieldMappingWrapper.class);
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************saveRecordTypeMapping*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Save Salesforce Object's Recordtypes
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* @param String PersonAccountRecordTypeId - personAccount RecordtypeID selected by user in page
|
|
* @param String AccountRecordTypeId - business account RecordtypeID selected by user in page
|
|
* @param String ContactRecordTypeId - contact RecordtypeID selected by user in page
|
|
* @param String OrderRecordTypeId - order RecordtypeID selected by user in page
|
|
* @param String OpportunityRecordTypeId - Opportunity RecordtypeID selected by user in page
|
|
* @param String DraftorderRecordTypeId - draft order RecordtypeID selected by user in page
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveRecordTypeMapping(String PersonAccountRecordTypeId,String AccountRecordTypeId,String ContactRecordTypeId,String OrderRecordTypeId,String OpportunityRecordTypeId, String DraftorderRecordTypeId){
|
|
System.debug('PersonAccountRecordTypeId'+PersonAccountRecordTypeId);
|
|
System.debug('AccountRecordTypeId'+AccountRecordTypeId);
|
|
System.debug('ContactRecordTypeId'+ContactRecordTypeId);
|
|
System.debug('OrderRecordTypeId'+OrderRecordTypeId);
|
|
System.debug('OpportunityRecordTypeId'+OpportunityRecordTypeId);
|
|
System.debug('DraftorderRecordTypeId'+DraftorderRecordTypeId);
|
|
|
|
String[] paramList = PersonAccountRecordTypeId.split(',');
|
|
if(paramList[0] == 'undefined'){
|
|
PersonAccountRecordTypeId = null;
|
|
}else{
|
|
PersonAccountRecordTypeId = paramList[0];
|
|
}
|
|
String store = paramList[1];
|
|
System.debug('store'+store);
|
|
try{
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmList = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
if(PersonAccountRecordTypeId != null && PersonAccountRecordTypeId != ''){
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'PersonAccount-RecordTypeId';
|
|
fm.HIC_ShopifySync__External_ID__c = 'PersonAccount-RecordTypeId';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'PersonAccount';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = PersonAccountRecordTypeId;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = PersonAccountRecordTypeId;
|
|
fm.HIC_ShopifySync__Store__c = store;
|
|
fm.HIC_ShopifySync__Store_External_ID__c = store+'PersonAccount-RecordTypeId';
|
|
fmList.add(fm);
|
|
}
|
|
|
|
if(AccountRecordTypeId != null && AccountRecordTypeId != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Account-RecordTypeId';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Account-RecordTypeId';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Account';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = AccountRecordTypeId;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = AccountRecordTypeId;
|
|
fm.HIC_ShopifySync__Store__c = store;
|
|
fm.HIC_ShopifySync__Store_External_ID__c = store+'Account-RecordTypeId';
|
|
fmList.add(fm);
|
|
}
|
|
|
|
if(ContactRecordTypeId != null && ContactRecordTypeId != ''){
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Contact-RecordTypeId';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Contact-RecordTypeId';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Contact';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ContactRecordTypeId;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ContactRecordTypeId;
|
|
fm.HIC_ShopifySync__Store__c = store;
|
|
fm.HIC_ShopifySync__Store_External_ID__c = store+'Contact-RecordTypeId';
|
|
fmList.add(fm);
|
|
}
|
|
|
|
if(OrderRecordTypeId != null && OrderRecordTypeId != ''){
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Order-RecordTypeId';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Order-RecordTypeId';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Order';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = OrderRecordTypeId;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = OrderRecordTypeId;
|
|
fm.HIC_ShopifySync__Store__c = store;
|
|
fm.HIC_ShopifySync__Store_External_ID__c = store+'Order-RecordTypeId';
|
|
fmList.add(fm);
|
|
}
|
|
if(DraftorderRecordTypeId != null && DraftorderRecordTypeId!= ''){
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'DraftOrder-RecordTypeId';
|
|
fm.HIC_ShopifySync__External_ID__c = 'DraftOrder-RecordTypeId';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Draftorder';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = DraftOrderRecordTypeId;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = DraftOrderRecordTypeId;
|
|
fm.HIC_ShopifySync__Store__c = store;
|
|
fm.HIC_ShopifySync__Store_External_ID__c = store+'DraftOrder-RecordTypeId';
|
|
fmList.add(fm);
|
|
}
|
|
|
|
if(OpportunityRecordTypeId != null && OpportunityRecordTypeId != ''){
|
|
//System.debug('acc '+acc);
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
fm.Name = 'Opportunity-RecordTypeId';
|
|
fm.HIC_ShopifySync__External_ID__c = 'Opportunity-RecordTypeId';
|
|
fm.HIC_ShopifySync__Default_Value__c = true;
|
|
fm.HIC_ShopifySync__Object_Name__c = 'Opportunity';
|
|
fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId';
|
|
//fm.Shopify_Field_Type__c = 'date';
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = 'reference';
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = OpportunityRecordTypeId;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = OpportunityRecordTypeId;
|
|
fm.HIC_ShopifySync__Store__c = store;
|
|
fm.HIC_ShopifySync__Store_External_ID__c = store+'Opportunity-RecordTypeId';
|
|
fmList.add(fm);
|
|
}
|
|
|
|
|
|
if(fmList.size() > 0){
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){
|
|
if(checkname.name != null && checkname.name != ''){
|
|
checkname.name = checkFieldLengthAndReturnValue(checkname.name);
|
|
}
|
|
}
|
|
upsert fmList HIC_ShopifySync__Store_External_ID__c;
|
|
}
|
|
|
|
|
|
return true;
|
|
}catch( Exception e ){
|
|
System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
/**************************************InitializeAccount*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Use for Insert Default Account in Salesforce.
|
|
* Whenever Shopify's Account is not found in Salesforce and its required on records
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* @param String accountList - save required fieldmapping of Account and Contact
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static boolean saveRequiredFieldMapping(String accountList, String store){
|
|
try{
|
|
// List<HIC_ShopifySync__Shopify_Fields__c> gqllist = new <HIC_ShopifySync__Shopify_Fields__c>([select name, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Nested__c,HIC_ShopifySync__Object_Name__c,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__Data_Type__c from HIC_ShopifySync__Shopify_Fields__c WITH USER_MODE limit 49999]);
|
|
system.debug('** I am Here at accountList'+accountList);
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmList = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
|
|
|
Set<String> checkExternalId = new Set<String>();
|
|
|
|
List<FieldMappingWrapper> accFMList = new List<FieldMappingWrapper>();
|
|
//system.debug('**contactList--'+contactList);
|
|
|
|
accFmList = ( List<FieldMappingWrapper> )JSON.deserialize(accountList, List<FieldMappingWrapper>.class);
|
|
for(FieldMappingWrapper ob : accFMList){
|
|
System.debug('ob***'+ ob);
|
|
//System.debug('salesforce field'+ob.salesforceFieldLabel);
|
|
if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.salesforcefields != null && ob.salesforcefields != '' && (ob.salesforcefields == 'firstName' || ob.salesforcefields == 'lastName' || ob.salesforcefields.containsIgnoreCase('person') || ob.salesforcefields.contains('__pc')) ){
|
|
fm.HIC_ShopifySync__Object_Name__c = 'PersonAccount';
|
|
}
|
|
else if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName;
|
|
}else if(ob.selectedfields != null && ob.selectedfields != ''){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = '';
|
|
if(ob.selectedfields.containsIgnoreCase('.')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
if(ob.selectedfields.containsIgnoreCase(',')){
|
|
System.debug('ob.selectedfields'+ob.selectedfields);
|
|
for(String str : ob.selectedfields.split(',')){
|
|
List<String> strList = new List<String>();
|
|
system.debug('*** str'+str);
|
|
strList = str.split('\\.');
|
|
System.debug('ob.strList'+strList);
|
|
system.debug('**size'+strList.size());
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1];
|
|
}
|
|
}
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}else{
|
|
List<String> strList = new List<String>();
|
|
strList = ob.selectedfields.split('\\.');
|
|
system.debug('strList-->'+strList);
|
|
|
|
if(!strList.isEmpty()){
|
|
ob.shopifyNested = strList[0];
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = strList[1];
|
|
}
|
|
//fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(',');
|
|
}
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
}
|
|
}
|
|
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
if(fm.HIC_ShopifySync__Default_Value__c){
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields;
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields;
|
|
}
|
|
}
|
|
if(ob.shopifyNested != null && ob.shopifyNested != ''){
|
|
fm.HIC_ShopifySync__Nested__c = ob.shopifyNested;
|
|
}else{
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
}
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
|
|
fm.HIC_ShopifySync__External_ID__c = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields;
|
|
fm.Name = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields;
|
|
|
|
|
|
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''){
|
|
if(!checkExternalId.contains(fm.HIC_ShopifySync__External_ID__c)){
|
|
checkExternalId.add(fm.HIC_ShopifySync__External_ID__c);
|
|
fmList.add(fm);
|
|
}
|
|
}
|
|
}else{
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
if(ob.salesforcefields != null && ob.salesforcefields != '' && (ob.salesforcefields == 'firstName' || ob.salesforcefields == 'lastName' || ob.salesforcefields.containsIgnoreCase('person') || ob.salesforcefields.contains('__pc')) ){
|
|
fm.HIC_ShopifySync__Object_Name__c = 'PersonAccount';
|
|
}
|
|
else if(ob.sobjectType != null && ob.sobjectType != ''){
|
|
System.debug('inif salesforce field'+ob.sobjectType);
|
|
fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType;
|
|
}
|
|
if(ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields;
|
|
}
|
|
if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){
|
|
fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType;
|
|
}
|
|
if(ob.graphqlfield != null && ob.graphqlfield != ''){
|
|
fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield;
|
|
}
|
|
if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){
|
|
//fm.Object_Name__c = ob.salesforceFieldLabel;
|
|
}
|
|
if(ob.DefaultValue != null){
|
|
fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue;
|
|
}
|
|
|
|
fm.HIC_ShopifySync__Shopify_Fields__c = null;
|
|
|
|
|
|
fm.HIC_ShopifySync__Nested__c = null;
|
|
|
|
if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType;
|
|
}else{
|
|
fm.HIC_ShopifySync__Shopify_Field_Type__c = null;
|
|
}
|
|
if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){
|
|
|
|
fm.HIC_ShopifySync__External_ID__c = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields;
|
|
fm.Name = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields;
|
|
|
|
|
|
|
|
}
|
|
if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''){
|
|
if(!checkExternalId.contains(fm.HIC_ShopifySync__External_ID__c)){
|
|
checkExternalId.add(fm.HIC_ShopifySync__External_ID__c);
|
|
fmList.add(fm);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(fmList.size() > 0){
|
|
for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){
|
|
checkname.HIC_ShopifySync__Store__c = store;
|
|
checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c;
|
|
|
|
if(checkname.name != null && checkname.name != ''){
|
|
checkname.name = checkFieldLengthAndReturnValue(checkname.name);
|
|
}
|
|
}
|
|
upsert fmList HIC_ShopifySync__Store_External_ID__c;
|
|
}
|
|
return true;
|
|
}catch( Exception e ){
|
|
System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* Handling Graph QL Fields
|
|
*/
|
|
|
|
// public static string handleGraphQlFields(String selectedFields){
|
|
// String graphQlFields = null;
|
|
// if(String.isNotBlank(selectedFields)){
|
|
// try{
|
|
|
|
|
|
// for(HIC_ShopifySync__Shopify_Fields__c graph:gqllist){
|
|
|
|
// }
|
|
// }Catch(Exception ex){
|
|
// System.debug('@@@ Exception occured at line : '+ex.getLineNumber()+' with message : '+ex.getMessage());
|
|
// }
|
|
// }
|
|
// return graphQlFields;
|
|
// }
|
|
|
|
|
|
|
|
/**************************************checkCreds*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* Verify Shopify Credetials via callout into the Shopify
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static Boolean checkCreds(String shopifyUrl, String USER_NAME, String PASSWORD){
|
|
|
|
try {
|
|
List<HIC_ShopifySync__Configuration__c> cyptokeyquery = new List<HIC_ShopifySync__Configuration__c>();
|
|
cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
|
|
if(cyptokeyquery.isEmpty()) return null;
|
|
|
|
System.debug('USER_NAME++'+USER_NAME);
|
|
|
|
if(PASSWORD.containsIgnoreCase('True')){
|
|
PASSWORD = PASSWORD.removeEnd('True');
|
|
Blob cryptoKey1 = Blob.valueOf(String.valueOf(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c));
|
|
Blob data = EncodingUtil.base64Decode(PASSWORD);
|
|
Blob decryptedData = Crypto.decryptWithManagedIV('AES128', cryptoKey1, data);
|
|
String dryptDatapsd = decryptedData.toString();
|
|
if(dryptDatapsd != null && dryptDatapsd != ''){
|
|
PASSWORD = dryptDatapsd;
|
|
}
|
|
}
|
|
|
|
System.debug('PASSWORD++'+PASSWORD);
|
|
|
|
Http h = new Http();
|
|
HttpRequest req = new HttpRequest();
|
|
String responseBody;
|
|
|
|
String endPointValue = shopifyUrl + '/admin/shop.json';
|
|
|
|
req.setEndpoint(endPointValue);
|
|
//Adding certificate to HTTP Requests
|
|
req.setClientCertificateName('Shopify');
|
|
/*Blob headerValue = Blob.valueOf(USER_NAME + ':' + PASSWORD);
|
|
String authorizationHeader = 'Basic ' +
|
|
EncodingUtil.base64Encode(headerValue);
|
|
req.setHeader('Authorization', authorizationHeader);*/
|
|
req.setHeader('X-Shopify-Access-Token', PASSWORD);
|
|
|
|
req.setHeader('content-type', 'application/json');
|
|
|
|
req.setMethod('GET');
|
|
req.setTimeout(120000);
|
|
|
|
HttpResponse res ;
|
|
|
|
res = h.send(req);
|
|
responseBody = res.getBody();
|
|
|
|
if(res.getStatusCode() == 200){
|
|
return True;
|
|
}
|
|
}catch(Exception e){
|
|
return false;
|
|
}
|
|
return False;
|
|
}
|
|
|
|
|
|
/**************************************checkCAccesscope*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* check Shopify store access for the entity
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static String checkCAccesscope(String shopifyUrl, String USER_NAME, String PASSWORD){
|
|
try{
|
|
|
|
List<HIC_ShopifySync__Configuration__c> cyptokeyquery = new List<HIC_ShopifySync__Configuration__c>();
|
|
cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1');
|
|
|
|
if(cyptokeyquery.isEmpty()) return null;
|
|
|
|
if(PASSWORD.containsIgnoreCase('True')){
|
|
PASSWORD = PASSWORD.removeEnd('True');
|
|
Blob cryptoKey1 = Blob.valueOf(String.valueOf(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c));
|
|
Blob data = EncodingUtil.base64Decode(PASSWORD);
|
|
Blob decryptedData = Crypto.decryptWithManagedIV('AES128', cryptoKey1, data);
|
|
String dryptDatapsd = decryptedData.toString();
|
|
if(dryptDatapsd != null && dryptDatapsd != ''){
|
|
PASSWORD = dryptDatapsd;
|
|
}
|
|
}
|
|
|
|
Http h = new Http();
|
|
HttpRequest req = new HttpRequest();
|
|
String responseBody;
|
|
String AccessResponse = '';
|
|
String endPointValue = shopifyUrl + '/admin/oauth/access_scopes.json';
|
|
|
|
req.setEndpoint(endPointValue);
|
|
req.setClientCertificateName('Shopify');
|
|
/*Blob headerValue = Blob.valueOf(USER_NAME + ':' + PASSWORD);
|
|
String authorizationHeader = 'Basic ' +
|
|
EncodingUtil.base64Encode(headerValue);
|
|
req.setHeader('Authorization', authorizationHeader);*/
|
|
req.setHeader('X-Shopify-Access-Token', PASSWORD);
|
|
req.setHeader('content-type', 'application/json');
|
|
|
|
req.setMethod('GET');
|
|
req.setTimeout(120000);
|
|
try {
|
|
HttpResponse res ;
|
|
res = h.send(req);
|
|
responseBody = res.getBody();
|
|
if(res.getStatusCode() == 200){
|
|
map<string, Object> main = (map<string,object>) JSON.deserializeUntyped(responseBody);
|
|
if(!main.isempty() && main.containskey('access_scopes')){
|
|
List<Object> objectList = (list<object>) main.get('access_scopes');
|
|
for(object accessobj : objectList){
|
|
map<String,object> access_scopemap = (map<string,object>)accessobj ;
|
|
if(!access_scopemap.isEmpty() && access_scopemap.containskey('handle') && access_scopemap.get('handle') != null){
|
|
AccessResponse += access_scopemap.get('handle')+ ',';
|
|
}
|
|
}
|
|
}if(AccessResponse != null || AccessResponse != '' ){
|
|
AccessResponse.removeEnd(',');
|
|
return AccessResponse;
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
return null;
|
|
}
|
|
return null;
|
|
}catch(exception e){
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
/**************************************checkFieldLengthAndReturnValue*************************************************/
|
|
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* check Saleforce field length
|
|
* return trimed shopify trimed value based on salesforce field length
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
public static String checkFieldLengthAndReturnValue(String body){
|
|
/*Schema.SObjectType t = Schema.getGlobalDescribe().get('HIC_ShopifySync__Field_Mapping__c');
|
|
Schema.DescribeSObjectResult ObjectResult = t.getDescribe();
|
|
Schema.DescribeFieldResult fieldResult = ObjectResult.fields.getMap().get('Name').getDescribe();
|
|
|
|
if(fieldResult.getLength() > 0 && body != null){
|
|
system.debug('*****BodyLength*** '+ body.length());
|
|
if( body.length() <= fieldResult.getLength()){
|
|
return body;
|
|
}else{
|
|
return body.subString(0,fieldResult.getLength());
|
|
}
|
|
}else{
|
|
return '';
|
|
}*/
|
|
if(body != null){
|
|
system.debug('*****BodyLength*** '+ body.length());
|
|
if( body.length() <= 40){
|
|
return body;
|
|
}else{
|
|
return body.subString(0,40);
|
|
}
|
|
}else{
|
|
return '';
|
|
}
|
|
}
|
|
/**************************************RemoveStore*************************************************/
|
|
/* To remove particular store configuration, webhooks and field mappings
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
@AuraEnabled
|
|
public static Boolean RemoveStore(String store){
|
|
try{
|
|
List<HIC_ShopifySync__HIC_Field_Mapping__c > listofallcustomSetting = new List<HIC_ShopifySync__HIC_Field_Mapping__c >();
|
|
|
|
String query = ' select '+CheckAccessibility.isAccessible('id','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999';
|
|
listofallcustomSetting = database.query(query);
|
|
//system.debug('listofallcustomSetting--> '+listofallcustomSetting);
|
|
if(!listofallcustomSetting.isEmpty()){
|
|
if(CheckAccessibility.isDeletable('HIC_ShopifySync__HIC_Field_Mapping__c'))
|
|
database.delete (listofallcustomSetting,false);
|
|
}
|
|
/*Long startTime = DateTime.now().getTime();
|
|
Long finishTime = DateTime.now().getTime();
|
|
while ((finishTime - startTime) < 3000) {
|
|
//sleep for 3s
|
|
finishTime = DateTime.now().getTime();
|
|
}*/
|
|
List<HIC_ShopifySync__HIC_Configuration__c > ConfigListToDelete = new List<HIC_ShopifySync__HIC_Configuration__c >();
|
|
|
|
String query1 = ' select '+CheckAccessibility.isAccessible('id,HIC_ShopifySync__API_Key__c,HIC_ShopifySync__Private_Key_Password__c,HIC_ShopifySync__Shopify_URL__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999';
|
|
ConfigListToDelete = database.query(query1);
|
|
//system.debug('listofallcustomSetting--> '+listofallcustomSetting);
|
|
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Create', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Delete', store, JSON.serialize(ConfigListToDelete));
|
|
|
|
HICWebhookUtility.deleteWebhook('Customer', 'Create', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('Customer', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('Customer', 'Delete', store, JSON.serialize(ConfigListToDelete));
|
|
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Connect', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Disconnect', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Create', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Delete', store, JSON.serialize(ConfigListToDelete));
|
|
|
|
HICWebhookUtility.deleteWebhook('Product2', 'Create', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('Product2', 'Delete', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('Product2', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
|
|
HICWebhookUtility.deleteWebhook('DraftOrder', 'Create', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('DraftOrder', 'Delete', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('DraftOrder', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
|
|
HICWebhookUtility.deleteWebhook('Order', 'Create', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('Order', 'Update', store, JSON.serialize(ConfigListToDelete));
|
|
HICWebhookUtility.deleteWebhook('Order', 'Delete', store, JSON.serialize(ConfigListToDelete));
|
|
if(!ConfigListToDelete.isEmpty()){
|
|
if(CheckAccessibility.isDeletable('HIC_ShopifySync__HIC_Configuration__c'))
|
|
database.delete (ConfigListToDelete,false);
|
|
}
|
|
//HICWebhookUtility.deleteStoreConfigs(store);
|
|
|
|
return true;
|
|
}catch(Exception e){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@AuraEnabled
|
|
public static List<String> accFields(){
|
|
List<String> fieldsList = new List<String>();
|
|
Schema.SObjectType targetType = Schema.getGlobalDescribe().get('account');
|
|
Map<String, Schema.SObjectField> fieldMap = targetType.getDescribe().fields.getMap();
|
|
for (Schema.SObjectField field : fieldMap.values()) {
|
|
System.debug('Acc field:: '+field.getDescribe().getName());
|
|
fieldsList.add(field.getDescribe().getName());
|
|
}
|
|
return fieldsList;
|
|
}
|
|
|
|
@AuraEnabled
|
|
public static String getShopifyFields(String objectName){
|
|
return HIC_ShopifyUtility.getShopifyFields(objectName);
|
|
}
|
|
|
|
public static HIC_ShopifySync__HIC_Field_Mapping__c processFieldMappingSobjectWithAllFields(string objectName, string sfField, string shopifyField, string nested, boolean isDefault, boolean isSfId, String sfFieldType, String shopifyType, String Store){
|
|
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
|
try{
|
|
String tempObname=objectName;
|
|
String tempfieldname=sfField;
|
|
if(objectName.contains('HIC_ShopifySync__')){
|
|
tempObname= objectName.subString(17);
|
|
|
|
/* ___________________________________________*/
|
|
|
|
if(tempObname.contains('Fulfillment')){
|
|
String tempHold= tempObname.replace('Order','Ord');
|
|
tempHold= tempHold.replace('Fulfillment','Ful');
|
|
tempObname=tempHold;
|
|
}
|
|
/* ___________________________________________*/
|
|
|
|
}
|
|
if(sfField.contains('HIC_ShopifySync__')){
|
|
tempfieldname= sfField.subString(17);
|
|
}
|
|
|
|
if(string.valueOf(tempObname+'-'+tempfieldname).length() >38){
|
|
fieldMapping.name = string.valueOf(tempObname+'-'+tempfieldname).substring(0,38);
|
|
}else{
|
|
|
|
fieldMapping.name = tempObname+'-'+tempfieldname;
|
|
|
|
}
|
|
if(sfField != null && sfField != ''){
|
|
fieldMapping.HIC_ShopifySync__Object_Name__c = objectName;
|
|
fieldMapping.HIC_ShopifySync__SF_Field__c = sfField;
|
|
fieldMapping.HIC_ShopifySync__Shopify_Fields__c = shopifyField;
|
|
fieldMapping.HIC_ShopifySync__Nested__c = nested;
|
|
fieldMapping.HIC_ShopifySync__Default_Value__c = isDefault;
|
|
fieldMapping.HIC_ShopifySync__IsSFID__c = isSfId;
|
|
fieldMapping.HIC_ShopifySync__External_ID__c = objectName+'-'+sfField;
|
|
fieldMapping.HIC_ShopifySync__Store_External_ID__c = objectName+'-'+sfField;
|
|
fieldMapping.HIC_ShopifySync__SF_Field_Type__c=sfFieldType;
|
|
fieldMapping.HIC_ShopifySync__Shopify_Field_Type__c=shopifyType;
|
|
fieldMapping.HIC_ShopifySync__Store__c = store;
|
|
return fieldMapping;
|
|
}
|
|
|
|
return null;
|
|
|
|
}catch(Exception e){
|
|
return null;
|
|
}
|
|
}
|
|
} |