updating INSTALL and INSTALL.debian
[koha_fer] / circ / circulation.pl
index fd66189..0492330 100755 (executable)
@@ -27,7 +27,7 @@ use CGI;
 use C4::Output;
 use C4::Print;
 use C4::Auth qw/:DEFAULT get_session/;
-use C4::Date;
+use C4::Dates qw/format_date/;
 use C4::Branch; # GetBranches
 use C4::Koha;   # GetPrinter
 use C4::Circulation;
@@ -111,6 +111,10 @@ $printer = C4::Context->userenv->{'branchprinter'};
         }
 
 my $barcode        = $query->param('barcode') || '';
+
+# strip whitespace
+$barcode =~ s/\s*//g;
+
 my $year           = $query->param('year');
 my $month          = $query->param('month');
 my $day            = $query->param('day');
@@ -120,6 +124,7 @@ my $issueconfirmed = $query->param('issueconfirmed');
 my $cancelreserve  = $query->param('cancelreserve');
 my $organisation   = $query->param('organisations');
 my $print          = $query->param('print');
+my $newexpiry = $query->param('dateexpiry');
 
 #set up cookie.....
 # my $branchcookie;
@@ -131,17 +136,18 @@ my $print          = $query->param('print');
 #
 
 my ($datedue,$invalidduedate);
