Bug 9218: fix intranet cart email for non english templates
[koha.git] / opac / opac-ics.pl
index ec03b70..d9d90a6 100755 (executable)
 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 # This script builds an ICalendar file (rfc 2445) for use in programs such as Ical
 
 use strict;
+use warnings;
+
 use CGI;
 use Data::ICal;
 use Data::ICal::Entry::Event;
-use Date::ICal;
+use DateTime;
+use DateTime::Format::ICal;
 use Date::Calc qw (Parse_Date);
+use DateTime;
+use DateTime::Event::ICal;
 
 use C4::Auth;
 use C4::Koha;
-use C4::Circulation::Circ2;
-use C4::Date;
+use C4::Circulation;
+use C4::Members;
+use C4::Dates;
 
 my $query = new CGI;
 my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
@@ -44,42 +50,41 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
 );
 
 # get borrower information ....
-my ( $borr, $flags ) = getpatroninformation( undef, $borrowernumber );
+my ( $borr ) =  GetMemberDetails( $borrowernumber );
 
 # Create Calendar
 my $calendar = Data::ICal->new();
 
 # get issued items ....
-my $issues = getissues($borr);
+my $issues = GetPendingIssues($borrowernumber);
 
-foreach my $key ( keys %$issues ) {
-    my $issue  = $issues->{$key};
+foreach my $issue ( @$issues ) {
     my $vevent = Data::ICal::Entry::Event->new();
     my ($year,$month,$day)=Parse_Date($issue->{'date_due'});
     ($year,$month,$day)=split /-|\/|\.|:/,$issue->{'date_due'} unless ($year && $month);
 #    Decode_Date_EU2($string))
-    my $datestart = Date::ICal->new( 
-       day => $day, 
-       month => $month, 
-       year => $year,
-       hour => 9,
-       min => 0,
-       sec => 0
-    )->ical;
-    my $dateend = Date::ICal->new( 
-       day => $day, 
-       month => $month, 
-       year => $year,
-       hour => 10,
-       min => 0,
-       sec => 0
-    )->ical;
+    my $datestart = DateTime->new(
+        day    => $day,
+        month  => $month,
+        year   => $year,
+        hour   => 9,
+        minute => 0,
+        second => 0
+    );
+    my $dateend = DateTime->new(
+        day    => $day,
+        month  => $month,
+        year   => $year,
+        hour   => 10,
+        minute => 0,
+        second => 0
+    );
     $vevent->add_properties(
         summary => "$issue->{'title'} Due",
         description =>
 "Your copy of $issue->{'title'} barcode $issue->{'barcode'} is due back at the library today",
-        dtstart => $datestart,
-       dtend => $dateend,
+        dtstart => DateTime::Format::ICal->format_datetime($datestart),
+        dtend   => DateTime::Format::ICal->format_datetime($dateend),
     );
     $calendar->add_entry($vevent);
 }