Lines 1241-1254
sub checkHighHolds {
Link Here
|
1241 |
my $issuedate = dt_from_string(); |
1241 |
my $issuedate = dt_from_string(); |
1242 |
|
1242 |
|
1243 |
my $itype = $item_object->effective_itemtype; |
1243 |
my $itype = $item_object->effective_itemtype; |
1244 |
my $useDaysMode_value = Koha::CirculationRules->get_useDaysMode_effective_value( |
1244 |
my $daysmode = Koha::CirculationRules->get_effective_daysmode( |
1245 |
{ |
1245 |
{ |
1246 |
categorycode => $borrower->{categorycode}, |
1246 |
categorycode => $borrower->{categorycode}, |
1247 |
itemtype => $itype, |
1247 |
itemtype => $itype, |
1248 |
branchcode => $branchcode, |
1248 |
branchcode => $branchcode, |
1249 |
} |
1249 |
} |
1250 |
); |
1250 |
); |
1251 |
my $calendar = Koha::Calendar->new( branchcode => $branchcode, days_mode => $useDaysMode_value ); |
1251 |
my $calendar = Koha::Calendar->new( branchcode => $branchcode, days_mode => $daysmode ); |
1252 |
|
1252 |
|
1253 |
my $orig_due = C4::Circulation::CalcDateDue( $issuedate, $itype, $branchcode, $borrower ); |
1253 |
my $orig_due = C4::Circulation::CalcDateDue( $issuedate, $itype, $branchcode, $borrower ); |
1254 |
|
1254 |
|
Lines 3583-3589
sub updateWrongTransfer {
Link Here
|
3583 |
$newdatedue = CalcDateDue($startdate,$itemtype,$branchcode,$borrower); |
3583 |
$newdatedue = CalcDateDue($startdate,$itemtype,$branchcode,$borrower); |
3584 |
|
3584 |
|
3585 |
this function calculates the due date given the start date and configured circulation rules, |
3585 |
this function calculates the due date given the start date and configured circulation rules, |
3586 |
checking against the holidays calendar as per the useDaysMode circulation rule. |
3586 |
checking against the holidays calendar as per the daysmode circulation rule. |
3587 |
C<$startdate> = DateTime object representing start date of loan period (assumed to be today) |
3587 |
C<$startdate> = DateTime object representing start date of loan period (assumed to be today) |
3588 |
C<$itemtype> = itemtype code of item in question |
3588 |
C<$itemtype> = itemtype code of item in question |
3589 |
C<$branch> = location whose calendar to use |
3589 |
C<$branch> = location whose calendar to use |
Lines 3617-3623
sub CalcDateDue {
Link Here
|
3617 |
} |
3617 |
} |
3618 |
|
3618 |
|
3619 |
|
3619 |
|
3620 |
my $useDaysMode_value = Koha::CirculationRules->get_useDaysMode_effective_value( |
3620 |
my $daysmode = Koha::CirculationRules->get_effective_daysmode( |
3621 |
{ |
3621 |
{ |
3622 |
categorycode => $borrower->{categorycode}, |
3622 |
categorycode => $borrower->{categorycode}, |
3623 |
itemtype => $itemtype, |
3623 |
itemtype => $itemtype, |
Lines 3626-3632
sub CalcDateDue {
Link Here
|
3626 |
); |
3626 |
); |
3627 |
|
3627 |
|
3628 |
# calculate the datedue as normal |
3628 |
# calculate the datedue as normal |
3629 |
if ( $useDaysMode_value eq 'Days' ) |
3629 |
if ( $daysmode eq 'Days' ) |
3630 |
{ # ignoring calendar |
3630 |
{ # ignoring calendar |
3631 |
if ( $loanlength->{lengthunit} eq 'hours' ) { |
3631 |
if ( $loanlength->{lengthunit} eq 'hours' ) { |
3632 |
$datedue->add( hours => $loanlength->{$length_key} ); |
3632 |
$datedue->add( hours => $loanlength->{$length_key} ); |
Lines 3643-3649
sub CalcDateDue {
Link Here
|
3643 |
else { # days |
3643 |
else { # days |
3644 |
$dur = DateTime::Duration->new( days => $loanlength->{$length_key}); |
3644 |
$dur = DateTime::Duration->new( days => $loanlength->{$length_key}); |
3645 |
} |
3645 |
} |
3646 |
my $calendar = Koha::Calendar->new( branchcode => $branch, days_mode => $useDaysMode_value ); |
3646 |
my $calendar = Koha::Calendar->new( branchcode => $branch, days_mode => $daysmode ); |
3647 |
$datedue = $calendar->addDate( $datedue, $dur, $loanlength->{lengthunit} ); |
3647 |
$datedue = $calendar->addDate( $datedue, $dur, $loanlength->{lengthunit} ); |
3648 |
if ($loanlength->{lengthunit} eq 'days') { |
3648 |
if ($loanlength->{lengthunit} eq 'days') { |
3649 |
$datedue->set_hour(23); |
3649 |
$datedue->set_hour(23); |
Lines 3681-3688
sub CalcDateDue {
Link Here
|
3681 |
$datedue = $expiry_dt->clone->set_time_zone( C4::Context->tz ); |
3681 |
$datedue = $expiry_dt->clone->set_time_zone( C4::Context->tz ); |
3682 |
} |
3682 |
} |
3683 |
} |
3683 |
} |
3684 |
if ( $useDaysMode_value ne 'Days' ) { |
3684 |
if ( $daysmode ne 'Days' ) { |
3685 |
my $calendar = Koha::Calendar->new( branchcode => $branch, days_mode => $useDaysMode_value ); |
3685 |
my $calendar = Koha::Calendar->new( branchcode => $branch, days_mode => $daysmode ); |
3686 |
if ( $calendar->is_holiday($datedue) ) { |
3686 |
if ( $calendar->is_holiday($datedue) ) { |
3687 |
# Don't return on a closed day |
3687 |
# Don't return on a closed day |
3688 |
$datedue = $calendar->prev_open_days( $datedue, 1 ); |
3688 |
$datedue = $calendar->prev_open_days( $datedue, 1 ); |