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

(-)a/C4/Accounts.pm (-60 / +14 lines)
Lines 445-451 sub recordpayment_selectaccts { Link Here
445
        {
445
        {
446
            amount => $amount,
446
            amount => $amount,
447
            lines  => \@lines,
447
            lines  => \@lines,
448
            note   => $note
448
            note   => $note,
449
        }
449
        }
450
      );
450
      );
451
}
451
}
Lines 454-520 sub recordpayment_selectaccts { Link Here
454
# fills in
454
# fills in
455
sub makepartialpayment {
455
sub makepartialpayment {
456
    my ( $accountlines_id, $borrowernumber, $accountno, $amount, $user, $branch, $payment_note ) = @_;
456
    my ( $accountlines_id, $borrowernumber, $accountno, $amount, $user, $branch, $payment_note ) = @_;
457
    my $manager_id = 0;
458
    $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
459
    if (!$amount || $amount < 0) {
460
        return;
461
    }
462
    $payment_note //= "";
463
    my $dbh = C4::Context->dbh;
464
465
    my $nextaccntno = getnextacctno($borrowernumber);
466
    my $newamtos    = 0;
467
468
    my $data = $dbh->selectrow_hashref(
469
        'SELECT * FROM accountlines WHERE  accountlines_id=?',undef,$accountlines_id);
470
    my $new_outstanding = $data->{amountoutstanding} - $amount;
471
472
    my $update = 'UPDATE  accountlines SET amountoutstanding = ?  WHERE   accountlines_id = ? ';
473
    $dbh->do( $update, undef, $new_outstanding, $accountlines_id);
474
475
    if ( C4::Context->preference("FinesLog") ) {
476
        logaction("FINES", 'MODIFY', $borrowernumber, Dumper({
477
            action                => 'fee_payment',
478
            borrowernumber        => $borrowernumber,
479
            old_amountoutstanding => $data->{'amountoutstanding'},
480
            new_amountoutstanding => $new_outstanding,
481
            amount_paid           => $data->{'amountoutstanding'} - $new_outstanding,
482
            accountlines_id       => $data->{'accountlines_id'},
483
            accountno             => $data->{'accountno'},
484
            manager_id            => $manager_id,
485
        }));
486
    }
487
488
    # create new line
489
    my $insert = 'INSERT INTO accountlines (borrowernumber, accountno, date, amount, '
490
    .  'description, accounttype, amountoutstanding, itemnumber, manager_id, note) '
491
    . ' VALUES (?, ?, now(), ?, ?, ?, 0, ?, ?, ?)';
492
493
    $dbh->do(  $insert, undef, $borrowernumber, $nextaccntno, $amount,
494
        '', 'Pay', $data->{'itemnumber'}, $manager_id, $payment_note);
495
457
496
    UpdateStats({
458
    my $line = Koha::Account::Lines->find( $accountlines_id );
497
        branch => $branch,
498
        type   => 'payment',
499
        amount => $amount,
500
        borrowernumber => $borrowernumber,
501
        accountno => $accountno
502
    });
503
459
504
    if ( C4::Context->preference("FinesLog") ) {
460
    return Koha::Account->new(
505
        logaction("FINES", 'CREATE',$borrowernumber,Dumper({
461
        {
506
            action            => 'create_payment',
462
            patron_id => $borrowernumber,
507
            borrowernumber    => $user,
463
        }
508
            accountno         => $nextaccntno,
464
      )->pay(
509
            amount            => 0 - $amount,
465
        {
510
            accounttype       => 'Pay',
466
            amount => $amount,
511
            itemnumber        => $data->{'itemnumber'},
467
            lines  => [ $line ],
512
            accountlines_paid => [ $data->{'accountlines_id'} ],
468
            note   => $payment_note,
513
            manager_id        => $manager_id,
469
            library_id => $branch,
514
        }));
470
        }
515
    }
471
      );
516
472
517
    return;
518
}
473
}
519
474
520
=head2 WriteOffFee
475
=head2 WriteOffFee
521
- 

Return to bug 15898