Bugzilla – Attachment 157355 Details for
Bug 8367
How long is a hold waiting for pickup at a more granular level
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8367: (QA follow-up) Fix QA script
Bug-8367-QA-follow-up-Fix-QA-script.patch (text/plain), 22.83 KB, created by
ByWater Sandboxes
on 2023-10-18 19:10:34 UTC
(
hide
)
Description:
Bug 8367: (QA follow-up) Fix QA script
Filename:
MIME Type:
Creator:
ByWater Sandboxes
Created:
2023-10-18 19:10:34 UTC
Size:
22.83 KB
patch
obsolete
>From 73675b2f44aa3e9107e145fbb0c68022b97748e3 Mon Sep 17 00:00:00 2001 >From: Katrin Fischer <katrin.fischer.83@web.de> >Date: Mon, 9 Oct 2023 21:51:08 +0000 >Subject: [PATCH] Bug 8367: (QA follow-up) Fix QA script > >* Add +x to atomic database update file >* Perltidy >* Add spans to rewritten tab label for translatability > >Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> >Signed-off-by: Kelly <kelly@bywatersolutions.com> >--- > Koha/Hold.pm | 17 +- > admin/smart-rules.pl | 167 +++++++++--------- > ...g_8367-add_holds_pickup_period_circrule.pl | 12 +- > .../prog/en/modules/circ/waitingreserves.tt | 2 +- > t/db_dependent/Holds/WaitingReserves.t | 141 ++++++++------- > 5 files changed, 181 insertions(+), 158 deletions(-) > mode change 100644 => 100755 installer/data/mysql/atomicupdate/bug_8367-add_holds_pickup_period_circrule.pl > >diff --git a/Koha/Hold.pm b/Koha/Hold.pm >index 9e2f23262c..0224d019b7 100644 >--- a/Koha/Hold.pm >+++ b/Koha/Hold.pm >@@ -231,13 +231,16 @@ sub set_waiting { > my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); > my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); > >- my $rule = Koha::CirculationRules->get_effective_rule({ >- categorycode => $self->borrower->categorycode, >- itemtype => $self->item->effective_itemtype, >- branchcode => $self->branchcode, >- rule_name => 'holds_pickup_period', >- }); >- if ( defined($rule) and $rule->rule_value ne '' ){ >+ my $rule = Koha::CirculationRules->get_effective_rule( >+ { >+ categorycode => $self->borrower->categorycode, >+ itemtype => $self->item->effective_itemtype, >+ branchcode => $self->branchcode, >+ rule_name => 'holds_pickup_period', >+ } >+ ); >+ if ( defined($rule) and $rule->rule_value ne '' ) { >+ > # circulation rule overrides ReservesMaxPickUpDelay > $max_pickup_delay = $rule->rule_value; > } >diff --git a/admin/smart-rules.pl b/admin/smart-rules.pl >index 9705a1ea78..35475e98b7 100755 >--- a/admin/smart-rules.pl >+++ b/admin/smart-rules.pl >@@ -74,8 +74,8 @@ if ($op eq 'delete') { > Koha::CirculationRules->set_rules( > { > categorycode => $categorycode eq '*' ? undef : $categorycode, >- branchcode => $branch eq '*' ? undef : $branch, >- itemtype => $itemtype eq '*' ? undef : $itemtype, >+ branchcode => $branch eq '*' ? undef : $branch, >+ itemtype => $itemtype eq '*' ? undef : $itemtype, > rules => { > maxissueqty => undef, > maxonsiteissueqty => undef, >@@ -251,100 +251,103 @@ elsif ($op eq 'delete-branch-item') { > } > } > # save the values entered >-elsif ($op eq 'add') { >- my $br = $branch; # branch >- my $bor = $input->param('categorycode'); # borrower category >- my $itemtype = $input->param('itemtype'); # item type >- my $fine = $input->param('fine'); >- my $finedays = $input->param('finedays'); >- my $maxsuspensiondays = $input->param('maxsuspensiondays') || q{}; >+elsif ( $op eq 'add' ) { >+ my $br = $branch; # branch >+ my $bor = $input->param('categorycode'); # borrower category >+ my $itemtype = $input->param('itemtype'); # item type >+ my $fine = $input->param('fine'); >+ my $finedays = $input->param('finedays'); >+ my $maxsuspensiondays = $input->param('maxsuspensiondays') || q{}; > my $suspension_chargeperiod = $input->param('suspension_chargeperiod') || 1; >- my $firstremind = $input->param('firstremind'); >- my $chargeperiod = $input->param('chargeperiod'); >- my $chargeperiod_charge_at = $input->param('chargeperiod_charge_at'); >- my $maxissueqty = strip_non_numeric( scalar $input->param('maxissueqty') ); >- my $maxonsiteissueqty = strip_non_numeric( scalar $input->param('maxonsiteissueqty') ); >- my $renewalsallowed = $input->param('renewalsallowed'); >- my $unseen_renewals_allowed = defined $input->param('unseen_renewals_allowed') ? strip_non_numeric( scalar $input->param('unseen_renewals_allowed') ) : q{}; >- my $renewalperiod = $input->param('renewalperiod'); >- my $norenewalbefore = $input->param('norenewalbefore'); >+ my $firstremind = $input->param('firstremind'); >+ my $chargeperiod = $input->param('chargeperiod'); >+ my $chargeperiod_charge_at = $input->param('chargeperiod_charge_at'); >+ my $maxissueqty = strip_non_numeric( scalar $input->param('maxissueqty') ); >+ my $maxonsiteissueqty = strip_non_numeric( scalar $input->param('maxonsiteissueqty') ); >+ my $renewalsallowed = $input->param('renewalsallowed'); >+ my $unseen_renewals_allowed = >+ defined $input->param('unseen_renewals_allowed') >+ ? strip_non_numeric( scalar $input->param('unseen_renewals_allowed') ) >+ : q{}; >+ my $renewalperiod = $input->param('renewalperiod'); >+ my $norenewalbefore = $input->param('norenewalbefore'); > $norenewalbefore = q{} if $norenewalbefore =~ /^\s*$/; >- my $auto_renew = $input->param('auto_renew') eq 'yes' ? 1 : 0; >+ my $auto_renew = $input->param('auto_renew') eq 'yes' ? 1 : 0; > my $no_auto_renewal_after = $input->param('no_auto_renewal_after'); > $no_auto_renewal_after = q{} if $no_auto_renewal_after =~ /^\s*$/; > my $no_auto_renewal_after_hard_limit = $input->param('no_auto_renewal_after_hard_limit') || q{}; >- my $reservesallowed = strip_non_numeric( scalar $input->param('reservesallowed') ); >- my $holds_per_record = strip_non_numeric( scalar $input->param('holds_per_record') ); >- my $holds_per_day = strip_non_numeric( scalar $input->param('holds_per_day') ); >- my $onshelfholds = $input->param('onshelfholds') || 0; >- my $issuelength = $input->param('issuelength') || 0; >- my $daysmode = $input->param('daysmode'); >- my $lengthunit = $input->param('lengthunit'); >- my $hardduedate = $input->param('hardduedate') || q{}; >- my $hardduedatecompare = $input->param('hardduedatecompare'); >- my $rentaldiscount = $input->param('rentaldiscount') || 0; >- my $opacitemholds = $input->param('opacitemholds') || 0; >- my $article_requests = $input->param('article_requests') || 'no'; >- my $overduefinescap = $input->param('overduefinescap') >+ my $reservesallowed = strip_non_numeric( scalar $input->param('reservesallowed') ); >+ my $holds_per_record = strip_non_numeric( scalar $input->param('holds_per_record') ); >+ my $holds_per_day = strip_non_numeric( scalar $input->param('holds_per_day') ); >+ my $onshelfholds = $input->param('onshelfholds') || 0; >+ my $issuelength = $input->param('issuelength') || 0; >+ my $daysmode = $input->param('daysmode'); >+ my $lengthunit = $input->param('lengthunit'); >+ my $hardduedate = $input->param('hardduedate') || q{}; >+ my $hardduedatecompare = $input->param('hardduedatecompare'); >+ my $rentaldiscount = $input->param('rentaldiscount') || 0; >+ my $opacitemholds = $input->param('opacitemholds') || 0; >+ my $article_requests = $input->param('article_requests') || 'no'; >+ my $overduefinescap = $input->param('overduefinescap') > && ( $input->param('overduefinescap') + 0 ) > 0 ? sprintf( "%.02f", $input->param('overduefinescap') ) : q{}; >- my $cap_fine_to_replacement_price = ($input->param('cap_fine_to_replacement_price') || q{}) eq 'on'; >- my $note = $input->param('note'); >- my $decreaseloanholds = $input->param('decreaseloanholds') || q{}; >- my $recalls_allowed = $input->param('recalls_allowed'); >- my $recalls_per_record = $input->param('recalls_per_record'); >- my $on_shelf_recalls = $input->param('on_shelf_recalls'); >- my $recall_due_date_interval = $input->param('recall_due_date_interval'); >- my $recall_overdue_fine = $input->param('recall_overdue_fine'); >- my $recall_shelf_time = $input->param('recall_shelf_time'); >- my $holds_pickup_period = strip_non_numeric( scalar $input->param('holds_pickup_period') ); >+ my $cap_fine_to_replacement_price = ( $input->param('cap_fine_to_replacement_price') || q{} ) eq 'on'; >+ my $note = $input->param('note'); >+ my $decreaseloanholds = $input->param('decreaseloanholds') || q{}; >+ my $recalls_allowed = $input->param('recalls_allowed'); >+ my $recalls_per_record = $input->param('recalls_per_record'); >+ my $on_shelf_recalls = $input->param('on_shelf_recalls'); >+ my $recall_due_date_interval = $input->param('recall_due_date_interval'); >+ my $recall_overdue_fine = $input->param('recall_overdue_fine'); >+ my $recall_shelf_time = $input->param('recall_shelf_time'); >+ my $holds_pickup_period = strip_non_numeric( scalar $input->param('holds_pickup_period') ); > > my $rules = { >- maxissueqty => $maxissueqty, >- maxonsiteissueqty => $maxonsiteissueqty, >- rentaldiscount => $rentaldiscount, >- fine => $fine, >- finedays => $finedays, >- maxsuspensiondays => $maxsuspensiondays, >- suspension_chargeperiod => $suspension_chargeperiod, >- firstremind => $firstremind, >- chargeperiod => $chargeperiod, >- chargeperiod_charge_at => $chargeperiod_charge_at, >- issuelength => $issuelength, >- daysmode => $daysmode, >- lengthunit => $lengthunit, >- hardduedate => $hardduedate, >- hardduedatecompare => $hardduedatecompare, >- renewalsallowed => $renewalsallowed, >- unseen_renewals_allowed => $unseen_renewals_allowed, >- renewalperiod => $renewalperiod, >- norenewalbefore => $norenewalbefore, >- auto_renew => $auto_renew, >- no_auto_renewal_after => $no_auto_renewal_after, >+ maxissueqty => $maxissueqty, >+ maxonsiteissueqty => $maxonsiteissueqty, >+ rentaldiscount => $rentaldiscount, >+ fine => $fine, >+ finedays => $finedays, >+ maxsuspensiondays => $maxsuspensiondays, >+ suspension_chargeperiod => $suspension_chargeperiod, >+ firstremind => $firstremind, >+ chargeperiod => $chargeperiod, >+ chargeperiod_charge_at => $chargeperiod_charge_at, >+ issuelength => $issuelength, >+ daysmode => $daysmode, >+ lengthunit => $lengthunit, >+ hardduedate => $hardduedate, >+ hardduedatecompare => $hardduedatecompare, >+ renewalsallowed => $renewalsallowed, >+ unseen_renewals_allowed => $unseen_renewals_allowed, >+ renewalperiod => $renewalperiod, >+ norenewalbefore => $norenewalbefore, >+ auto_renew => $auto_renew, >+ no_auto_renewal_after => $no_auto_renewal_after, > no_auto_renewal_after_hard_limit => $no_auto_renewal_after_hard_limit, >- reservesallowed => $reservesallowed, >- holds_per_record => $holds_per_record, >- holds_per_day => $holds_per_day, >- onshelfholds => $onshelfholds, >- opacitemholds => $opacitemholds, >- overduefinescap => $overduefinescap, >- cap_fine_to_replacement_price => $cap_fine_to_replacement_price, >- article_requests => $article_requests, >- note => $note, >- decreaseloanholds => $decreaseloanholds, >- recalls_allowed => $recalls_allowed, >- recalls_per_record => $recalls_per_record, >- on_shelf_recalls => $on_shelf_recalls, >- recall_due_date_interval => $recall_due_date_interval, >- recall_overdue_fine => $recall_overdue_fine, >- recall_shelf_time => $recall_shelf_time, >- holds_pickup_period => $holds_pickup_period, >+ reservesallowed => $reservesallowed, >+ holds_per_record => $holds_per_record, >+ holds_per_day => $holds_per_day, >+ onshelfholds => $onshelfholds, >+ opacitemholds => $opacitemholds, >+ overduefinescap => $overduefinescap, >+ cap_fine_to_replacement_price => $cap_fine_to_replacement_price, >+ article_requests => $article_requests, >+ note => $note, >+ decreaseloanholds => $decreaseloanholds, >+ recalls_allowed => $recalls_allowed, >+ recalls_per_record => $recalls_per_record, >+ on_shelf_recalls => $on_shelf_recalls, >+ recall_due_date_interval => $recall_due_date_interval, >+ recall_overdue_fine => $recall_overdue_fine, >+ recall_shelf_time => $recall_shelf_time, >+ holds_pickup_period => $holds_pickup_period, > }; > > Koha::CirculationRules->set_rules( > { >- categorycode => $bor eq '*' ? undef : $bor, >+ categorycode => $bor eq '*' ? undef : $bor, > itemtype => $itemtype eq '*' ? undef : $itemtype, >- branchcode => $br eq '*' ? undef : $br, >+ branchcode => $br eq '*' ? undef : $br, > rules => $rules, > } > ); >diff --git a/installer/data/mysql/atomicupdate/bug_8367-add_holds_pickup_period_circrule.pl b/installer/data/mysql/atomicupdate/bug_8367-add_holds_pickup_period_circrule.pl >old mode 100644 >new mode 100755 >index efa20249b7..3e50bbf9a7 >--- a/installer/data/mysql/atomicupdate/bug_8367-add_holds_pickup_period_circrule.pl >+++ b/installer/data/mysql/atomicupdate/bug_8367-add_holds_pickup_period_circrule.pl >@@ -1,17 +1,19 @@ > use Modern::Perl; > > return { >- bug_number => "8367", >+ bug_number => "8367", > description => "Set hold pickup period circulation rule", >- up => sub { >+ up => sub { > my ($args) = @_; >- my ($dbh, $out) = @$args{qw(dbh out)}; >+ my ( $dbh, $out ) = @$args{qw(dbh out)}; > >- $dbh->do(q{ >+ $dbh->do( >+ q{ > INSERT IGNORE INTO circulation_rules ( branchcode, categorycode, itemtype, rule_name, rule_value ) > SELECT u.* FROM (SELECT NULL as branchcode, NULL as categorycode, NULL as itemtype, 'holds_pickup_period' as rule_name, '' as rule_value) u > WHERE NOT EXISTS ( SELECT rule_name FROM circulation_rules where rule_name = 'holds_pickup_period' ) >- }); >+ } >+ ); > > say $out "Added default circulation rule for holds_pickup_period"; > }, >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt >index ee259427da..97e72730bf 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt >@@ -99,7 +99,7 @@ > <span>Holds waiting:</span> [% reservecount | html %] > [% END %] > [% WRAPPER tab_item tabname= "holdsover" %] >- Holds waiting past their expiration date: [% overcount | html %] >+ <span>Holds waiting past their expiration date:</span> [% overcount | html %] > [% END %] > [% WRAPPER tab_item tabname= "holdscancelled" %] > <span>Holds with cancellation requests:</span> [% cancel_reqs_count | html %] >diff --git a/t/db_dependent/Holds/WaitingReserves.t b/t/db_dependent/Holds/WaitingReserves.t >index 5f08ce73c3..b39ee11ce1 100755 >--- a/t/db_dependent/Holds/WaitingReserves.t >+++ b/t/db_dependent/Holds/WaitingReserves.t >@@ -66,21 +66,23 @@ my $biblio4 = $builder->build_sample_biblio; > my $biblio5 = $builder->build_sample_biblio; > my $biblio6 = $builder->build_sample_biblio; > >-my $item1 = $builder->build_sample_item({biblionumber => $biblio->biblionumber}); >-my $item2 = $builder->build_sample_item({biblionumber => $biblio2->biblionumber}); >-my $item3 = $builder->build_sample_item({biblionumber => $biblio3->biblionumber}); >-my $item4 = $builder->build_sample_item({biblionumber => $biblio4->biblionumber}); >-my $item5 = $builder->build_sample_item({biblionumber => $biblio5->biblionumber}); >-my $item6 = $builder->build_sample_item({biblionumber => $biblio6->biblionumber}); >- >-Koha::CirculationRules->set_rules({ >- categorycode => undef, >- itemtype => undef, >- branchcode => undef, >- rules => { >- holds_pickup_period => undef, >+my $item1 = $builder->build_sample_item( { biblionumber => $biblio->biblionumber } ); >+my $item2 = $builder->build_sample_item( { biblionumber => $biblio2->biblionumber } ); >+my $item3 = $builder->build_sample_item( { biblionumber => $biblio3->biblionumber } ); >+my $item4 = $builder->build_sample_item( { biblionumber => $biblio4->biblionumber } ); >+my $item5 = $builder->build_sample_item( { biblionumber => $biblio5->biblionumber } ); >+my $item6 = $builder->build_sample_item( { biblionumber => $biblio6->biblionumber } ); >+ >+Koha::CirculationRules->set_rules( >+ { >+ categorycode => undef, >+ itemtype => undef, >+ branchcode => undef, >+ rules => { >+ holds_pickup_period => undef, >+ } > } >-}); >+); > > my $today = dt_from_string(); > >@@ -209,62 +211,75 @@ my $reserve4 = $builder->build({ > t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', 10); > ModReserveAffect( $item4->itemnumber, $patron2->{borrowernumber}, 0, $reserve4->{reserve_id}); > >-my $r4 = Koha::Holds->find($reserve4->{reserve_id}); >-is($r4->expirationdate, $requested_expiredate->ymd, 'Requested expiration date should be kept' ); >- >-Koha::CirculationRules->set_rules({ >- categorycode => $patron1->{categorycode}, >- itemtype => undef, >- branchcode => undef, >- rules => { >- holds_pickup_period => '3', >+my $r4 = Koha::Holds->find( $reserve4->{reserve_id} ); >+is( $r4->expirationdate, $requested_expiredate->ymd, 'Requested expiration date should be kept' ); >+ >+Koha::CirculationRules->set_rules( >+ { >+ categorycode => $patron1->{categorycode}, >+ itemtype => undef, >+ branchcode => undef, >+ rules => { >+ holds_pickup_period => '3', >+ } > } >-}); >-t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', 7); >- >-my $reserve5_reservedate = $today->clone; >-my $reserve5_expirationdate = $reserve5_reservedate->add(days => 3); >- >-my $reserve5 = $builder->build({ >- source => 'Reserve', >- value => { >- borrowernumber => $patron1->{borrowernumber}, >- reservedate => $reserve5_reservedate->ymd, >- expirationdate => undef, >- biblionumber => $biblio5->biblionumber, >- branchcode => 'LIB2', >- priority => 1, >- found => '', >- patron_expiration_date => undef, >- }, >-}); >+); >+t::lib::Mocks::mock_preference( 'ReservesMaxPickUpDelay', 7 ); >+ >+my $reserve5_reservedate = $today->clone; >+my $reserve5_expirationdate = $reserve5_reservedate->add( days => 3 ); >+ >+my $reserve5 = $builder->build( >+ { >+ source => 'Reserve', >+ value => { >+ borrowernumber => $patron1->{borrowernumber}, >+ reservedate => $reserve5_reservedate->ymd, >+ expirationdate => undef, >+ biblionumber => $biblio5->biblionumber, >+ branchcode => 'LIB2', >+ priority => 1, >+ found => '', >+ patron_expiration_date => undef, >+ }, >+ } >+); > >-ModReserveAffect( $item5->itemnumber, $patron1->{borrowernumber}); >-my $r5 = Koha::Holds->find($reserve5->{reserve_id}); >+ModReserveAffect( $item5->itemnumber, $patron1->{borrowernumber} ); >+my $r5 = Koha::Holds->find( $reserve5->{reserve_id} ); > >-is($r5->expirationdate, $reserve5_expirationdate->ymd, 'Expiration date should be set to today + 3 based on circulation rules' ); >+is( >+ $r5->expirationdate, $reserve5_expirationdate->ymd, >+ 'Expiration date should be set to today + 3 based on circulation rules' >+); > > my $reserve6_reservedate = $today->clone; >-# add 3 days of pickup + 1 day of holiday >-my $reserve6_expirationdate = $reserve6_reservedate->add(days => 5); > >-my $reserve6 = $builder->build({ >- source => 'Reserve', >- value => { >- borrowernumber => $patron1->{borrowernumber}, >- reservedate => $reserve6_reservedate->ymd, >- expirationdate => undef, >- biblionumber => $biblio6->biblionumber, >- branchcode => 'LIB1', >- priority => 1, >- found => '', >- patron_expiration_date => undef, >- }, >-}); >+# add 3 days of pickup + 1 day of holiday >+my $reserve6_expirationdate = $reserve6_reservedate->add( days => 5 ); >+ >+my $reserve6 = $builder->build( >+ { >+ source => 'Reserve', >+ value => { >+ borrowernumber => $patron1->{borrowernumber}, >+ reservedate => $reserve6_reservedate->ymd, >+ expirationdate => undef, >+ biblionumber => $biblio6->biblionumber, >+ branchcode => 'LIB1', >+ priority => 1, >+ found => '', >+ patron_expiration_date => undef, >+ }, >+ } >+); > >-ModReserveAffect( $item6->itemnumber, $patron1->{borrowernumber}); >-my $r6 = Koha::Holds->find($reserve6->{reserve_id}); >+ModReserveAffect( $item6->itemnumber, $patron1->{borrowernumber} ); >+my $r6 = Koha::Holds->find( $reserve6->{reserve_id} ); > >-is($r6->expirationdate, $reserve6_expirationdate->ymd, 'Expiration date should be set to today + 4 based on circulation rules and including a holiday' ); >+is( >+ $r6->expirationdate, $reserve6_expirationdate->ymd, >+ 'Expiration date should be set to today + 4 based on circulation rules and including a holiday' >+); > > $schema->storage->txn_rollback; >-- >2.30.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8367
:
12130
|
13139
|
13602
|
13603
|
13604
|
13624
|
15334
|
15335
|
15369
|
15498
|
15613
|
15658
|
15659
|
19093
|
19094
|
19095
|
19096
|
19104
|
19105
|
19107
|
19108
|
19116
|
19180
|
19181
|
19182
|
19360
|
19361
|
19362
|
20300
|
20301
|
20302
|
20303
|
20304
|
32786
|
32826
|
32884
|
32885
|
32916
|
32930
|
42706
|
42754
|
79790
|
79791
|
79798
|
79799
|
79800
|
79853
|
79854
|
79855
|
79859
|
92412
|
92413
|
92414
|
92415
|
92416
|
92417
|
92418
|
92419
|
92420
|
92421
|
92422
|
92423
|
92424
|
92425
|
92426
|
92427
|
92428
|
92958
|
92959
|
92960
|
92961
|
103425
|
113211
|
117284
|
118017
|
118021
|
124568
|
125087
|
131299
|
131300
|
131301
|
131302
|
131646
|
131647
|
131718
|
131719
|
131720
|
131722
|
131723
|
131724
|
133089
|
133090
|
133091
|
133092
|
133093
|
133094
|
142897
|
142898
|
142899
|
142900
|
142901
|
142902
|
142903
|
144097
|
144098
|
144099
|
144100
|
144101
|
144102
|
144103
|
144146
|
145644
|
145657
|
147798
|
147799
|
147800
|
147801
|
147802
|
147803
|
147804
|
147805
|
147806
|
147807
|
148536
|
148537
|
148538
|
148539
|
148540
|
148541
|
148542
|
148543
|
148544
|
148545
|
150437
|
150438
|
150439
|
153235
|
153237
|
153238
|
153239
|
153240
|
153241
|
153242
|
153243
|
153244
|
153245
|
153246
|
157138
|
157139
|
157140
|
157141
|
157142
|
157143
|
157144
|
157145
|
157146
|
157147
|
157148
|
157149
|
157150
|
157298
|
157343
|
157344
|
157345
|
157346
|
157347
|
157348
|
157349
|
157350
|
157351
|
157352
|
157354
|
157355
|
157356
|
157697
|
157698
|
157699
|
157700
|
157701
|
157702
|
157703
|
157704
|
157705
|
157706
|
157707
|
157708
|
157709
|
157715
|
158023
|
158024
|
158025
|
158026
|
158027
|
158028
|
158029
|
158030
|
158031
|
158032
|
158033
|
158034
|
158035
|
158254
|
158255