@@ -24,14 +24,28 @@ export class AcmsGatewayImpl extends AbstractMssqlClient implements AcmsGateway
24
24
25
25
async getPageCount ( context : ApplicationContext , predicate : Predicate ) : Promise < number > {
26
26
const input : DbTableFieldSpec [ ] = [ ] ;
27
+ let query = `
28
+ SELECT COUNT(DISTINCT CONSOLIDATED_CASE_NUMBER) AS leadCaseCount
29
+ FROM CMMDB
30
+ WHERE CASE_DIV = @divisionCode
31
+ AND CLOSED_BY_COURT_DATE = '0' OR CLOSED_BY_COURT_DATE > '20170101'
32
+ AND CONSOLIDATED_CASE_NUMBER != '0'` ;
27
33
28
- // TODO: map from string chapters that accept numbers to be two character strings
29
- // 09, 11, 12, 13, 15, 7A, 7N, AC
30
- input . push ( {
31
- name : 'chapter' ,
32
- type : mssql . VarChar ,
33
- value : predicate . chapter ,
34
- } ) ;
34
+ // Valid ACMS chapters: 09, 11, 12, 13, 15, 7A, 7N, AC
35
+ // 'AC' is the predecesor to chapter 15. We are not importing these old cases into CAMS.
36
+ // '7A' and '7N' are treated inclusively as chapter 7 cases when importing into CAMS.
37
+ // Leading zero padding is added for chapter 9.
38
+
39
+ if ( predicate . chapter === '7' ) {
40
+ query += ` AND CURR_CASE_CHAPT IN ('7A', '7N')` ;
41
+ } else {
42
+ query += ` AND CURR_CASE_CHAPT = @chapter` ;
43
+ input . push ( {
44
+ name : 'chapter' ,
45
+ type : mssql . VarChar ,
46
+ value : ( '00' + predicate . chapter ) . slice ( - 2 ) ,
47
+ } ) ;
48
+ }
35
49
36
50
input . push ( {
37
51
name : 'divisionCode' ,
@@ -43,14 +57,6 @@ export class AcmsGatewayImpl extends AbstractMssqlClient implements AcmsGateway
43
57
leadCaseCount : number ;
44
58
} ;
45
59
46
- const query = `
47
- SELECT COUNT(DISTINCT CONSOLIDATED_CASE_NUMBER) AS leadCaseCount
48
- FROM CMMDB
49
- WHERE CURR_CASE_CHAPT = @chapter
50
- AND CASE_DIV = @divisionCode
51
- AND CLOSED_BY_COURT_DATE = '0' OR CLOSED_BY_COURT_DATE > '20170101'
52
- AND CONSOLIDATED_CASE_NUMBER != '0'` ;
53
-
54
60
try {
55
61
const results = await this . executeQuery < ResultType > ( context , query , input ) ;
56
62
const result = results . results [ 0 ] ;
@@ -66,14 +72,6 @@ export class AcmsGatewayImpl extends AbstractMssqlClient implements AcmsGateway
66
72
) : Promise < string [ ] > {
67
73
const input : DbTableFieldSpec [ ] = [ ] ;
68
74
69
- // TODO: map from string chapters that accept numbers to be two character strings
70
- // 09, 11, 12, 13, 15, 7A, 7N, AC
71
- input . push ( {
72
- name : 'chapter' ,
73
- type : mssql . VarChar ,
74
- value : predicateAndPage . chapter ,
75
- } ) ;
76
-
77
75
input . push ( {
78
76
name : 'divisionCode' ,
79
77
type : mssql . VarChar ,
@@ -92,25 +90,39 @@ export class AcmsGatewayImpl extends AbstractMssqlClient implements AcmsGateway
92
90
value : PAGE_SIZE * ( predicateAndPage . pageNumber - 1 ) ,
93
91
} ) ;
94
92
95
- // RIGHT(CONCAT('000', CAST(CONSOLIDATED_CASE_NUMBER AS VARCHAR)), 10)
96
- const query = `
93
+ let query = `
97
94
SELECT DISTINCT CONSOLIDATED_CASE_NUMBER AS leadCaseId
98
95
FROM CMMDB
99
- WHERE CURR_CASE_CHAPT = @chapter
100
- AND CASE_DIV = @divisionCode
96
+ WHERE CASE_DIV = @divisionCode
101
97
AND CLOSED_BY_COURT_DATE = '0' OR CLOSED_BY_COURT_DATE > '20170101'
102
- AND CONSOLIDATED_CASE_NUMBER != '0'
103
- ORDER BY CONSOLIDATED_CASE_NUMBER DESC OFFSET @offset ROWS FETCH NEXT @limit ROWS ONLY` ;
98
+ AND CONSOLIDATED_CASE_NUMBER != '0'` ;
99
+
100
+ // Valid ACMS chapters: 09, 11, 12, 13, 15, 7A, 7N, AC
101
+ // 'AC' is the predecesor to chapter 15. We are not importing these old cases into CAMS.
102
+ // '7A' and '7N' are treated inclusively as chapter 7 cases when importing into CAMS.
103
+ // Leading zero padding is added for chapter 9.
104
+
105
+ if ( predicateAndPage . chapter === '7' ) {
106
+ query += ` AND CURR_CASE_CHAPT IN ('7A', '7N')` ;
107
+ } else {
108
+ query += ` AND CURR_CASE_CHAPT = @chapter` ;
109
+ input . push ( {
110
+ name : 'chapter' ,
111
+ type : mssql . VarChar ,
112
+ value : ( '00' + predicateAndPage . chapter ) . slice ( - 2 ) ,
113
+ } ) ;
114
+ }
115
+
116
+ query += ` ORDER BY CONSOLIDATED_CASE_NUMBER DESC OFFSET @offset ROWS FETCH NEXT @limit ROWS ONLY` ;
104
117
105
118
type ResultType = {
106
119
leadCaseId : string ;
107
120
} ;
108
121
109
122
try {
110
- const results = await this . executeQuery < ResultType > ( context , query , input ) ;
111
- // TODO: Fix this.
112
- const theFrackingList = results . results as ResultType [ ] ;
113
- return theFrackingList . map ( ( record ) => record . leadCaseId ) ;
123
+ const { results } = await this . executeQuery < ResultType > ( context , query , input ) ;
124
+ const leadCaseIdsResults = results as ResultType [ ] ;
125
+ return leadCaseIdsResults . map ( ( record ) => record . leadCaseId ) ;
114
126
} catch ( originalError ) {
115
127
throw getCamsError ( originalError , MODULE_NAME ) ;
116
128
}
0 commit comments