Jonathan Druart
142eb5ed38
Tests assume that the branchcodes CPL/MPL/etc. already exist in the DB. If they need them, they should create them. Test plan: Execute the differente test files on a DB without any branchcode or at least without CPL/MPL branches. Confirm that the tests pass. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
73 lines
2.2 KiB
Perl
73 lines
2.2 KiB
Perl
use Modern::Perl;
|
|
use Test::More tests => 4;
|
|
|
|
use C4::Context;
|
|
use C4::Members;
|
|
use Koha::Database;
|
|
|
|
use t::lib::TestBuilder;
|
|
|
|
my $schema = Koha::Database->schema;
|
|
$schema->storage->txn_begin;
|
|
my $builder = t::lib::TestBuilder->new;
|
|
my $dbh = C4::Context->dbh;
|
|
$dbh->{RaiseError} = 1;
|
|
|
|
my $library = $builder->build({
|
|
source => 'Branch',
|
|
});
|
|
|
|
my $enrolmentfee_K = 5;
|
|
my $enrolmentfee_J = 10;
|
|
my $enrolmentfee_YA = 20;
|
|
|
|
$dbh->do(q{
|
|
UPDATE categories
|
|
SET enrolmentfee=?
|
|
WHERE categorycode=?
|
|
}, {}, $enrolmentfee_K, 'K' );
|
|
|
|
$dbh->do(q{
|
|
UPDATE categories
|
|
SET enrolmentfee=?
|
|
WHERE categorycode=?
|
|
}, {}, $enrolmentfee_J, 'J' );
|
|
|
|
$dbh->do(q{
|
|
UPDATE categories
|
|
SET enrolmentfee=?
|
|
WHERE categorycode=?
|
|
}, {}, $enrolmentfee_YA, 'YA' );
|
|
|
|
my %borrower_data = (
|
|
firstname => 'my firstname',
|
|
surname => 'my surname',
|
|
categorycode => 'K',
|
|
branchcode => $library->{branchcode},
|
|
);
|
|
|
|
my $borrowernumber = C4::Members::AddMember( %borrower_data );
|
|
$borrower_data{borrowernumber} = $borrowernumber;
|
|
|
|
my ( $total ) = C4::Members::GetMemberAccountRecords( $borrowernumber );
|
|
is( $total, $enrolmentfee_K, "New kid pay $enrolmentfee_K" );
|
|
|
|
C4::Context->set_preference( 'FeeOnChangePatronCategory', 0 );
|
|
$borrower_data{categorycode} = 'J';
|
|
C4::Members::ModMember( %borrower_data );
|
|
( $total ) = C4::Members::GetMemberAccountRecords( $borrowernumber );
|
|
is( $total, $enrolmentfee_K , "Kid growing and become a juvenile, but shouldn't pay for the upgrade ");
|
|
|
|
$borrower_data{categorycode} = 'K';
|
|
C4::Members::ModMember( %borrower_data );
|
|
C4::Context->set_preference( 'FeeOnChangePatronCategory', 1 );
|
|
|
|
$borrower_data{categorycode} = 'J';
|
|
C4::Members::ModMember( %borrower_data );
|
|
( $total ) = C4::Members::GetMemberAccountRecords( $borrowernumber );
|
|
is( $total, $enrolmentfee_K + $enrolmentfee_J, "Kid growing and become a juvenile, he should pay " . ( $enrolmentfee_K + $enrolmentfee_J ) );
|
|
|
|
# Check with calling directly AddEnrolmentFeeIfNeeded
|
|
C4::Members::AddEnrolmentFeeIfNeeded( 'YA', $borrowernumber );
|
|
( $total ) = C4::Members::GetMemberAccountRecords( $borrowernumber );
|
|
is( $total, $enrolmentfee_K + $enrolmentfee_J + $enrolmentfee_YA, "Juvenile growing and become an young adult, he should pay " . ( $enrolmentfee_K + $enrolmentfee_J + $enrolmentfee_YA ) );
|