-if($duedatespec) {
-       $datedue=  C4::Dates->new($duedatespec );
+if ($duedatespec) {
+       $datedue =  C4::Dates->new($duedatespec);
        $invalidduedate=1 unless $datedue;
 }
+
 #if (defined($year)) {
 #        $duedatespec = "$year-$month-$day";
 #} else {
 #        ($year, $month, $day) = ($duedatespec) ? split /-/, $duedatespec : (0,0,0);
 #}
 
-my @datearr = localtime( time() );
+my @datearr = localtime();
 
 # FIXME - Could just use POSIX::strftime("%Y%m%d", localtime);
 my $todaysdate =
@@ -196,7 +202,6 @@ if ($findborrower) {
 # get the borrower information.....
 my $borrower;
 my @lines;
-warn $borrowernumber;
 if ($borrowernumber) {
     $borrower = GetMemberDetails( $borrowernumber, 0 );
     my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrowernumber );
@@ -211,27 +216,28 @@ if ($borrowernumber) {
     my ( $renew_year, $renew_month, $renew_day ) =
       Add_Delta_YM( $enrol_year, $enrol_month, $enrol_day,
         0 , $borrower->{'enrolmentperiod'}) if ($enrol_year*$enrol_month*$enrol_day>0);
-    # if the expiry date is before today
+    # if the expiry date is before today ie they have expired
     if ( $warning_year*$warning_month*$warning_day==0 
       || Date_to_Days( $today_year, $today_month, $today_day ) 
          > Date_to_Days( $warning_year, $warning_month, $warning_day ) )
     {
-
-        #borrowercard expired or nearly expired, warn the librarian
+        #borrowercard expired, no issues
         $template->param(
-            flagged       => "1",
-            warndeparture => format_date($borrower->{dateexpiry}),
+                       flagged => "1",
+            noissues       => "1",
+            expired => format_date($borrower->{dateexpiry}),
             renewaldate   => format_date("$renew_year-$renew_month-$renew_day")
         );
     }
     # check for NotifyBorrowerDeparture
-        if ($warning_year*$warning_month*$warning_day==0 
-      || (C4::Context->preference('NotifyBorrowerDeparture') &&
-            Date_to_Days(Add_Delta_Days($warning_year,$warning_month,$warning_day,- C4::Context->preference('NotifyBorrowerDeparture'))) <
-            Date_to_Days( $today_year, $today_month, $today_day )) ) 
-        {
-            $template->param("warndeparture" => format_date($borrower->{dateexpiry}));
-        }
+       elsif ( C4::Context->preference('NotifyBorrowerDeparture') &&
+               Date_to_Days(Add_Delta_Days($warning_year,$warning_month,$warning_day,- C4::Context->preference('NotifyBorrowerDeparture'))) <
+               Date_to_Days( $today_year, $today_month, $today_day ) ) 
+       {
+               # borrower card soon to expire warn librarian
+               $template->param("warndeparture" => format_date($borrower->{dateexpiry}),
+                       flagged       => "1",);
+       }
     $template->param(
         overduecount => $od,
         issuecount   => $issue,
@@ -275,10 +281,8 @@ if ($barcode) {
             $noquestion = 0;
         }
         $template->param(
-                        itemhomebranch => $getmessageiteminfo->{'homebranch'} ,        
-            day   => $day,
-            month => $month,
-            year  => $year
+                        itemhomebranch => $getmessageiteminfo->{'homebranch'} ,                     
+                        duedatespec => $duedatespec,
         );
         if ( $noerror && ( $noquestion || $issueconfirmed ) ) {
             AddIssue( $borrower, $barcode, $datedue );
@@ -439,11 +443,22 @@ if ($borrower) {
             push @previousissues, $it;
         }
     }
-    @todaysissues   = sort { $b->{'timestamp'} <=> $a->{'timestamp'} } @todaysissues;
-    @previousissues = sort { $b->{'date_due' } <=> $a->{'date_due' } } @previousissues;
+       if (C4::Context->preference("todaysIssuesDefaultSortOrder") eq 'asc'){
+               @todaysissues   = sort { $a->{'timestamp'} cmp $b->{'timestamp'} } @todaysissues;
+       }
+       else {
+               @todaysissues   = sort { $b->{'timestamp'} cmp $a->{'timestamp'} } @todaysissues;
+       }
+       if (C4::Context->preference("previousIssuesDefaultSortOrder") eq 'asc'){
+               @previousissues = sort { $a->{'date_due' } cmp $b->{'date_due' } } @previousissues;
+       }
+       else {
+               @previousissues = sort { $b->{'date_due' } cmp $a->{'date_due' } } @previousissues;
+       }
     my $i = 1;
        foreach my $book (@todaysissues) {
         $book->{'togglecolor'} = (++$i % 2) ? 0 : 1 ;
+               warn $book->{'timestamp'};
     }
     $i = 1;
        foreach my $book (@previousissues) {
@@ -494,9 +509,9 @@ my $CGIselectborrower;
 if ($borrowerslist) {
     foreach (
         sort {
-                $a->{'surname'}
-              . $a->{'firstname'} cmp $b->{'surname'}
-              . $b->{'firstname'}
+                lc $a->{'surname'}
+              . lc $a->{'firstname'} cmp lc $b->{'surname'}
+              . lc $b->{'firstname'}
         } @$borrowerslist
       )
     {
@@ -620,6 +635,10 @@ if ( C4::Context->preference("memberofinstitution") ) {
 
 $amountold = $temp[1];
 
+my $borrowercategory = GetBorrowercategory( $borrower->{'categorycode'} );
+my $category_type = $borrowercategory->{'category_type'};
+( $template->param( adultborrower => 1 ) ) if ( $category_type eq 'A' );
+
 $template->param(
     issued_itemtypes_count_loop => $issued_itemtypes_loop,
     findborrower                => $findborrower,
@@ -630,6 +649,7 @@ $template->param(
     printername                 => $printer,
     firstname                   => $borrower->{'firstname'},
     surname                     => $borrower->{'surname'},
+       dateexpiry => format_date($newexpiry),
     expiry                      =>
       $borrower->{'dateexpiry'},    #format_date($borrower->{'dateexpiry'}),
     categorycode      => $borrower->{'categorycode'},
@@ -651,6 +671,8 @@ $template->param(
     inprocess         => $inprocess,
     memberofinstution => $member_of_institution,
     CGIorganisations  => $CGIorganisations,
+       circview => 1,
+       
 );
 
 # set return date if stickyduedate
@@ -665,8 +687,8 @@ if ($stickyduedate) {
 #}
 
 $template->param(
-               SpecifyDueDate     => C4::Context->preference("SpecifyDueDate"),
-               CircAutocompl => C4::Context->preference("CircAutocompl") ,
-               DHTMLformat   => C4::Dates->DHTMLcalendar(),
+    SpecifyDueDate           => C4::Context->preference("SpecifyDueDate"),
+    CircAutocompl            => C4::Context->preference("CircAutocompl") ,
+    DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
 );
 output_html_with_http_headers $query, $cookie, $template->output;