Lines 95-108
subtest "Bug 34529: Offline circulation should be able to accept userid as well
Link Here
|
95 |
"ProcessOfflineIssue succeeds with cardnumber" |
95 |
"ProcessOfflineIssue succeeds with cardnumber" |
96 |
); |
96 |
); |
97 |
is( |
97 |
is( |
98 |
ProcessOfflineIssue( |
98 |
ProcessOfflineIssue( { cardnumber => $borrower1->{userid}, barcode => $item2->barcode } ), |
99 |
{ cardnumber => $borrower1->{userid}, barcode => $item2->barcode } |
|
|
100 |
), |
101 |
"Success.", |
99 |
"Success.", |
102 |
"ProcessOfflineIssue succeeds with user id" |
100 |
"ProcessOfflineIssue succeeds with user id" |
103 |
); |
101 |
); |
104 |
|
102 |
|
105 |
}; |
103 |
}; |
106 |
|
104 |
|
107 |
subtest "Bug 30114 - Koha offline circulation will always cancel the next hold when issuing item to a patron" => sub { |
105 |
subtest "Bug 30114 - Koha offline circulation will always cancel the next hold when issuing item to a patron" => sub { |
108 |
|
106 |
|
Lines 114-149
subtest "Bug 30114 - Koha offline circulation will always cancel the next hold w
Link Here
|
114 |
t::lib::Mocks::mock_preference( "item-level_itypes", 1 ); |
112 |
t::lib::Mocks::mock_preference( "item-level_itypes", 1 ); |
115 |
|
113 |
|
116 |
# Create a branch |
114 |
# Create a branch |
117 |
$branch = $builder->build({ source => 'Branch' })->{ branchcode }; |
115 |
$branch = $builder->build( { source => 'Branch' } )->{branchcode}; |
|
|
116 |
|
118 |
# Create a borrower |
117 |
# Create a borrower |
119 |
my $borrower1 = $builder->build({ |
118 |
my $borrower1 = $builder->build( |
120 |
source => 'Borrower', |
119 |
{ |
121 |
value => { branchcode => $branch } |
120 |
source => 'Borrower', |
122 |
}); |
121 |
value => { branchcode => $branch } |
|
|
122 |
} |
123 |
); |
123 |
|
124 |
|
124 |
my $borrower2 = $builder->build({ |
125 |
my $borrower2 = $builder->build( |
125 |
source => 'Borrower', |
126 |
{ |
126 |
value => { branchcode => $branch } |
127 |
source => 'Borrower', |
127 |
}); |
128 |
value => { branchcode => $branch } |
|
|
129 |
} |
130 |
); |
128 |
|
131 |
|
129 |
my $borrower3 = $builder->build({ |
132 |
my $borrower3 = $builder->build( |
130 |
source => 'Borrower', |
133 |
{ |
131 |
value => { branchcode => $branch } |
134 |
source => 'Borrower', |
132 |
}); |
135 |
value => { branchcode => $branch } |
|
|
136 |
} |
137 |
); |
133 |
|
138 |
|
134 |
# Look for the defined MARC field for biblio-level itemtype |
139 |
# Look for the defined MARC field for biblio-level itemtype |
135 |
my $rs = $schema->resultset('MarcSubfieldStructure')->search({ |
140 |
my $rs = $schema->resultset('MarcSubfieldStructure')->search( |
136 |
frameworkcode => '', |
141 |
{ |
137 |
kohafield => 'biblioitems.itemtype' |
142 |
frameworkcode => '', |
138 |
}); |
143 |
kohafield => 'biblioitems.itemtype' |
|
|
144 |
} |
145 |
); |
139 |
my $tagfield = $rs->first->tagfield; |
146 |
my $tagfield = $rs->first->tagfield; |
140 |
my $tagsubfield = $rs->first->tagsubfield; |
147 |
my $tagsubfield = $rs->first->tagsubfield; |
141 |
|
148 |
|
142 |
# Create a biblio record with biblio-level itemtype |
149 |
# Create a biblio record with biblio-level itemtype |
143 |
my $record = MARC::Record->new(); |
150 |
my $record = MARC::Record->new(); |
144 |
my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, '' ); |
151 |
my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, '' ); |
145 |
my $itype = $builder->build({ source => 'Itemtype' }); |
152 |
my $itype = $builder->build( { source => 'Itemtype' } ); |
146 |
my $item = $builder->build_sample_item( |
153 |
my $item = $builder->build_sample_item( |
147 |
{ |
154 |
{ |
148 |
biblionumber => $biblionumber, |
155 |
biblionumber => $biblionumber, |
149 |
library => $branch, |
156 |
library => $branch, |
Lines 153-189
subtest "Bug 30114 - Koha offline circulation will always cancel the next hold w
Link Here
|
153 |
|
160 |
|
154 |
AddReserve( |
161 |
AddReserve( |
155 |
{ |
162 |
{ |
156 |
branchcode => $branch, |
163 |
branchcode => $branch, |
157 |
borrowernumber => $borrower1->{borrowernumber}, |
164 |
borrowernumber => $borrower1->{borrowernumber}, |
158 |
biblionumber => $biblionumber, |
165 |
biblionumber => $biblionumber, |
159 |
priority => 1, |
166 |
priority => 1, |
160 |
itemnumber => $item->id, |
167 |
itemnumber => $item->id, |
161 |
} |
168 |
} |
162 |
); |
169 |
); |
163 |
|
170 |
|
164 |
AddReserve( |
171 |
AddReserve( |
165 |
{ |
172 |
{ |
166 |
branchcode => $branch, |
173 |
branchcode => $branch, |
167 |
borrowernumber => $borrower2->{borrowernumber}, |
174 |
borrowernumber => $borrower2->{borrowernumber}, |
168 |
biblionumber => $biblionumber, |
175 |
biblionumber => $biblionumber, |
169 |
priority => 2, |
176 |
priority => 2, |
170 |
itemnumber => $item->id, |
177 |
itemnumber => $item->id, |
171 |
} |
178 |
} |
172 |
); |
179 |
); |
173 |
|
180 |
|
174 |
my $now = dt_from_string->truncate( to => 'minute' ); |
181 |
my $now = dt_from_string->truncate( to => 'minute' ); |
175 |
AddOfflineOperation( $borrower3->{borrowernumber}, $borrower3->{branchcode}, $now, 'issue', $item->barcode, $borrower3->{cardnumber} ); |
182 |
AddOfflineOperation( |
|
|
183 |
$borrower3->{borrowernumber}, $borrower3->{branchcode}, $now, 'issue', $item->barcode, |
184 |
$borrower3->{cardnumber} |
185 |
); |
176 |
|
186 |
|
177 |
my $offline_rs = Koha::Database->new()->schema()->resultset('PendingOfflineOperation')->search(); |
187 |
my $offline_rs = Koha::Database->new()->schema()->resultset('PendingOfflineOperation')->search(); |
178 |
is( $offline_rs->count, 1, "Found one pending offline operation" ); |
188 |
is( $offline_rs->count, 1, "Found one pending offline operation" ); |
179 |
|
189 |
|
180 |
is( Koha::Holds->search({ biblionumber => $biblionumber })->count, 2, "Found two holds for the record" ); |
190 |
is( Koha::Holds->search( { biblionumber => $biblionumber } )->count, 2, "Found two holds for the record" ); |
181 |
|
191 |
|
182 |
my $op = GetOfflineOperation( $offline_rs->next->id ); |
192 |
my $op = GetOfflineOperation( $offline_rs->next->id ); |
183 |
|
193 |
|
184 |
my $ret = ProcessOfflineOperation( $op ); |
194 |
my $ret = ProcessOfflineOperation($op); |
185 |
|
195 |
|
186 |
is( Koha::Holds->search({ biblionumber => $biblionumber })->count, 2, "Still found two holds for the record" ); |
196 |
is( Koha::Holds->search( { biblionumber => $biblionumber } )->count, 2, "Still found two holds for the record" ); |
187 |
}; |
197 |
}; |
188 |
|
198 |
|
189 |
$schema->storage->txn_rollback; |
199 |
$schema->storage->txn_rollback; |
190 |
- |
|
|