#adding message if holdingbranch is non equal a userenv branch to return the document to homebranch
#we check, if we don't have reserv or transfert for this document, if not, return it to homebranch .
- if ($doreturn and ($branch ne $hbr) and not $messages->{'WrongTransfer'} and ($validTransfert ne 1) ){
+ if (($doreturn or $messages->{'NotIssued'}) and !$resfound and ($branch ne $hbr) and not $messages->{'WrongTransfer'}){
if ( C4::Context->preference("AutomaticItemReturn" ) or
(C4::Context->preference("UseBranchTransferLimits") and
! IsBranchTransferAllowed($branch, $hbr, $item->{C4::Context->preference("BranchTransferLimitsType")} )
C<$itemtype> = itemtype code of item in question
C<$branch> = location whose calendar to use
C<$borrower> = Borrower object
+
=cut
sub CalcDateDue {
my $datedue;
my $loanlength = GetLoanLength($borrower->{'categorycode'},$itemtype, $branch);
- if(C4::Context->preference('useDaysMode') eq 'Days') { # ignoring calendar
- my $timedue = time + ($loanlength) * 86400;
- #FIXME - assumes now even though we take a startdate
- my @datearr = localtime($timedue);
- $datedue = C4::Dates->new( sprintf("%04d-%02d-%02d", 1900 + $datearr[5], $datearr[4] + 1, $datearr[3]), 'iso');
+ # if globalDueDate ON the datedue is set to that date
+ if ( C4::Context->preference('globalDueDate')
+ && ( C4::Context->preference('globalDueDate') =~ C4::Dates->regexp('syspref') ) ) {
+ $datedue = C4::Dates->new( C4::Context->preference('globalDueDate') );
} else {
- my $calendar = C4::Calendar->new( branchcode => $branch );
- $datedue = $calendar->addDate($startdate, $loanlength);
+ # otherwise, calculate the datedue as normal
+ if(C4::Context->preference('useDaysMode') eq 'Days') { # ignoring calendar
+ my $timedue = time + ($loanlength) * 86400;
+ #FIXME - assumes now even though we take a startdate
+ my @datearr = localtime($timedue);
+ $datedue = C4::Dates->new( sprintf("%04d-%02d-%02d", 1900 + $datearr[5], $datearr[4] + 1, $datearr[3]), 'iso');
+ } else {
+ my $calendar = C4::Calendar->new( branchcode => $branch );
+ $datedue = $calendar->addDate($startdate, $loanlength);
+ }
}
# if Hard Due Dates are used, retreive them and apply as necessary
$datedue = C4::Dates->new( $borrower->{dateexpiry}, 'iso' );
}
-
return $datedue;
}