# frozen_string_literal: true # License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later # Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE require 'psql' require 'qexpr' module QueryCustomFields # Find all duplicate custom field joins on supporters # Returns an array of groups of duplicate custom_field_join_ids def self.find_dupes(np_id) Qx.select('ARRAY_AGG(custom_field_joins.id)') .from(:custom_field_joins) .join(:custom_field_masters, 'custom_field_masters.id=custom_field_joins.custom_field_master_id') .where('custom_field_masters.nonprofit_id=$id', id: np_id) .group_by('custom_field_joins.custom_field_master_id', 'custom_field_joins.value', 'custom_field_joins.supporter_id') .having('COUNT(custom_field_joins.id) > 1') .execute(format: 'csv')[1..-1] end end