}
}
}
- if ( $item->{'wthdrawn'} && $item->{'wthdrawn'} == 1 )
+ if ( $item->{'wthdrawn'} && $item->{'wthdrawn'} > 0 )
{
$issuingimpossible{WTHDRAWN} = 1;
}
my $branch;
if ($circcontrol eq 'PickupLibrary') {
- $branch= C4::Context->userenv->{'branch'};
+ $branch= C4::Context->userenv->{'branch'} if C4::Context->userenv;
} elsif ($circcontrol eq 'PatronLibrary') {
$branch=$borrower->{branchcode};
} else {
my $dbh = C4::Context->dbh;
my $statement = <<END_SQL;
-SELECT issues.*, items.itype as itemtype, items.homebranch, TO_DAYS( date_due )-TO_DAYS( NOW() ) as days_until_due
+SELECT issues.*, items.itype as itemtype, items.homebranch, TO_DAYS( date_due )-TO_DAYS( NOW() ) as days_until_due, branches.branchemail
FROM issues
LEFT JOIN items USING (itemnumber)
+LEFT OUTER JOIN branches USING (branchcode)
WhERE returndate is NULL
AND ( TO_DAYS( NOW() )-TO_DAYS( date_due ) ) < ?
END_SQL
unless ($datedue) {
my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;
- my $itemtype = (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} ,
+ my $itemtype = (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'};
$datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ?
C4::Dates->new($issuedata->{date_due}, 'iso') :
if ( $charge > 0 ) {
my $accountno = getnextacctno( $borrowernumber );
my $item = GetBiblioFromItemNumber($itemnumber);
+ my $manager_id = 0;
+ $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
$sth = $dbh->prepare(
"INSERT INTO accountlines
- (date,
- borrowernumber, accountno, amount,
- description,
- accounttype, amountoutstanding, itemnumber
- )
- VALUES (now(),?,?,?,?,?,?,?)"
+ (date, borrowernumber, accountno, amount, manager_id,
+ description,accounttype, amountoutstanding, itemnumber)
+ VALUES (now(),?,?,?,?,?,?,?,?)"
);
- $sth->execute( $borrowernumber, $accountno, $charge,
+ $sth->execute( $borrowernumber, $accountno, $charge, $manager_id,
"Renewal of Rental Item $item->{'title'} $item->{'barcode'}",
'Rent', $charge, $itemnumber );
$sth->finish;
my ( $itemnumber, $borrowernumber, $charge ) = @_;
my $dbh = C4::Context->dbh;
my $nextaccntno = getnextacctno( $borrowernumber );
+ my $manager_id = 0;
+ $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
my $query ="
INSERT INTO accountlines
(borrowernumber, itemnumber, accountno,
date, amount, description, accounttype,
- amountoutstanding)
- VALUES (?, ?, ?,now(), ?, 'Rental', 'Rent',?)
+ amountoutstanding, manager_id)
+ VALUES (?, ?, ?,now(), ?, 'Rental', 'Rent',?,?)
";
my $sth = $dbh->prepare($query);
- $sth->execute( $borrowernumber, $itemnumber, $nextaccntno, $charge, $charge );
+ $sth->execute( $borrowernumber, $itemnumber, $nextaccntno, $charge, $charge, $manager_id );
$sth->finish;
}
my ($type, $item, $borrower, $branch) =
($opts->{type}, $opts->{item}, $opts->{borrower}, $opts->{branch});
my %message_name = (
- CHECKIN => 'Item Check-in',
- CHECKOUT => 'Item Checkout',
+ CHECKIN => 'Item_Check_in',
+ CHECKOUT => 'Item_Checkout',
);
my $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences({
borrowernumber => $borrower->{borrowernumber},
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
my ($hardduedate, $hardduedatecompare) = GetHardDueDate($borrower->{'categorycode'},$itemtype, $branch);
- if ( $hardduedate && $hardduedate->output('iso') ne '0000-00-00') {
+ if ( $hardduedate && $hardduedate->output('iso') && $hardduedate->output('iso') ne '0000-00-00') {
# if the calculated due date is after the 'before' Hard Due Date (ceiling), override
if ( $datedue->output( 'iso' ) gt $hardduedate->output( 'iso' ) && $hardduedatecompare == -1) {
$datedue = $hardduedate;
$datedue = C4::Dates->new( $borrower->{dateexpiry}, 'iso' );
}
-
return $datedue;
}