From 571b6b20e0487dd43ddccacb5130f3e5a1f84a0d Mon Sep 17 00:00:00 2001
From: Aaron Bauman <aaron@messageagency.com>
Date: Tue, 18 Mar 2025 14:15:23 -0400
Subject: [PATCH] Issue #3420549 by gcb: Wrong date field used in Pull Queue
 Worker

---
 .../salesforce_mapping/src/Entity/SalesforceMapping.php   | 8 ++++++--
 .../salesforce_pull/src/Plugin/QueueWorker/PullBase.php   | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/salesforce_mapping/src/Entity/SalesforceMapping.php b/modules/salesforce_mapping/src/Entity/SalesforceMapping.php
index cf790bea..59d0c127 100644
--- a/modules/salesforce_mapping/src/Entity/SalesforceMapping.php
+++ b/modules/salesforce_mapping/src/Entity/SalesforceMapping.php
@@ -682,8 +682,12 @@ class SalesforceMapping extends ConfigEntityBase implements SalesforceMappingInt
       $mapped_fields = $this->getPullFieldsArray();
     }
     $soql->fields = $mapped_fields;
-    $soql->fields[] = 'Id';
-    $soql->fields[] = $this->getPullTriggerDate();
+    $soql->fields['Id'] = 'Id';
+    $pull_trigger_date = $this->getPullTriggerDate();
+    $soql->fields[$pull_trigger_date] = $pull_trigger_date;
+    if ($pull_trigger_date !== 'LastModifiedDate') {
+      $soql->fields['LastModifiedDate'] = 'LastModifiedDate';
+    }
 
     $start = $start > 0 ? $start : $this->getLastPullTime();
     // If no lastupdate and no start window provided, get all records.
diff --git a/modules/salesforce_pull/src/Plugin/QueueWorker/PullBase.php b/modules/salesforce_pull/src/Plugin/QueueWorker/PullBase.php
index 6950cbaa..4abece93 100644
--- a/modules/salesforce_pull/src/Plugin/QueueWorker/PullBase.php
+++ b/modules/salesforce_pull/src/Plugin/QueueWorker/PullBase.php
@@ -168,7 +168,7 @@ abstract class PullBase extends QueueWorkerBase implements ContainerFactoryPlugi
         : $mapped_object->getChanged();
 
       $pull_trigger_date =
-        $sf_object->field($mapping->getPullTriggerDate());
+        $sf_object->field($mapping->getPullTriggerDate()) ?? $sf_object->field('LastModifiedDate');
       $sf_record_updated = $pull_trigger_date ? strtotime($pull_trigger_date) : 0;
 
       $mapped_object
-- 
GitLab