multiple title hold report matches reports
[migration-tools.git] / mig-xml / evergreen_staged_report.xml
index 564b741..878fac4 100644 (file)
         <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>
@@ -838,23 +866,23 @@ id = ac_sc.owner GROUP BY 2,3 ORDER BY 2,3</query>
         <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>
@@ -873,10 +901,10 @@ id = ac_sc.owner GROUP BY 2,3 ORDER BY 2,3</query>
         <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>
@@ -884,21 +912,39 @@ id = ac_sc.owner GROUP BY 2,3 ORDER BY 2,3</query>
     </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>
 
@@ -908,7 +954,7 @@ id = ac_sc.owner GROUP BY 2,3 ORDER BY 2,3</query>
         <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>
 
@@ -918,7 +964,7 @@ id = ac_sc.owner GROUP BY 2,3 ORDER BY 2,3</query>
         <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>
@@ -927,7 +973,7 @@ id = ac_sc.owner GROUP BY 2,3 ORDER BY 2,3</query>
         <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>