|
Lines 18-24
Link Here
|
| 18 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
18 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
| 19 |
|
19 |
|
| 20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
| 21 |
use Test::More tests => 176; |
21 |
use Test::More tests => 177; |
| 22 |
use Test::Warn; |
22 |
use Test::Warn; |
| 23 |
use Test::Exception; |
23 |
use Test::Exception; |
| 24 |
use Encode qw( encode_utf8 ); |
24 |
use Encode qw( encode_utf8 ); |
|
Lines 186-200
is($result_3a->{imported}, 0, 'Got the expected 0 imported result from import_pa
Link Here
|
| 186 |
is($result_3a->{invalid}, 0, 'Got the expected 0 invalid result from import_patrons'); |
186 |
is($result_3a->{invalid}, 0, 'Got the expected 0 invalid result from import_patrons'); |
| 187 |
is($result_3a->{overwritten}, 1, 'Got the expected 1 overwritten result from import_patrons that matched'); |
187 |
is($result_3a->{overwritten}, 1, 'Got the expected 1 overwritten result from import_patrons that matched'); |
| 188 |
|
188 |
|
|
|
189 |
my $patron_3 = Koha::Patrons->find({ cardnumber => '1000' }); |
| 190 |
is( $patron_3->dateexpiry, '2015-07-01', "Expiration date is correct with update_dateexpiry = false" ); |
| 191 |
|
| 189 |
# Given ... valid file handle, good matchpoint that matches should overwrite when set, surname is protected from |
192 |
# Given ... valid file handle, good matchpoint that matches should overwrite when set, surname is protected from |
| 190 |
# overwrite but firstname is not |
193 |
# overwrite but firstname is not |
| 191 |
my $filename_3c = make_csv($temp_dir, $csv_headers, $csv_one_line_b); |
194 |
my $filename_3c = make_csv($temp_dir, $csv_headers, $csv_one_line_b); |
| 192 |
open(my $handle_3c, "<", $filename_3c) or die "cannot open < $filename_3: $!"; |
195 |
open(my $handle_3c, "<", $filename_3c) or die "cannot open < $filename_3: $!"; |
| 193 |
my $params_3c = { file => $handle_3c, matchpoint => 'cardnumber', overwrite_cardnumber => 1, preserve_fields => [ 'firstname' ], update_dateexpiry => 1, update_dateexpiry_from_today => 1 }; |
196 |
my $params_3c = { file => $handle_3c, matchpoint => 'cardnumber', overwrite_cardnumber => 1, preserve_fields => [ 'firstname' ], update_dateexpiry => 1, update_dateexpiry_from_today => 1 }; |
| 194 |
|
197 |
|
| 195 |
my $patron_3 = Koha::Patrons->find({ cardnumber => '1000' }); |
|
|
| 196 |
is( $patron_3->dateexpiry, '2015-07-01', "Expiration date is correct with update_dateexpiry = false" ); |
| 197 |
|
| 198 |
# When ... |
198 |
# When ... |
| 199 |
my $result_3c; |
199 |
my $result_3c; |
| 200 |
warning_is { $result_3c = $patrons_import->import_patrons($params_3c) } |
200 |
warning_is { $result_3c = $patrons_import->import_patrons($params_3c) } |
|
Lines 1175-1180
subtest 'welcome_email' => sub {
Link Here
|
| 1175 |
is($notices->count, 1, 'Notice was queued'); |
1175 |
is($notices->count, 1, 'Notice was queued'); |
| 1176 |
}; |
1176 |
}; |
| 1177 |
|
1177 |
|
|
|
1178 |
subtest 'test update_dateexpiry when no dateexpiry in file' => sub { |
| 1179 |
|
| 1180 |
# Normally, imports on ly update included columns, however, if we are asking Koha |
| 1181 |
# to calculate expiration dates |
| 1182 |
|
| 1183 |
plan tests => 3; |
| 1184 |
|
| 1185 |
my $csv_headers = 'cardnumber,surname,branchcode,categorycode,dateenrolled'; |
| 1186 |
my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); |
| 1187 |
$patron->dateexpiry( dt_from_string() ); |
| 1188 |
$patron->dateenrolled( dt_from_string->add( months => '-24', end_of_month => 'limit' ) )->store; |
| 1189 |
my $csv_values = join( |
| 1190 |
',', $patron->cardnumber, $patron->surname, $patron->branchcode, $patron->categorycode, |
| 1191 |
$patron->dateenrolled |
| 1192 |
); |
| 1193 |
$patron->category->enrolmentperiod(42)->enrolmentperioddate(undef)->store(); |
| 1194 |
|
| 1195 |
my $filename_1 = make_csv( $temp_dir, $csv_headers, $csv_values ); |
| 1196 |
open( my $handle_1, "<", $filename_1 ) or die "cannot open < $filename_1: $!"; |
| 1197 |
my $params = { file => $handle_1, matchpoint => 'cardnumber', overwrite_cardnumber => 1, update_dateexpiry => 1 }; |
| 1198 |
my $result = $patrons_import->import_patrons( $params, {} ); |
| 1199 |
|
| 1200 |
$patron->discard_changes(); |
| 1201 |
|
| 1202 |
is( |
| 1203 |
$patron->dateexpiry, dt_from_string->add( months => 18, end_of_month => 'limit' )->ymd, |
| 1204 |
"Expiration date is correct with update_dateexpiry = true no dateexpiry in file and update_datexpiryfromtoday false (i.e. use passed dateenrolled) " |
| 1205 |
); |
| 1206 |
|
| 1207 |
$filename_1 = make_csv( $temp_dir, $csv_headers, $csv_values ); |
| 1208 |
open( $handle_1, "<", $filename_1 ) or die "cannot open < $filename_1: $!"; |
| 1209 |
$params = { |
| 1210 |
file => $handle_1, matchpoint => 'cardnumber', overwrite_cardnumber => 1, update_dateexpiry => 1, |
| 1211 |
update_dateexpiry_from_today => 1 |
| 1212 |
}; |
| 1213 |
$result = $patrons_import->import_patrons( $params, {} ); |
| 1214 |
$patron->discard_changes(); |
| 1215 |
is( |
| 1216 |
$patron->dateexpiry, dt_from_string->add( months => 42, end_of_month => 'limit' )->ymd, |
| 1217 |
"Expiration date is correct with update_dateexpiry = true no dateexpiry in file and update_datexpiryfromtoday true " |
| 1218 |
); |
| 1219 |
|
| 1220 |
$csv_headers = 'cardnumber,surname,branchcode,categorycode'; |
| 1221 |
$csv_values = join( ',', $patron->cardnumber, $patron->surname, $patron->branchcode, $patron->categorycode ); |
| 1222 |
$filename_1 = make_csv( $temp_dir, $csv_headers, $csv_values ); |
| 1223 |
open( $handle_1, "<", $filename_1 ) or die "cannot open < $filename_1: $!"; |
| 1224 |
$patron->dateexpiry( dt_from_string() ); |
| 1225 |
$patron->dateenrolled( dt_from_string->add( months => '-24', end_of_month => 'limit' ) )->store; |
| 1226 |
$params = { file => $handle_1, matchpoint => 'cardnumber', overwrite_cardnumber => 1, update_dateexpiry => 1 }; |
| 1227 |
$result = $patrons_import->import_patrons( $params, {} ); |
| 1228 |
$patron->discard_changes(); |
| 1229 |
is( |
| 1230 |
$patron->dateexpiry, dt_from_string->add( months => 42, end_of_month => 'limit' )->ymd, |
| 1231 |
"Expiration date is correct with update_dateexpiry = true no dateexpiry in file and update_datexpiryfromtoday false but no dateenrolled in file (today is used) " |
| 1232 |
); |
| 1233 |
|
| 1234 |
}; |
| 1235 |
|
| 1178 |
# got is { code => $code, attribute => $attribute } |
1236 |
# got is { code => $code, attribute => $attribute } |
| 1179 |
# expected is { $code => \@attributes } |
1237 |
# expected is { $code => \@attributes } |
| 1180 |
sub compare_patron_attributes { |
1238 |
sub compare_patron_attributes { |
| 1181 |
- |
|
|