Lines 764-770
subtest "C4::Accounts::chargelostitem tests" => sub {
Link Here
|
764 |
}; |
764 |
}; |
765 |
|
765 |
|
766 |
subtest "Koha::Account::non_issues_charges tests" => sub { |
766 |
subtest "Koha::Account::non_issues_charges tests" => sub { |
767 |
plan tests => 21; |
767 |
plan tests => 6; |
768 |
|
768 |
|
769 |
my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); |
769 |
my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); |
770 |
my $account = $patron->account; |
770 |
my $account = $patron->account; |
Lines 772-777
subtest "Koha::Account::non_issues_charges tests" => sub {
Link Here
|
772 |
my $res = 3; |
772 |
my $res = 3; |
773 |
my $rent = 5; |
773 |
my $rent = 5; |
774 |
my $manual = 7; |
774 |
my $manual = 7; |
|
|
775 |
my $print = 4; |
775 |
$account->add_debit( |
776 |
$account->add_debit( |
776 |
{ |
777 |
{ |
777 |
description => 'a Res fee', |
778 |
description => 'a Res fee', |
Lines 805-814
subtest "Koha::Account::non_issues_charges tests" => sub {
Link Here
|
805 |
} |
806 |
} |
806 |
)->store; |
807 |
)->store; |
807 |
|
808 |
|
808 |
|
|
|
809 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 0 ); |
810 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 0 ); |
811 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 0 ); |
812 |
my ( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
809 |
my ( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
813 |
my $other_charges = $total - $non_issues_charges; |
810 |
my $other_charges = $total - $non_issues_charges; |
814 |
is( |
811 |
is( |
Lines 816-930
subtest "Koha::Account::non_issues_charges tests" => sub {
Link Here
|
816 |
$res + $rent + $manual, |
813 |
$res + $rent + $manual, |
817 |
'Total charges should be Res + Rent + Manual' |
814 |
'Total charges should be Res + Rent + Manual' |
818 |
); |
815 |
); |
819 |
is( $non_issues_charges, 0, |
816 |
is( $non_issues_charges, 15, |
820 |
'If 0|0|0 there should not have non issues charges' ); |
817 |
'All types should count towards the non issue charge' ); |
821 |
is( $other_charges, 15, 'If 0|0|0 there should only have other charges' ); |
818 |
is( $other_charges, 0, 'There shouldn\'t be any non-included charges' ); |
822 |
|
|
|
823 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 0 ); |
824 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 0 ); |
825 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 1 ); |
826 |
( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
827 |
$other_charges = $total - $non_issues_charges; |
828 |
is( |
829 |
$total, |
830 |
$res + $rent + $manual, |
831 |
'Total charges should be Res + Rent + Manual' |
832 |
); |
833 |
is( $non_issues_charges, $manual, |
834 |
'If 0|0|1 Only Manual should be a non issue charge' ); |
835 |
is( |
836 |
$other_charges, |
837 |
$res + $rent, |
838 |
'If 0|0|1 Res + Rent should be other charges' |
839 |
); |
840 |
|
819 |
|
841 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 0 ); |
820 |
Koha::Account::DebitTypes->find_or_create( |
842 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 1 ); |
821 |
{ |
843 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 0 ); |
822 |
code => 'Print', |
844 |
( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
823 |
description => 'Charge for using the printer', |
845 |
$other_charges = $total - $non_issues_charges; |
824 |
is_system => 0, |
846 |
is( |
825 |
restricts_checkouts => 0 |
847 |
$total, |
826 |
} |
848 |
$res + $rent + $manual, |
827 |
)->store; |
849 |
'Total charges should be Res + Rent + Manual' |
828 |
Koha::Account::Line->new( |
850 |
); |
829 |
{ |
851 |
is( $non_issues_charges, $rent, |
830 |
borrowernumber => $patron->borrowernumber, |
852 |
'If 0|1|0 Only Rental should be a non issue charge' ); |
831 |
description => 'Non-restricting fee', |
853 |
is( |
832 |
debit_type_code => 'Print', |
854 |
$other_charges, |
833 |
amountoutstanding => $print, |
855 |
$res + $manual, |
834 |
interface => 'commandline' |
856 |
'If 0|1|0 Rent + Manual should be other charges' |
835 |
} |
857 |
); |
836 |
)->store; |
858 |
|
|
|
859 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 0 ); |
860 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 1 ); |
861 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 1 ); |
862 |
( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
863 |
$other_charges = $total - $non_issues_charges; |
864 |
is( |
865 |
$total, |
866 |
$res + $rent + $manual, |
867 |
'Total charges should be Res + Rent + Manual' |
868 |
); |
869 |
is( |
870 |
$non_issues_charges, |
871 |
$rent + $manual, |
872 |
'If 0|1|1 Rent + Manual should be non issues charges' |
873 |
); |
874 |
is( $other_charges, $res, 'If 0|1|1 there should only have other charges' ); |
875 |
|
837 |
|
876 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 1 ); |
838 |
my ( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
877 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 0 ); |
839 |
my $other_charges = $total - $non_issues_charges; |
878 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 0 ); |
|
|
879 |
( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
880 |
$other_charges = $total - $non_issues_charges; |
881 |
is( |
882 |
$total, |
883 |
$res + $rent + $manual, |
884 |
'Total charges should be Res + Rent + Manual' |
885 |
); |
886 |
is( $non_issues_charges, $res, |
887 |
'If 1|0|0 Only Res should be non issues charges' ); |
888 |
is( |
840 |
is( |
889 |
$other_charges, |
841 |
$account->balance, |
890 |
$rent + $manual, |
842 |
$res + $rent + $manual + $print, |
891 |
'If 1|0|0 Rent + Manual should be other charges' |
843 |
'Total charges should be Res + Rent + Manual + Print' |
892 |
); |
844 |
); |
|
|
845 |
is( $non_issues_charges, 15, |
846 |
'All types except Print should count towards the non issue charge' ); |
847 |
is( $other_charges, 4, 'There should be non-included charges for Print' ); |
893 |
|
848 |
|
894 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 1 ); |
|
|
895 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 1 ); |
896 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 0 ); |
897 |
( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
898 |
$other_charges = $total - $non_issues_charges; |
899 |
is( |
900 |
$total, |
901 |
$res + $rent + $manual, |
902 |
'Total charges should be Res + Rent + Manual' |
903 |
); |
904 |
is( |
905 |
$non_issues_charges, |
906 |
$res + $rent, |
907 |
'If 1|1|0 Res + Rent should be non issues charges' |
908 |
); |
909 |
is( $other_charges, $manual, |
910 |
'If 1|1|0 Only Manual should be other charges' ); |
911 |
|
912 |
t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 1 ); |
913 |
t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 1 ); |
914 |
t::lib::Mocks::mock_preference( 'ManInvInNoissuesCharge', 1 ); |
915 |
( $total, $non_issues_charges ) = ( $account->balance, $account->non_issues_charges ); |
916 |
$other_charges = $total - $non_issues_charges; |
917 |
is( |
918 |
$total, |
919 |
$res + $rent + $manual, |
920 |
'Total charges should be Res + Rent + Manual' |
921 |
); |
922 |
is( |
923 |
$non_issues_charges, |
924 |
$res + $rent + $manual, |
925 |
'If 1|1|1 Res + Rent + Manual should be non issues charges' |
926 |
); |
927 |
is( $other_charges, 0, 'If 1|1|1 there should not have any other charges' ); |
928 |
}; |
849 |
}; |
929 |
|
850 |
|
930 |
subtest "Koha::Account::non_issues_charges tests" => sub { |
851 |
subtest "Koha::Account::non_issues_charges tests" => sub { |
931 |
- |
|
|