View | Details | Raw Unified | Return to bug 30927
Collapse All | Expand All

(-)a/opac/opac-ics.pl (-3 / +17 lines)
Lines 61-72 while ( my $c = $pending_checkouts->next ) { Link Here
61
    # Catch the result of the template and split on newline
61
    # Catch the result of the template and split on newline
62
    my ($summary,$description) = split /\n/, $template->output;
62
    my ($summary,$description) = split /\n/, $template->output;
63
    my $datestart;
63
    my $datestart;
64
    my $datestart_local;
64
    if ($issue->{'overdue'} && $issue->{'overdue'} == 1) {
65
    if ($issue->{'overdue'} && $issue->{'overdue'} == 1) {
65
        # Not much use adding an event in the past for a book that is overdue
66
        # Not much use adding an event in the past for a book that is overdue
66
        # so we set datestart = now
67
        # so we set datestart = now
67
        $datestart = $timestamp;
68
        $datestart = $timestamp;
69
        $datestart_local = $datestart->clone();
68
    } else {
70
    } else {
69
        $datestart = dt_from_string($issue->{'date_due'});
71
        $datestart = dt_from_string($issue->{'date_due'});
72
        $datestart_local = $datestart->clone();
70
        $datestart->set_time_zone('UTC');
73
        $datestart->set_time_zone('UTC');
71
    }
74
    }
72
    # Create a UID that includes the issue number and the domain
75
    # Create a UID that includes the issue number and the domain
Lines 80-90 while ( my $c = $pending_checkouts->next ) { Link Here
80
    }
83
    }
81
    my $uid = 'issue-' . $issue->{'issue_id'} . '@' . $domain;
84
    my $uid = 'issue-' . $issue->{'issue_id'} . '@' . $domain;
82
    # Create the event
85
    # Create the event
86
87
    my ( $dtstart, $dtend );
88
    # Checkouts due at 23:59 are "all day events"
89
    if ( $datestart_local->hour eq '23' && $datestart_local->minute eq '59' ) {
90
        $dtstart = $datestart->ymd(q{});
91
        $dtend =  $datestart->clone()->add(days => 1)->ymd(q{}),
92
    }
93
    else { # Checkouts due any other time start at 00:00 and end at the due time
94
        $dtstart = DateTime::Format::ICal->format_datetime($datestart->clone()->truncate( to => "day"));
95
        $dtend = DateTime::Format::ICal->format_datetime($datestart);
96
    }
97
83
    $vevent->add_properties(
98
    $vevent->add_properties(
84
        summary     => $summary,
99
        summary     => $summary,
85
        description => $description,
100
        description => $description,
86
        dtstamp     => DateTime::Format::ICal->format_datetime($timestamp),
101
        dtstart     => $dtstart,
87
        dtstart     => DateTime::Format::ICal->format_datetime($datestart),
102
        dtend       => $datestart->clone()->add(days => 1)->ymd(q{}),
88
        uid         => $uid,
103
        uid         => $uid,
89
    );
104
    );
90
    # Add it to the calendar
105
    # Add it to the calendar
91
- 

Return to bug 30927