View | Details | Raw Unified | Return to bug 12768
Collapse All | Expand All

(-)a/C4/Accounts.pm (-44 / +2 lines)
Lines 145-150 sub chargelostitem{ Link Here
145
        $replacementprice = $defaultreplacecost;
145
        $replacementprice = $defaultreplacecost;
146
    }
146
    }
147
    # first make sure the borrower hasn't already been charged for this item
147
    # first make sure the borrower hasn't already been charged for this item
148
    # FIXME this should be more exact
149
    #       there is no reason a user can't lose an item, find and return it, and lost it again
148
    my $existing_charges = Koha::Account::Lines->search(
150
    my $existing_charges = Koha::Account::Lines->search(
149
        {
151
        {
150
            borrowernumber => $borrowernumber,
152
            borrowernumber => $borrowernumber,
Lines 155-203 sub chargelostitem{ Link Here
155
157
156
    # OK, they haven't
158
    # OK, they haven't
157
    unless ($existing_charges) {
159
    unless ($existing_charges) {
158
        my $manager_id = 0;
159
        $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
160
        # This item is on issue ... add replacement cost to the borrower's record and mark it returned
161
        #  Note that we add this to the account even if there's no replacement price, allowing some other
162
        #  process (or person) to update it, since we don't handle any defaults for replacement prices.
163
        my $accountno = getnextacctno($borrowernumber);
164
165
        my $accountline = Koha::Account::Line->new(
166
            {
167
                borrowernumber    => $borrowernumber,
168
                accountno         => $accountno,
169
                date              => \'NOW()',
170
                amount            => $amount,
171
                description       => $description,
172
                accounttype       => 'L',
173
                amountoutstanding => $amount,
174
                itemnumber        => $itemnumber,
175
                manager_id        => $manager_id,
176
            }
177
        )->store();
178
179
        my $account_offset = Koha::Account::Offset->new(
180
            {
181
                debit_id => $accountline->id,
182
                type     => 'Lost Item',
183
                amount   => $amount,
184
            }
185
        )->store();
186
187
        if ( C4::Context->preference("FinesLog") ) {
188
            logaction("FINES", 'CREATE', $borrowernumber, Dumper({
189
                action            => 'create_fee',
190
                borrowernumber    => $borrowernumber,
191
                accountno         => $accountno,
192
                amount            => $amount,
193
                amountoutstanding => $amount,
194
                description       => $description,
195
                accounttype       => 'L',
196
                itemnumber        => $itemnumber,
197
                manager_id        => $manager_id,
198
            }));
199
        }
200
201
        #add processing fee
160
        #add processing fee
202
        if ($processfee && $processfee > 0){
161
        if ($processfee && $processfee > 0){
203
            manualinvoice($borrowernumber, $itemnumber, $description, 'PF', $processfee, $processingfeenote, 1);
162
            manualinvoice($borrowernumber, $itemnumber, $description, 'PF', $processfee, $processingfeenote, 1);
204
- 

Return to bug 12768