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

(-)a/t/db_dependent/Koha/Items.t (-10 / +57 lines)
Lines 557-566 subtest 'store' => sub { Link Here
557
        };
557
        };
558
558
559
        subtest
559
        subtest
560
          'Test with partial payement and write off, and remaining debt' =>
560
          'Test with partial payment and write off, and remaining debt' =>
561
          sub {
561
          sub {
562
562
563
            plan tests => 17;
563
            plan tests => 19;
564
565
            t::lib::Mocks::mock_preference( 'AccountAutoReconcile', 0 );
564
566
565
            my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
567
            my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
566
            my $item = $builder->build_sample_item(
568
            my $item = $builder->build_sample_item(
Lines 615-625 subtest 'store' => sub { Link Here
615
            is(
617
            is(
616
                $account->balance,
618
                $account->balance,
617
                $processfee_amount + $replacement_amount,
619
                $processfee_amount + $replacement_amount,
618
                'Balance is PROCESSING + L'
620
                'Balance is PROCESSING + LOST'
619
            );
621
            );
620
622
621
            # Partially pay fee
623
            # Partially pay fee (99 - 27 = 72)
622
            my $payment_amount = 27;
624
            my $payment_amount = 24;
623
            my $payment        = $account->add_credit(
625
            my $payment        = $account->add_credit(
624
                {
626
                {
625
                    amount    => $payment_amount,
627
                    amount    => $payment_amount,
Lines 630-637 subtest 'store' => sub { Link Here
630
632
631
            $payment->apply( { debits => [$lost_fee_line] } );
633
            $payment->apply( { debits => [$lost_fee_line] } );
632
634
633
            # Partially write off fee
635
            # Partially write off fee (72 - 20 = 52)
634
            my $write_off_amount = 25;
636
            my $write_off_amount = 20;
635
            my $write_off        = $account->add_credit(
637
            my $write_off        = $account->add_credit(
636
                {
638
                {
637
                    amount    => $write_off_amount,
639
                    amount    => $write_off_amount,
Lines 641-658 subtest 'store' => sub { Link Here
641
            );
643
            );
642
            $write_off->apply( { debits => [$lost_fee_line] } );
644
            $write_off->apply( { debits => [$lost_fee_line] } );
643
645
646
647
            my $payment_amount_2 = 3;
648
            my $payment_2        = $account->add_credit(
649
                {
650
                    amount    => $payment_amount_2,
651
                    type      => 'PAYMENT',
652
                    interface => 'test',
653
                }
654
            );
655
656
            $payment_2->apply(
657
                { debits => [$lost_fee_line] } );
658
659
            # Partially write off fee (52 - 5 = 47)
660
            my $write_off_amount_2 = 5;
661
            my $write_off_2        = $account->add_credit(
662
                {
663
                    amount    => $write_off_amount_2,
664
                    type      => 'WRITEOFF',
665
                    interface => 'test',
666
                }
667
            );
668
669
            $write_off_2->apply(
670
                { debits => [$lost_fee_line] } );
671
672
            is(
673
                $account->balance,
674
                $processfee_amount +
675
                  $replacement_amount -
676
                  $payment_amount -
677
                  $write_off_amount -
678
                  $payment_amount_2 -
679
                  $write_off_amount_2,
680
                'Balance is PROCESSING + LOST - PAYMENT 1 - WRITEOFF - PAYMENT 2 - WRITEOFF 2'
681
            );
682
683
            # VOID payment_2 and writeoff_2
684
            $payment_2->void({ interface => 'test' });
685
            $write_off_2->void({ interface => 'test' });
686
644
            is(
687
            is(
645
                $account->balance,
688
                $account->balance,
646
                $processfee_amount +
689
                $processfee_amount +
647
                  $replacement_amount -
690
                  $replacement_amount -
648
                  $payment_amount -
691
                  $payment_amount -
649
                  $write_off_amount,
692
                  $write_off_amount,
650
                'Payment and write off applied'
693
                'Balance is PROCESSING + LOST - PAYMENT 1 - WRITEOFF (PAYMENT 2 and WRITEOFF 2 VOIDED)'
651
            );
694
            );
652
695
653
            # Store the amountoutstanding value
696
            # Store the amountoutstanding value
654
            $lost_fee_line->discard_changes;
697
            $lost_fee_line->discard_changes;
655
            my $outstanding = $lost_fee_line->amountoutstanding;
698
            my $outstanding = $lost_fee_line->amountoutstanding;
699
            is(
700
                $outstanding + 0,
701
                $replacement_amount - $payment_amount - $write_off_amount,
702
                "Lost Fee Outstanding is LOST - PAYMENT 1 - WRITEOFF"
703
            );
656
704
657
            # Simulate item marked as found
705
            # Simulate item marked as found
658
            $item->itemlost(0)->store;
706
            $item->itemlost(0)->store;
Lines 685-691 subtest 'store' => sub { Link Here
685
            is(
733
            is(
686
                $credit_return->amount + 0,
734
                $credit_return->amount + 0,
687
                ( $payment_amount + $outstanding ) * -1,
735
                ( $payment_amount + $outstanding ) * -1,
688
'The account line of type LOST_FOUND has an amount equal to the payment + outstanding'
736
'The account line of type LOST_FOUND has an amount equal to the payment 1 + outstanding'
689
            );
737
            );
690
            is(
738
            is(
691
                $credit_return->amountoutstanding + 0,
739
                $credit_return->amountoutstanding + 0,
692
- 

Return to bug 28421