|
Lines 64-69
Koha::Account->new( { patron_id => $borrowernumber } )->pay(
Link Here
|
| 64 |
lines => $lines, # Arrayref of Koha::Account::Line objects to pay |
64 |
lines => $lines, # Arrayref of Koha::Account::Line objects to pay |
| 65 |
credit_type => $type, # credit_type_code code |
65 |
credit_type => $type, # credit_type_code code |
| 66 |
offset_type => $offset_type, # offset type code |
66 |
offset_type => $offset_type, # offset type code |
|
|
67 |
item_id => $itemnumber, # pass the itemnumber if this is a credit pertianing to a specific item (i.e LOST_FOUND) |
| 67 |
} |
68 |
} |
| 68 |
); |
69 |
); |
| 69 |
|
70 |
|
|
Lines 82-90
sub pay {
Link Here
|
| 82 |
my $credit_type = $params->{credit_type}; |
83 |
my $credit_type = $params->{credit_type}; |
| 83 |
my $offset_type = $params->{offset_type} || $type eq 'WRITEOFF' ? 'Writeoff' : 'Payment'; |
84 |
my $offset_type = $params->{offset_type} || $type eq 'WRITEOFF' ? 'Writeoff' : 'Payment'; |
| 84 |
my $cash_register = $params->{cash_register}; |
85 |
my $cash_register = $params->{cash_register}; |
|
|
86 |
my $item_id = $params->{item_id}; |
| 85 |
|
87 |
|
| 86 |
my $userenv = C4::Context->userenv; |
88 |
my $userenv = C4::Context->userenv; |
| 87 |
|
89 |
|
|
|
90 |
$credit_type ||= |
| 91 |
$type eq 'WRITEOFF' |
| 92 |
? 'WRITEOFF' |
| 93 |
: 'PAYMENT'; |
| 94 |
|
| 88 |
my $patron = Koha::Patrons->find( $self->{patron_id} ); |
95 |
my $patron = Koha::Patrons->find( $self->{patron_id} ); |
| 89 |
|
96 |
|
| 90 |
my $manager_id = $userenv ? $userenv->{number} : 0; |
97 |
my $manager_id = $userenv ? $userenv->{number} : 0; |
|
Lines 115-126
sub pay {
Link Here
|
| 115 |
$balance_remaining = $balance_remaining - $amount_to_pay; |
122 |
$balance_remaining = $balance_remaining - $amount_to_pay; |
| 116 |
|
123 |
|
| 117 |
# Same logic exists in Koha::Account::Line::apply |
124 |
# Same logic exists in Koha::Account::Line::apply |
| 118 |
if ( $new_amountoutstanding == 0 |
125 |
if ( C4::Context->preference('MarkLostItemsAsReturned') =~ m|onpayment| |
| 119 |
&& $fine->itemnumber |
|
|
| 120 |
&& $fine->debit_type_code |
126 |
&& $fine->debit_type_code |
| 121 |
&& ( $fine->debit_type_code eq 'LOST' ) ) |
127 |
&& $fine->debit_type_code eq 'LOST' |
|
|
128 |
&& $new_amountoutstanding == 0 |
| 129 |
&& $fine->itemnumber |
| 130 |
&& !( $credit_type eq 'LOST_FOUND' |
| 131 |
&& $item_id == $fine->itemnumber ) ) |
| 122 |
{ |
132 |
{ |
| 123 |
C4::Circulation::ReturnLostItem( $self->{patron_id}, $fine->itemnumber ); |
133 |
C4::Circulation::ReturnLostItem( $self->{patron_id}, |
|
|
134 |
$fine->itemnumber ); |
| 124 |
} |
135 |
} |
| 125 |
|
136 |
|
| 126 |
my $account_offset = Koha::Account::Offset->new( |
137 |
my $account_offset = Koha::Account::Offset->new( |
|
Lines 174-185
sub pay {
Link Here
|
| 174 |
$fine->amountoutstanding( $old_amountoutstanding - $amount_to_pay ); |
185 |
$fine->amountoutstanding( $old_amountoutstanding - $amount_to_pay ); |
| 175 |
$fine->store(); |
186 |
$fine->store(); |
| 176 |
|
187 |
|
| 177 |
if ( $fine->amountoutstanding == 0 |
188 |
if ( C4::Context->preference('MarkLostItemsAsReturned') =~ m|onpayment| |
| 178 |
&& $fine->itemnumber |
|
|
| 179 |
&& $fine->debit_type_code |
189 |
&& $fine->debit_type_code |
| 180 |
&& ( $fine->debit_type_code eq 'LOST' ) ) |
190 |
&& $fine->debit_type_code eq 'LOST' |
|
|
191 |
&& $fine->amountoutstanding == 0 |
| 192 |
&& $fine->itemnumber |
| 193 |
&& !( $credit_type eq 'LOST_FOUND' |
| 194 |
&& $item_id == $fine->itemnumber ) ) |
| 181 |
{ |
195 |
{ |
| 182 |
C4::Circulation::ReturnLostItem( $self->{patron_id}, $fine->itemnumber ); |
196 |
C4::Circulation::ReturnLostItem( $self->{patron_id}, |
|
|
197 |
$fine->itemnumber ); |
| 183 |
} |
198 |
} |
| 184 |
|
199 |
|
| 185 |
my $account_offset = Koha::Account::Offset->new( |
200 |
my $account_offset = Koha::Account::Offset->new( |
|
Lines 216-226
sub pay {
Link Here
|
| 216 |
last unless $balance_remaining > 0; |
231 |
last unless $balance_remaining > 0; |
| 217 |
} |
232 |
} |
| 218 |
|
233 |
|
| 219 |
$credit_type ||= |
|
|
| 220 |
$type eq 'WRITEOFF' |
| 221 |
? 'WRITEOFF' |
| 222 |
: 'PAYMENT'; |
| 223 |
|
| 224 |
$description ||= $type eq 'WRITEOFF' ? 'Writeoff' : q{}; |
234 |
$description ||= $type eq 'WRITEOFF' ? 'Writeoff' : q{}; |
| 225 |
|
235 |
|
| 226 |
my $payment = Koha::Account::Line->new( |
236 |
my $payment = Koha::Account::Line->new( |
|
Lines 237-242
sub pay {
Link Here
|
| 237 |
branchcode => $library_id, |
247 |
branchcode => $library_id, |
| 238 |
register_id => $cash_register, |
248 |
register_id => $cash_register, |
| 239 |
note => $note, |
249 |
note => $note, |
|
|
250 |
itemnumber => $item_id, |
| 240 |
} |
251 |
} |
| 241 |
)->store(); |
252 |
)->store(); |
| 242 |
|
253 |
|
| 243 |
- |
|
|