Lines 70-77
BEGIN {
Link Here
|
70 |
&GetFirstValidEmailAddress |
70 |
&GetFirstValidEmailAddress |
71 |
&GetNoticeEmailAddress |
71 |
&GetNoticeEmailAddress |
72 |
|
72 |
|
73 |
&GetAge |
|
|
74 |
|
75 |
&GetHideLostItemsPreference |
73 |
&GetHideLostItemsPreference |
76 |
|
74 |
|
77 |
&GetMemberAccountRecords |
75 |
&GetMemberAccountRecords |
Lines 1213-1288
sub GetUpcomingMembershipExpires {
Link Here
|
1213 |
return $results; |
1211 |
return $results; |
1214 |
} |
1212 |
} |
1215 |
|
1213 |
|
1216 |
=head2 GetAge |
|
|
1217 |
|
1218 |
$dateofbirth,$date = &GetAge($date); |
1219 |
|
1220 |
this function return the borrowers age with the value of dateofbirth |
1221 |
|
1222 |
=cut |
1223 |
|
1224 |
#' |
1225 |
sub GetAge{ |
1226 |
my ( $date, $date_ref ) = @_; |
1227 |
|
1228 |
if ( not defined $date_ref ) { |
1229 |
$date_ref = sprintf( '%04d-%02d-%02d', Today() ); |
1230 |
} |
1231 |
|
1232 |
my ( $year1, $month1, $day1 ) = split /-/, $date; |
1233 |
my ( $year2, $month2, $day2 ) = split /-/, $date_ref; |
1234 |
|
1235 |
my $age = $year2 - $year1; |
1236 |
if ( $month1 . $day1 > $month2 . $day2 ) { |
1237 |
$age--; |
1238 |
} |
1239 |
|
1240 |
return $age; |
1241 |
} # sub get_age |
1242 |
|
1243 |
=head2 SetAge |
1244 |
|
1245 |
$borrower = C4::Members::SetAge($borrower, $datetimeduration); |
1246 |
$borrower = C4::Members::SetAge($borrower, '0015-12-10'); |
1247 |
$borrower = C4::Members::SetAge($borrower, $datetimeduration, $datetime_reference); |
1248 |
|
1249 |
eval { $borrower = C4::Members::SetAge($borrower, '015-1-10'); }; |
1250 |
if ($@) {print $@;} #Catch a bad ISO Date or kill your script! |
1251 |
|
1252 |
This function sets the borrower's dateofbirth to match the given age. |
1253 |
Optionally relative to the given $datetime_reference. |
1254 |
|
1255 |
@PARAM1 koha.borrowers-object |
1256 |
@PARAM2 DateTime::Duration-object as the desired age |
1257 |
OR a ISO 8601 Date. (To make the API more pleasant) |
1258 |
@PARAM3 DateTime-object as the relative date, defaults to now(). |
1259 |
RETURNS The given borrower reference @PARAM1. |
1260 |
DIES If there was an error with the ISO Date handling. |
1261 |
|
1262 |
=cut |
1263 |
|
1264 |
#' |
1265 |
sub SetAge{ |
1266 |
my ( $borrower, $datetimeduration, $datetime_ref ) = @_; |
1267 |
$datetime_ref = DateTime->now() unless $datetime_ref; |
1268 |
|
1269 |
if ($datetimeduration && ref $datetimeduration ne 'DateTime::Duration') { |
1270 |
if ($datetimeduration =~ /^(\d{4})-(\d{2})-(\d{2})/) { |
1271 |
$datetimeduration = DateTime::Duration->new(years => $1, months => $2, days => $3); |
1272 |
} |
1273 |
else { |
1274 |
die "C4::Members::SetAge($borrower, $datetimeduration), datetimeduration not a valid ISO 8601 Date!\n"; |
1275 |
} |
1276 |
} |
1277 |
|
1278 |
my $new_datetime_ref = $datetime_ref->clone(); |
1279 |
$new_datetime_ref->subtract_duration( $datetimeduration ); |
1280 |
|
1281 |
$borrower->{dateofbirth} = $new_datetime_ref->ymd(); |
1282 |
|
1283 |
return $borrower; |
1284 |
} # sub SetAge |
1285 |
|
1286 |
=head2 GetHideLostItemsPreference |
1214 |
=head2 GetHideLostItemsPreference |
1287 |
|
1215 |
|
1288 |
$hidelostitemspref = &GetHideLostItemsPreference($borrowernumber); |
1216 |
$hidelostitemspref = &GetHideLostItemsPreference($borrowernumber); |