diff --git a/cmd/verify-stock-consolidation/main.go b/cmd/verify-stock-consolidation/main.go index a9d53dba..b98ed9e7 100644 --- a/cmd/verify-stock-consolidation/main.go +++ b/cmd/verify-stock-consolidation/main.go @@ -347,17 +347,17 @@ func verifyOrphanedReferences(ctx context.Context, db *gorm.DB, sourceChecks []s } if count > 0 { - // Get the specific warehouse IDs + // Get the specific warehouse IDs using raw SQL var ids []uint - if err := db.Table(ref.table). - Where(fmt.Sprintf("%s IN ?", ref.column), warehouseIDs). - Pluck(ref.column, &ids).Error; err != nil { + query := fmt.Sprintf("SELECT DISTINCT %s FROM %s WHERE %s IN ?", + ref.column, ref.table, ref.column) + if err := db.Raw(query, warehouseIDs).Scan(&ids).Error; err != nil { return nil, err } - idStrs := make([]string, len(ids)) - for i, id := range ids { - idStrs[i] = fmt.Sprintf("%d", id) + idStrs := make([]string, 0, len(ids)) + for _, id := range ids { + idStrs = append(idStrs, fmt.Sprintf("%d", id)) } results = append(results, orphanedReferenceCheck{