From 9dfb27f0a4a74717502e8229daac189bb8371ff9 Mon Sep 17 00:00:00 2001 From: Ricky Barrette Date: Mon, 21 Feb 2022 07:54:24 -0500 Subject: [PATCH] Prevent webhook loops --- app/models/qbo_invoice.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/models/qbo_invoice.rb b/app/models/qbo_invoice.rb index a006f11..7a92641 100644 --- a/app/models/qbo_invoice.rb +++ b/app/models/qbo_invoice.rb @@ -115,12 +115,18 @@ class QboInvoice < ActiveRecord::Base # TODO create hook for seperate plugin begin if cf.name.eql? "VIN" - vin = Vehicle.find(issue.vehicles_id).vin - break if vin.nil? - if not cf.string_value.to_s.eql? vin - cf.string_value = vin.to_s - logger.debug "VIN has changed" - is_changed = true + # Only update if blank to prevent infite loops + # TODO check cf_sync_confict flag once implemented + if cf.string_value.to_s.blank? + + vin = Vehicle.find(issue.vehicles_id).vin + break if vin.nil? + if not cf.string_value.to_s.eql? vin + cf.string_value = vin.to_s + logger.debug "VIN has changed" + is_changed = true + end + end end rescue