<query>SELECT COUNT(ahr.id), ahr.selection_depth FROM action.hold_request ahr WHERE ahr.id IN (SELECT id FROM action_hold_request) AND ahr.cancel_time IS NULL AND ahr.capture_time IS NULL AND ahr.fulfillment_time IS NULL GROUP BY 2 ORDER BY 2</query>
</report>
+ <!-- finding title matched holds where there are duplicates, this will table match for legacy but column won't be present for all -->
+ <report>
+ <name>duplicate_title_matching_holds</name>
+ <tag>holds</tag>
+ <iteration>0</iteration>
+ <report_title>Holds by Title Matchs</report_title>
+ <heading>Count.Number of Matches</heading>
+ <query>SELECT COUNT(*), x_title_matches FROM action_hold_request_legacy WHERE TO_DATE(l_expire_date,'MM/DD/YYYY') > NOW() GROUP BY 2 ORDER BY 2</query>
+ </report>
+
+ <report>
+ <name>duplicate_title_matching_holds_w_zero</name>
+ <tag>holds</tag>
+ <iteration>0</iteration>
+ <report_title>Sample of Holds with No Matches</report_title>
+ <heading>Borrower Barcode.Title.Request Date</heading>
+ <query>SELECT l_borrower_id, l_title, l_request_date FROM action_hold_request_legacy WHERE TO_DATE(l_expire_date,'MM/DD/YYYY') > NOW() AND x_title_matches = 0 LIMIT 20</query>
+ </report>
+
+ <report>
+ <name>duplicate_title_matching_holds_w_greater_than_1</name>
+ <tag>holds</tag>
+ <iteration>0</iteration>
+ <report_title>Sample of Holds with More Than One Title Match</report_title>
+ <heading>Borrower Barcode.Title.Request Date</heading>
+ <query>SELECT l_borrower_id, l_title, l_request_date FROM action_hold_request_legacy WHERE TO_DATE(l_expire_date,'MM/DD/YYYY') > NOW() AND x_title_matches > 1 LIMIT 20</query>
+ </report>
+
<!-- ASSET REPORTS -->
<report>
<query>SELECT COUNT(ac.id), acl.name, aou.name, ac.x_migrate::TEXT FROM asset_copy_legacy ac JOIN asset.copy_location acl ON acl.id = ac.location JOIN actor.org_unit aou ON aou.id = ac.circ_lib GROUP BY 2, 3, 4 ORDER BY 2, 3, 4</query>
</report>
- <report>
+ <!-- report>
<name>asset_barcode_lengths</name>
<report_title>Barcode Lengths by Library</report_title>
<tag>assets</tag>
<iteration>0</iteration>
<heading>Count of Barcode.Barcode Length.Library</heading>
<query>SELECT COUNT(ac.id), LENGTH(ac.barcode), aou.name FROM asset_copy_legacy ac JOIN actor.org_unit aou ON aou.id = ac.circ_lib WHERE ac.x_migrate = TRUE GROUP BY 2, 3 ORDER BY 3, 2</query>
- </report>
+ </report -->
<report>
<name>asset_barcode_patterns</name>
<query>SELECT COUNT(id) FROM biblio_record_entry where id IN (SELECT record FROM asset.call_number WHERE label ~* '##URI##')</query>
</report>
+ <report>
+ <name>bibsff</name>
+ <report_title>Bibliographic Records with Adjusted Fixed Fields</report_title>
+ <tag>bibs</tag>
+ <iteration>0</iteration>
+ <heading>Count.Original Search Format.New Search Format</heading>
+ <query>SELECT COUNT(*), x_search_format, x_after_search_format FROM biblio_record_entry_legacy WHERE x_migrate AND x_after_search_format IS NOT NULL GROUP BY 2, 3 ORDER BY 3,2</query>
+ </report>
+
<report>
<name>bibs_notes</name>
<report_title>Bib Record Notes</report_title>
<query>SELECT COUNT(id), active::TEXT FROM actor_card GROUP BY 2</query>
</report>
- <report>
+ <!-- report>
<name>usr_barcode_lengths</name>
<report_title>Barcode Lengths by Library</report_title>
<tag>actors</tag>
<iteration>0</iteration>
<heading>Count of Barcode.Barcode Length.Library</heading>
<query>SELECT COUNT(acard.id), LENGTH(acard.barcode), aou.name FROM actor_card_legacy acard JOIN actor_usr_legacy au ON au.id = acard.usr JOIN actor.org_unit aou ON aou.id = au.home_ou WHERE acard.x_migrate = TRUE GROUP BY 2, 3 ORDER BY 3, 2</query>
- </report>
+ </report -->
- <report>
+ <!-- report>
<name>usr_barcode_lengths</name>
<report_title>Barcode Lengths by Library</report_title>
<tag>actors</tag>
<iteration>1</iteration>
<heading>Count of Barcode.Barcode Length.Library</heading>
<query>SELECT COUNT(acard.id), LENGTH(acard.barcode), aou.name FROM actor_card acard JOIN actor_usr au ON au.id = acard.usr JOIN actor.org_unit aou ON aou.id = au.home_ou GROUP BY 2, 3 ORDER BY 3, 2</query>
- </report>
+ </report -->
<report>
<name>usr_barcode_patterns</name>
<heading>Count of Barcodes (greater than 10).Left 60% of Characters</heading>
<query>SELECT COUNT(acard.id), LEFT(acard.barcode,(ROUND(LENGTH(acard.barcode)*.6))::INT) FROM actor_card acard GROUP BY 2 HAVING COUNT(acard.id) > 10 ORDER BY 2</query>
</report>
-
- <report>
- <name>usr_barcode_collisions</name>
- <report_title>Patron Barcode Collisions</report_title>
+
+ <report>
+ <name>usr_barcode_incoming_collisions</name>
+ <report_title>Incoming Patron Barcode Collisions</report_title>
<tag>actors</tag>
<iteration>0</iteration>
<heading>Collision Count</heading>
</report>
<report>
- <name>usr_barcode_collisions</name>
- <report_title>Patron Barcode Collisions</report_title>
+ <name>usr_barcode_incoming_collisions</name>
+ <report_title>Incoming Patron Barcode Collisions</report_title>
<tag>actors</tag>
<iteration>1</iteration>
<heading>Collision Count</heading>
<query>SELECT COUNT(acard.id) FROM actor_card acard WHERE barcode ~* 'collision'</query>
</report>
+ <report>
+ <name>usr_barcode_incumbent_collisions</name>
+ <report_title>Incumbent Patron Barcode Collisions</report_title>
+ <tag>actors</tag>
+ <iteration>0</iteration>
+ <heading>Collision Count</heading>
+ <query>SELECT COUNT(acard.id) FROM actor_card_legacy acard WHERE barcode ~* '^x_' AND x_migrate = TRUE</query>
+ </report>
+
+ <report>
+ <name>usr_barcode_incumbent_collisions</name>
+ <report_title>Incumbent Patron Barcode Collisions</report_title>
+ <tag>actors</tag>
+ <iteration>1</iteration>
+ <heading>Collision Count</heading>
+ <query>SELECT COUNT(acard.id) FROM actor_card acard WHERE barcode ~* '^x_'</query>
+ </report>
+
<report>
<name>usr_barcode_collision_shortlist</name>
<report_title>Patron Barcode Collisions (first 20)</report_title>
<tag>actors</tag>
<iteration>0</iteration>
<heading>Collision List</heading>
- <query>SELECT acard.barcode FROM actor_card_legacy acard WHERE acard.barcode ~* 'collision' AND acard.x_migrate = TRUE ORDER BY 1 LIMIT 20</query>
+ <query>SELECT acard.barcode FROM actor_card_legacy acard WHERE (acard.barcode ~* 'collision' OR acard.barcode ~* '^x_') AND acard.x_migrate = TRUE ORDER BY 1 LIMIT 20</query>
<note>This is a shortlist of patron barcode collisions that maxes out at 20. If there are more collisions we will need to run a custom report. In some cases we may flag individual accounts to not migrate.</note>
</report>
<tag>actors</tag>
<iteration>1</iteration>
<heading>Collision List</heading>
- <query>SELECT acard.barcode FROM actor_card acard WHERE acard.barcode ~* 'collision' ORDER BY 1 LIMIT 20</query>
+ <query>SELECT acard.barcode FROM actor_card acard WHERE (acard.barcode ~* 'collision' OR acard.barcode ~* '^x_') ORDER BY 1 LIMIT 20</query>
<note>This is a shortlist of patron barcode collisions that maxes out at 20. If there are more collisions we will need to run a custom report. In some cases we may flag individual accounts to not migrate.</note>
</report>
<tag>actors</tag>
<iteration>0</iteration>
<heading>Number of Barcodes Matching Pattern Greater than 10.Left 60% of Characters</heading>
- <query>SELECT COUNT(acard.id), LEFT(acard.barcode,(ROUND(LENGTH(acard.barcode)*.6))::INT) FROM actor_card_legacy acard WHERE acard.barcode ~* 'collision' AND acard.x_migrate = TRUE GROUP BY 2 HAVING COUNT(acard.id) > 10 ORDER BY 2</query>
+ <query>SELECT COUNT(acard.id), LEFT(acard.barcode,(ROUND(LENGTH(acard.barcode)*.6))::INT) FROM actor_card_legacy acard WHERE (acard.barcode ~* 'collision' OR acard.barcode ~* '^x_') AND acard.x_migrate = TRUE GROUP BY 2 HAVING COUNT(acard.id) > 10 ORDER BY 2</query>
</report>
<report>
<tag>actors</tag>
<iteration>1</iteration>
<heading>Number of Barcodes Matching Pattern Greater than 10.Left 60% of Characters</heading>
- <query>SELECT COUNT(acard.id), LEFT(acard.barcode,(ROUND(LENGTH(acard.barcode)*.6))::INT) FROM actor_card acard WHERE acard.barcode ~* 'collision' GROUP BY 2 HAVING COUNT(acard.id) > 10 ORDER BY 2</query>
+ <query>SELECT COUNT(acard.id), LEFT(acard.barcode,(ROUND(LENGTH(acard.barcode)*.6))::INT) FROM actor_card acard WHERE (acard.barcode ~* 'collision' OR acard.barcode ~* '^x_') GROUP BY 2 HAVING COUNT(acard.id) > 10 ORDER BY 2</query>
</report>
<report>