Untitled

 avatar
unknown
plain_text
2 years ago
1.3 kB
5
Indexable
    public override void beforeUpdate(Map<Id, sObject> oldMap, Map<Id, sObject> newMap) {

        List<ccrz__E_Order__c> ordersToUpdate = new List<ccrz__E_Order__c>();

        Set<Id> ordersIds = new Set<Id>();
        for(ccrz__E_OrderItem__c orderItem : (List<ccrz__E_OrderItem__c>) newMap.values()) {
            ordersIds.add(orderItem.ccrz__Order__c);
        }

        Map<Id, ccrz__E_Order__c> ordersStorefront = EC_OrderSelector.getOrdersStorefronts(ordersIds);

        for (String key : oldMap.keySet()) {
            ccrz__E_OrderItem__c oldOrderItem = (ccrz__E_OrderItem__c) oldMap.get(key);
            ccrz__E_OrderItem__c newOrderItem = (ccrz__E_OrderItem__c) newMap.get(key);

            System.debug('xxx - ' + ordersStorefront.get(newOrderItem.ccrz__Order__c).ccrz__Storefront__c);
            if (oldOrderItem != newOrderItem && shouldNotExecute(ordersStorefront.get(newOrderItem.ccrz__Order__c).ccrz__Storefront__c)) {
                ordersToUpdate.add(new ccrz__E_Order__c(
                        Id = newOrderItem.ccrz__Order__c,
                        EC_SyncStatus__c = EC_Constants.ORDER_SYNC_STATUS_PENDING
                ));
            }
        }

        if (!ordersToUpdate.isEmpty()) {
            update ordersToUpdate;
        }
    }
Editor is loading...