|
Lines 138-149
sub checkout {
Link Here
|
| 138 |
# BEGIN TRANSACTION |
138 |
# BEGIN TRANSACTION |
| 139 |
$circ->patron( $patron = C4::SIP::ILS::Patron->new($patron_id) ); |
139 |
$circ->patron( $patron = C4::SIP::ILS::Patron->new($patron_id) ); |
| 140 |
$circ->item( $item = C4::SIP::ILS::Item->new($item_id) ); |
140 |
$circ->item( $item = C4::SIP::ILS::Item->new($item_id) ); |
|
|
141 |
|
| 141 |
if ($fee_ack) { |
142 |
if ($fee_ack) { |
| 142 |
$circ->fee_ack($fee_ack); |
143 |
$circ->fee_ack($fee_ack); |
| 143 |
} |
144 |
} |
|
|
145 |
|
| 144 |
if ( !$patron ) { |
146 |
if ( !$patron ) { |
| 145 |
$circ->screen_msg("Invalid Patron"); |
147 |
$circ->screen_msg("Invalid Patron"); |
| 146 |
} |
148 |
} |
|
|
149 |
elsif ( !$item ) { |
| 150 |
$circ->screen_msg("Invalid Item"); |
| 151 |
} |
| 152 |
elsif ( $no_block_due_date ) { |
| 153 |
# A no block due date means we need check this item out to the patron |
| 154 |
# regardless if fines, restrictions or any other things that would |
| 155 |
# typically prevent a patron from checking out. |
| 156 |
# A no block transaction is used for send offline ( store and forward ) |
| 157 |
# transaction to Koha. The patron already has possession of the item |
| 158 |
# so it should be checked out to the patron no matter what. |
| 159 |
$circ->do_checkout( $account, $no_block_due_date ); |
| 160 |
|
| 161 |
$item->{borrowernumber} = $patron_id; |
| 162 |
$item->{due_date} = $circ->{due}; |
| 163 |
push( @{ $patron->{items} }, { barcode => $item_id } ); |
| 164 |
$circ->desensitize( !$item->magnetic_media ); |
| 165 |
|
| 166 |
siplog( |
| 167 |
"LOG_DEBUG", "ILS::Checkout: patron %s has checked out %s via a no block checkout", |
| 168 |
$patron_id, join( ', ', map { $_->{barcode} } @{ $patron->{items} } ) |
| 169 |
); |
| 170 |
} |
| 147 |
elsif ( !$patron->charge_ok ) { |
171 |
elsif ( !$patron->charge_ok ) { |
| 148 |
if ($patron->debarred) { |
172 |
if ($patron->debarred) { |
| 149 |
$circ->screen_msg("Patron debarred"); |
173 |
$circ->screen_msg("Patron debarred"); |
|
Lines 163-171
sub checkout {
Link Here
|
| 163 |
$circ->screen_msg("Patron blocked"); |
187 |
$circ->screen_msg("Patron blocked"); |
| 164 |
} |
188 |
} |
| 165 |
} |
189 |
} |
| 166 |
elsif ( !$item ) { |
|
|
| 167 |
$circ->screen_msg("Invalid Item"); |
| 168 |
} |
| 169 |
elsif ( |
190 |
elsif ( |
| 170 |
$item->{borrowernumber} |
191 |
$item->{borrowernumber} |
| 171 |
&& !C4::Context->preference('AllowItemsOnLoanCheckoutSIP') |
192 |
&& !C4::Context->preference('AllowItemsOnLoanCheckoutSIP') |
|
Lines 178-184
sub checkout {
Link Here
|
| 178 |
$circ->screen_msg("Item type cannot be checked out at this checkout location"); |
199 |
$circ->screen_msg("Item type cannot be checked out at this checkout location"); |
| 179 |
} |
200 |
} |
| 180 |
else { |
201 |
else { |
| 181 |
$circ->do_checkout($account, $no_block_due_date); |
202 |
# No block checkouts were handled earlier so there is no need |
|
|
203 |
# to bass the no block due date here. |
| 204 |
$circ->do_checkout($account); |
| 182 |
if ( $circ->ok ) { |
205 |
if ( $circ->ok ) { |
| 183 |
|
206 |
|
| 184 |
# If the item is already associated with this patron, then |
207 |
# If the item is already associated with this patron, then |
| 185 |
- |
|
|