Lines 7-13
use CGI;
Link Here
|
7 |
|
7 |
|
8 |
use C4::Auth; |
8 |
use C4::Auth; |
9 |
use C4::Output; |
9 |
use C4::Output; |
10 |
|
10 |
use DateTime; |
11 |
|
11 |
|
12 |
use C4::Calendar; |
12 |
use C4::Calendar; |
13 |
|
13 |
|
Lines 19-28
my $weekday = $input->param('showWeekday');
Link Here
|
19 |
my $day = $input->param('showDay'); |
19 |
my $day = $input->param('showDay'); |
20 |
my $month = $input->param('showMonth'); |
20 |
my $month = $input->param('showMonth'); |
21 |
my $year = $input->param('showYear'); |
21 |
my $year = $input->param('showYear'); |
|
|
22 |
my $day1; |
23 |
my $month1; |
24 |
my $year1; |
22 |
my $title = $input->param('showTitle'); |
25 |
my $title = $input->param('showTitle'); |
23 |
my $description = $input->param('showDescription'); |
26 |
my $description = $input->param('showDescription'); |
24 |
my $holidaytype = $input->param('showHolidayType'); |
27 |
my $holidaytype = $input->param('showHolidayType'); |
25 |
|
28 |
my $datecancelrange = $input->param('datecancelrange'); |
26 |
my $calendardate = sprintf("%04d-%02d-%02d", $year, $month, $day); |
29 |
my $calendardate = sprintf("%04d-%02d-%02d", $year, $month, $day); |
27 |
my $isodate = C4::Dates->new($calendardate, 'iso'); |
30 |
my $isodate = C4::Dates->new($calendardate, 'iso'); |
28 |
$calendardate = $isodate->output('syspref'); |
31 |
$calendardate = $isodate->output('syspref'); |
Lines 36-48
if ($description) {
Link Here
|
36 |
} else { |
39 |
} else { |
37 |
$description = ''; |
40 |
$description = ''; |
38 |
} |
41 |
} |
39 |
|
42 |
my @dateend = split(/[\/-]/, $datecancelrange); |
|
|
43 |
if (C4::Context->preference("dateformat") eq "metric") { |
44 |
$day1 = $dateend[0]; |
45 |
$month1 = $dateend[1]; |
46 |
$year1 = $dateend[2]; |
47 |
}elsif (C4::Context->preference("dateformat") eq "us") { |
48 |
$month1 = $dateend[0]; |
49 |
$day1 = $dateend[1]; |
50 |
$year1 = $dateend[2]; |
51 |
} else { |
52 |
$year1 = $dateend[0]; |
53 |
$month1 = $dateend[1]; |
54 |
$day1 = $dateend[2]; |
55 |
} |
40 |
if ($input->param('showOperation') eq 'exception') { |
56 |
if ($input->param('showOperation') eq 'exception') { |
41 |
$calendar->insert_exception_holiday(day => $day, |
57 |
$calendar->insert_exception_holiday(day => $day, |
42 |
month => $month, |
58 |
month => $month, |
43 |
year => $year, |
59 |
year => $year, |
44 |
title => $title, |
60 |
title => $title, |
45 |
description => $description); |
61 |
description => $description); |
|
|
62 |
} elsif ($input->param('showOperation') eq 'exceptionrange' ) { |
63 |
#Make an array with holiday's days |
64 |
my $first_dt = DateTime->new(year => $year, month => $month, day => $day); |
65 |
my $end_dt = DateTime->new(year => $year1, month => $month1, day => $day1); |
66 |
my @holiday_list = (); |
67 |
|
68 |
for (my $dt = $first_dt->clone(); |
69 |
$dt <= $end_dt; |
70 |
$dt->add(days => 1) ) |
71 |
{ |
72 |
push @holiday_list, $dt->clone(); |
73 |
} |
74 |
|
75 |
foreach my $date (@holiday_list){ |
76 |
$calendar->insert_exception_holiday( |
77 |
day => $date->{local_c}->{day}, |
78 |
month => $date->{local_c}->{month}, |
79 |
year => $date->{local_c}->{year}, |
80 |
title => $title, |
81 |
description => $description |
82 |
); |
83 |
} |
46 |
} elsif ($input->param('showOperation') eq 'edit') { |
84 |
} elsif ($input->param('showOperation') eq 'edit') { |
47 |
if($holidaytype eq 'weekday') { |
85 |
if($holidaytype eq 'weekday') { |
48 |
$calendar->ModWeekdayholiday(weekday => $weekday, |
86 |
$calendar->ModWeekdayholiday(weekday => $weekday, |
Lines 71-75
if ($input->param('showOperation') eq 'exception') {
Link Here
|
71 |
day => $day, |
109 |
day => $day, |
72 |
month => $month, |
110 |
month => $month, |
73 |
year => $year); |
111 |
year => $year); |
|
|
112 |
}elsif ($input->param('showOperation') eq 'deleterange') { |
113 |
if ($year1 && $month1 && $day1){ |
114 |
#Make an array with holiday's days |
115 |
my $first_dt = DateTime->new(year => $year, month => $month, day => $day); |
116 |
my $end_dt = DateTime->new(year => $year1, month => $month1, day => $day1); |
117 |
my @holiday_list = (); |
118 |
for (my $dt = $first_dt->clone(); $dt <= $end_dt; $dt->add(days => 1) ){ |
119 |
push @holiday_list, $dt->clone(); |
120 |
} |
121 |
foreach my $date (@holiday_list){ |
122 |
$calendar->delete_holiday_range(weekday => $weekday, |
123 |
day => $date->{local_c}->{day}, |
124 |
month => $date->{local_c}->{month}, |
125 |
year => $date->{local_c}->{year}); |
126 |
} |
127 |
} |
128 |
}elsif ($input->param('showOperation') eq 'deleterangerepeat') { |
129 |
if ($year1 && $month1 && $day1){ |
130 |
#Make an array with holiday's days |
131 |
my $first_dt = DateTime->new(year => $year, month => $month, day => $day); |
132 |
my $end_dt = DateTime->new(year => $year1, month => $month1, day => $day1); |
133 |
my @holiday_list = (); |
134 |
for (my $dt = $first_dt->clone(); $dt <= $end_dt; $dt->add(days => 1) ){ |
135 |
push @holiday_list, $dt->clone(); |
136 |
} |
137 |
foreach my $date (@holiday_list){ |
138 |
$calendar->delete_holiday_range_repeatable(weekday => $weekday, |
139 |
day => $date->{local_c}->{day}, |
140 |
month => $date->{local_c}->{month}); |
141 |
} |
142 |
} |
143 |
}elsif ($input->param('showOperation') eq 'deleterangerepeatexcept') { |
144 |
if ($year1 && $month1 && $day1){ |
145 |
#Make an array with holiday's days |
146 |
my $first_dt = DateTime->new(year => $year, month => $month, day => $day); |
147 |
my $end_dt = DateTime->new(year => $year1, month => $month1, day => $day1); |
148 |
my @holiday_list = (); |
149 |
for (my $dt = $first_dt->clone(); $dt <= $end_dt; $dt->add(days => 1) ){ |
150 |
push @holiday_list, $dt->clone(); |
151 |
} |
152 |
foreach my $date (@holiday_list){ |
153 |
$calendar->delete_exception_holiday_range(weekday => $weekday, |
154 |
day => $date->{local_c}->{day}, |
155 |
month => $date->{local_c}->{month}); |
156 |
} |
157 |
} |
74 |
} |
158 |
} |
75 |
print $input->redirect("/cgi-bin/koha/tools/holidays.pl?branch=$branchcode&calendardate=$calendardate"); |
159 |
print $input->redirect("/cgi-bin/koha/tools/holidays.pl?branch=$branchcode&calendardate=$calendardate"); |