Bug 21443: Add ability to exclude holidays when calculating rentals fees by time period
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Marti Fuerst <mfuerst@hmcpl.org> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
38ac98ffbc
commit
c5b6b9aa65
|
|
@ -112,7 +112,7 @@ sub accumulate_rentalcharge {
|
|||
my $calendar = Koha::Calendar->new( branchcode => $self->library->id );
|
||||
|
||||
if ( $units eq 'hours' ) {
|
||||
if ( C4::Context->preference('finesCalendar') eq 'noFinesWhenClosed' ) {
|
||||
if ( $itemtype->rentalcharge_hourly_calendar && C4::Context->preference('finesCalendar') eq 'noFinesWhenClosed' ) {
|
||||
$duration = $calendar->hours_between(
|
||||
$self->from_date->truncate( to => 'minute' ),
|
||||
$self->to_date->truncate( to => 'minute' )
|
||||
|
|
@ -124,7 +124,7 @@ sub accumulate_rentalcharge {
|
|||
}
|
||||
}
|
||||
else {
|
||||
if ( C4::Context->preference('finesCalendar') eq 'noFinesWhenClosed' ) {
|
||||
if ( $itemtype->rentalcharge_daily_calendar && C4::Context->preference('finesCalendar') eq 'noFinesWhenClosed' ) {
|
||||
$duration =
|
||||
$calendar->days_between( $self->from_date, $self->to_date );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ if ( $op eq 'add_form' ) {
|
|||
my $checkinmsgtype = $input->param('checkinmsgtype');
|
||||
my $hideinopac = $input->param('hideinopac') // 0;
|
||||
my $searchcategory = $input->param('searchcategory');
|
||||
my $rentalcharge_daily_calendar = $input->param('rentalcharge_daily_calendar') // 0;
|
||||
my $rentalcharge_hourly_calendar = $input->param('rentalcharge_hourly_calendar') // 0;
|
||||
|
||||
if ( $itemtype and $is_a_modif ) { # it's a modification
|
||||
$itemtype->description($description);
|
||||
|
|
@ -121,6 +123,8 @@ if ( $op eq 'add_form' ) {
|
|||
$itemtype->sip_media_type($sip_media_type);
|
||||
$itemtype->hideinopac($hideinopac);
|
||||
$itemtype->searchcategory($searchcategory);
|
||||
$itemtype->rentalcharge_daily_calendar($rentalcharge_daily_calendar);
|
||||
$itemtype->rentalcharge_hourly_calendar($rentalcharge_hourly_calendar);
|
||||
|
||||
eval {
|
||||
$itemtype->store;
|
||||
|
|
@ -150,6 +154,8 @@ if ( $op eq 'add_form' ) {
|
|||
sip_media_type => $sip_media_type,
|
||||
hideinopac => $hideinopac,
|
||||
searchcategory => $searchcategory,
|
||||
rentalcharge_daily_calendar => $rentalcharge_daily_calendar,
|
||||
rentalcharge_hourly_calendar => $rentalcharge_hourly_calendar,
|
||||
}
|
||||
);
|
||||
eval {
|
||||
|
|
|
|||
|
|
@ -241,11 +241,29 @@ Item types administration
|
|||
<input type="text" id="rentalcharge_daily" name="rentalcharge_daily" size="10" value="[% itemtype.rentalcharge_daily | $Price on_editing => 1 %]" />
|
||||
<span class="hint">This fee is charged at checkout/renewal time for each day between the checkout/renewal date and due date for loans specified in days.</span>
|
||||
</li>
|
||||
<li>
|
||||
<label for="rentalcharge_daily_calendar">Daily rentals use calendar: </label>
|
||||
[% IF itemtype.rentalcharge_daily_calendar %]
|
||||
<input type="checkbox" id="rentalcharge_daily_calendar" name="rentalcharge_daily_calendar" checked="checked" value="1" />
|
||||
[% ELSE %]
|
||||
<input type="checkbox" id="rentalcharge_daily_calendar" name="rentalcharge_daily_calendar" value="1" />
|
||||
[% END %]
|
||||
<span class="hint">If checked, daily charge will be calculated based on the value of the system preference <i>finesCalendar</i>. If not checked, the fee will be calculated based on the number of days until due, directly.</span>
|
||||
</li>
|
||||
<li>
|
||||
<label for="rentalcharge_hourly">Hourly rental charge: </label>
|
||||
<input type="text" id="rentalcharge_hourly" name="rentalcharge_hourly" size="10" value="[% itemtype.rentalcharge_hourly | $Price on_editing => 1 %]" />
|
||||
<span class="hint">This fee is charged at checkout/renewal time for each hour between the checkout/renewal date and due date for loans specified in hours.</span>
|
||||
</li>
|
||||
<li>
|
||||
<label for="rentalcharge_hourly_calendar">Hourly rentals use calendar: </label>
|
||||
[% IF itemtype.rentalcharge_hourly_calendar %]
|
||||
<input type="checkbox" id="rentalcharge_hourly_calendar" name="rentalcharge_hourly_calendar" checked="checked" value="1" />
|
||||
[% ELSE %]
|
||||
<input type="checkbox" id="rentalcharge_hourly_calendar" name="rentalcharge_hourly_calendar" value="1" />
|
||||
[% END %]
|
||||
<span class="hint">If checked, hourly charge will be calculated based on the value of the system preference <i>finesCalendar</i>. If not checked, the fee will be calculated based on the number of hours until due, directly.</span>
|
||||
</li>
|
||||
<li>
|
||||
<label for="defaultreplacecost">Default replacement cost: </label>
|
||||
<input type="text" id="defaultreplacecost" name="defaultreplacecost" size="10" value="[% itemtype.defaultreplacecost | html %]" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue