|
Lines 8-13
return {
Link Here
|
| 8 |
my ($args) = @_; |
8 |
my ($args) = @_; |
| 9 |
my ( $dbh, $out ) = @$args{qw(dbh out)}; |
9 |
my ( $dbh, $out ) = @$args{qw(dbh out)}; |
| 10 |
|
10 |
|
|
|
11 |
# This script first pulls data from these tables, then deletes them. -> Do not run if they do not exist. |
| 12 |
if ( !TableExists('overduerules_transport_types') || !TableExists('overduerules') ) { |
| 13 |
exit; |
| 14 |
} |
| 15 |
|
| 11 |
# Populate empty overduerules table for missing categories |
16 |
# Populate empty overduerules table for missing categories |
| 12 |
$dbh->do( |
17 |
$dbh->do( |
| 13 |
q| |
18 |
q| |
|
Lines 150-161
return {
Link Here
|
| 150 |
my $branchcode_key = $branchcode // ''; |
155 |
my $branchcode_key = $branchcode // ''; |
| 151 |
foreach my $i ( 1 .. 3 ) { |
156 |
foreach my $i ( 1 .. 3 ) { |
| 152 |
|
157 |
|
|
|
158 |
my $has_rules = 0; |
| 159 |
|
| 153 |
# Insert the delay rule for group $i, skipping if it matches the most frequent delay |
160 |
# Insert the delay rule for group $i, skipping if it matches the most frequent delay |
| 154 |
if ( my $delay = $rule->{"delay$i"} ) { |
161 |
if ( my $delay = $rule->{"delay$i"} ) { |
| 155 |
$delay ||= ''; |
162 |
$delay ||= ''; |
| 156 |
unless ( $delay eq $most_frequent_delay{$branchcode_key}{$i} ) { |
163 |
unless ( $delay eq $most_frequent_delay{$branchcode_key}{$i} ) { |
| 157 |
$delay ||= undef; |
164 |
$delay ||= undef; |
| 158 |
say $out "Inserting $branchcode:$categorycode:$itemtype overdue_$i" . '_delay: ' . $delay; |
165 |
say $out "Inserting " |
|
|
166 |
. ( $branchcode // '' ) . ":" |
| 167 |
. ( $categorycode // '' ) . ':' |
| 168 |
. ( $itemtype // '' ) |
| 169 |
. " overdue_$i" |
| 170 |
. '_delay: ' |
| 171 |
. ( $delay // '' ); |
| 159 |
$insert->execute( |
172 |
$insert->execute( |
| 160 |
$branchcode, |
173 |
$branchcode, |
| 161 |
$categorycode, |
174 |
$categorycode, |
|
Lines 163-175
return {
Link Here
|
| 163 |
"overdue_$i" . '_delay', |
176 |
"overdue_$i" . '_delay', |
| 164 |
$delay |
177 |
$delay |
| 165 |
); |
178 |
); |
|
|
179 |
$has_rules = 1; |
| 166 |
} |
180 |
} |
| 167 |
} |
181 |
} |
| 168 |
|
182 |
|
| 169 |
# Insert the notice rule for group $i, skipping if it matches the most frequent notice |
183 |
# Insert the notice rule for group $i, skipping if it matches the most frequent notice |
| 170 |
if ( my $notice = $rule->{"letter$i"} ) { |
184 |
if ( my $notice = $rule->{"letter$i"} ) { |
| 171 |
unless ( $notice eq $most_frequent_notice{$branchcode_key}{$i} ) { |
185 |
unless ( $notice eq $most_frequent_notice{$branchcode_key}{$i} ) { |
| 172 |
say $out "Inserting $branchcode:$categorycode:$itemtype overdue_$i" . '_notice: ' . $notice; |
186 |
say $out "Inserting " |
|
|
187 |
. ( $branchcode // '' ) . ":" |
| 188 |
. ( $categorycode // '' ) . ':' |
| 189 |
. ( $itemtype // '' ) |
| 190 |
. " overdue_$i" |
| 191 |
. '_notice: ' |
| 192 |
. ( $notice // '' ); |
| 173 |
$insert->execute( |
193 |
$insert->execute( |
| 174 |
$branchcode, |
194 |
$branchcode, |
| 175 |
$categorycode, |
195 |
$categorycode, |
|
Lines 177-189
return {
Link Here
|
| 177 |
"overdue_$i" . '_notice', |
197 |
"overdue_$i" . '_notice', |
| 178 |
$notice |
198 |
$notice |
| 179 |
); |
199 |
); |
|
|
200 |
$has_rules = 1; |
| 180 |
} |
201 |
} |
| 181 |
} |
202 |
} |
| 182 |
|
203 |
|
| 183 |
# Insert the message transport type rule for group $i, skipping if it matches the most frequent mtt |
204 |
# Insert the message transport type rule for group $i, skipping if it matches the most frequent mtt |
| 184 |
if ( my $mtt = $rule->{"message_transport_type_$i"} ) { |
205 |
if ( my $mtt = $rule->{"message_transport_type_$i"} ) { |
| 185 |
unless ( $mtt eq $most_frequent_mtt{$branchcode_key}{$i} ) { |
206 |
unless ( $mtt eq $most_frequent_mtt{$branchcode_key}{$i} ) { |
| 186 |
say $out "Inserting $branchcode:$categorycode:$itemtype overdue_$i" . '_mtt: ' . $mtt; |
207 |
say $out "Inserting " |
|
|
208 |
. ( $branchcode // '' ) . ":" |
| 209 |
. ( $categorycode // '' ) . ':' |
| 210 |
. ( $itemtype // '' ) |
| 211 |
. " overdue_$i" |
| 212 |
. '_mtt: ' |
| 213 |
. ( $mtt // '' ); |
| 187 |
$insert->execute( |
214 |
$insert->execute( |
| 188 |
$branchcode, |
215 |
$branchcode, |
| 189 |
$categorycode, |
216 |
$categorycode, |
|
Lines 191-203
return {
Link Here
|
| 191 |
"overdue_$i" . '_mtt', |
218 |
"overdue_$i" . '_mtt', |
| 192 |
$mtt |
219 |
$mtt |
| 193 |
); |
220 |
); |
|
|
221 |
$has_rules = 1; |
| 194 |
} |
222 |
} |
| 195 |
} |
223 |
} |
| 196 |
|
224 |
|
| 197 |
# Insert the restrict rule for group $i |
225 |
# Insert the restrict rule for group $i |
| 198 |
if ( my $restrict = $rule->{"debarred$i"} ) { |
226 |
if ( my $restrict = $rule->{"debarred$i"} ) { |
| 199 |
unless ( $restrict eq $most_frequent_restrict{$branchcode_key}{$i} ) { |
227 |
unless ( $restrict eq $most_frequent_restrict{$branchcode_key}{$i} ) { |
| 200 |
say $out "Inserting $branchcode:$categorycode:$itemtype overdue_$i" . '_restrict: ' . $restrict; |
228 |
say $out "Inserting " |
|
|
229 |
. ( $branchcode // '' ) . ":" |
| 230 |
. ( $categorycode // '' ) . ':' |
| 231 |
. ( $itemtype // '' ) |
| 232 |
. " overdue_$i" |
| 233 |
. '_restrict: ' |
| 234 |
. ( $restrict // '' ); |
| 201 |
$insert->execute( |
235 |
$insert->execute( |
| 202 |
$branchcode, |
236 |
$branchcode, |
| 203 |
$categorycode, |
237 |
$categorycode, |
|
Lines 205-212
return {
Link Here
|
| 205 |
"overdue_$i" . '_restrict', |
239 |
"overdue_$i" . '_restrict', |
| 206 |
$restrict |
240 |
$restrict |
| 207 |
); |
241 |
); |
|
|
242 |
$has_rules = 1; |
| 208 |
} |
243 |
} |
| 209 |
} |
244 |
} |
|
|
245 |
|
| 246 |
# Insert the has_rules rule for group $i if and only if a rule set has been added into the db for this context. |
| 247 |
if ( $has_rules == 1 ) { |
| 248 |
say $out "Inserting " |
| 249 |
. ( $branchcode // '' ) . ":" |
| 250 |
. ( $categorycode // '' ) . ':' |
| 251 |
. ( $itemtype // '' ) |
| 252 |
. " overdue_$i" |
| 253 |
. "has_rules: 1"; |
| 254 |
$insert->execute( |
| 255 |
$branchcode, |
| 256 |
$categorycode, |
| 257 |
$itemtype, |
| 258 |
"overdue_$i" . '_has_rules', |
| 259 |
1 |
| 260 |
); |
| 261 |
} |
| 210 |
} |
262 |
} |
| 211 |
} |
263 |
} |
| 212 |
|
264 |
|
|
Lines 215-221
return {
Link Here
|
| 215 |
my $branchcode_value = $branchcode || undef; |
267 |
my $branchcode_value = $branchcode || undef; |
| 216 |
foreach my $i ( 1 .. 3 ) { |
268 |
foreach my $i ( 1 .. 3 ) { |
| 217 |
my $most_frequent_delay = $most_frequent_delay{$branchcode}{$i}; |
269 |
my $most_frequent_delay = $most_frequent_delay{$branchcode}{$i}; |
| 218 |
say $out "Inserting $branchcode_value:undef:$itemtype default most frequent delay for overdue_$i: " |
270 |
say $out "Inserting " |
|
|
271 |
. ( $branchcode_value // '' ) |
| 272 |
. ":undef:" |
| 273 |
. ( $itemtype // '' ) |
| 274 |
. " default most frequent delay for overdue_$i: " |
| 219 |
. $most_frequent_delay; |
275 |
. $most_frequent_delay; |
| 220 |
$insert->execute( |
276 |
$insert->execute( |
| 221 |
$branchcode_value, |
277 |
$branchcode_value, |
|
Lines 226-232
return {
Link Here
|
| 226 |
); |
282 |
); |
| 227 |
|
283 |
|
| 228 |
my $most_frequent_notice = $most_frequent_notice{$branchcode}{$i}; |
284 |
my $most_frequent_notice = $most_frequent_notice{$branchcode}{$i}; |
| 229 |
say $out "Inserting $branchcode_value:undef:undef default most frequent notice for overdue_$i: " |
285 |
say $out "Inserting " |
|
|
286 |
. ( $branchcode_value // '' ) |
| 287 |
. ":undef:undef default most frequent notice for overdue_$i: " |
| 230 |
. $most_frequent_notice; |
288 |
. $most_frequent_notice; |
| 231 |
$insert->execute( |
289 |
$insert->execute( |
| 232 |
$branchcode_value, |
290 |
$branchcode_value, |
|
Lines 237-243
return {
Link Here
|
| 237 |
); |
295 |
); |
| 238 |
|
296 |
|
| 239 |
my $most_frequent_mtt = $most_frequent_mtt{$branchcode}{$i}; |
297 |
my $most_frequent_mtt = $most_frequent_mtt{$branchcode}{$i}; |
| 240 |
say $out "Inserting $branchcode_value:undef:undef default most frequent mtt for overdue_$i: " |
298 |
say $out "Inserting " |
|
|
299 |
. ( $branchcode_value // '' ) |
| 300 |
. ":undef:undef default most frequent mtt for overdue_$i: " |
| 241 |
. $most_frequent_mtt; |
301 |
. $most_frequent_mtt; |
| 242 |
$insert->execute( |
302 |
$insert->execute( |
| 243 |
$branchcode_value, |
303 |
$branchcode_value, |
|
Lines 248-254
return {
Link Here
|
| 248 |
); |
308 |
); |
| 249 |
|
309 |
|
| 250 |
my $most_frequent_restrict = $most_frequent_restrict{$branchcode}{$i}; |
310 |
my $most_frequent_restrict = $most_frequent_restrict{$branchcode}{$i}; |
| 251 |
say $out "Inserting $branchcode_value:undef:undef default most frequent restrict for overdue_$i: " |
311 |
say $out "Inserting " |
|
|
312 |
. ( $branchcode_value // '' ) |
| 313 |
. ":undef:undef default most frequent restrict for overdue_$i: " |
| 252 |
. $most_frequent_restrict; |
314 |
. $most_frequent_restrict; |
| 253 |
$insert->execute( |
315 |
$insert->execute( |
| 254 |
$branchcode_value, |
316 |
$branchcode_value, |
|
Lines 258-263
return {
Link Here
|
| 258 |
$most_frequent_restrict |
320 |
$most_frequent_restrict |
| 259 |
); |
321 |
); |
| 260 |
|
322 |
|
|
|
323 |
# Insert the has_rules rule for group $i's default context |
| 324 |
say $out "Inserting " |
| 325 |
. ( $branchcode_value // '' ) |
| 326 |
. ":undef:undef default has_rules for overdue_$i: 1"; |
| 327 |
$insert->execute( |
| 328 |
$branchcode_value, |
| 329 |
undef, |
| 330 |
undef, |
| 331 |
"overdue_${i}_has_rules", |
| 332 |
1 |
| 333 |
); |
| 334 |
|
| 261 |
} |
335 |
} |
| 262 |
} |
336 |
} |
| 263 |
|
337 |
|