X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=tools%2FnewHolidays.pl;h=a161eaf1c87f151dade6d3ecefcd69f3988d0386;hb=d2ce727e260f6b45266a8147aee7654811a44fa1;hp=646276c4efc05ddd814e712004872ff21d9c49dd;hpb=ea1aa7a0d906d583375618e37be60e9f0d62d939;p=srvgit diff --git a/tools/newHolidays.pl b/tools/newHolidays.pl index 646276c4ef..a161eaf1c8 100755 --- a/tools/newHolidays.pl +++ b/tools/newHolidays.pl @@ -1,16 +1,34 @@ #!/usr/bin/perl +#FIXME: perltidy this file -use strict; -use warnings; +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY 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 Lic# along with Koha; if not, see . +# along with Koha; if not, see . -use CGI; + +use Modern::Perl; + +use CGI qw ( -utf8 ); use C4::Auth; use C4::Output; +use Koha::Caches; use C4::Calendar; use DateTime; +use Koha::DateUtils; my $input = new CGI; my $dbh = C4::Context->dbh(); @@ -21,33 +39,18 @@ our $weekday = $input->param('newWeekday'); our $day = $input->param('newDay'); our $month = $input->param('newMonth'); our $year = $input->param('newYear'); -my $day1; -my $month1; -my $year1; my $dateofrange = $input->param('dateofrange'); our $title = $input->param('newTitle'); our $description = $input->param('newDescription'); our $newoperation = $input->param('newOperation'); my $allbranches = $input->param('allBranches'); -my $calendardate = sprintf("%04d-%02d-%02d", $year, $month, $day); -my $isodate = C4::Dates->new($calendardate, 'iso'); -$calendardate = $isodate->output('syspref'); - -my @dateend = split(/[\/-]/, $dateofrange); -if (C4::Context->preference("dateformat") eq "metric") { - $day1 = $dateend[0]; - $month1 = $dateend[1]; - $year1 = $dateend[2]; -}elsif (C4::Context->preference("dateformat") eq "us") { - $month1 = $dateend[0]; - $day1 = $dateend[1]; - $year1 = $dateend[2]; -} else { - $year1 = $dateend[0]; - $month1 = $dateend[1]; - $day1 = $dateend[2]; -} + +my $first_dt = DateTime->new(year => $year, month => $month, day => $day); +my $end_dt = eval { dt_from_string( $dateofrange ); }; + +my $calendardate = output_pref( { dt => $first_dt, dateonly => 1, dateformat => 'iso' } ); + $title || ($title = ''); if ($description) { $description =~ s/\r/\\r/g; @@ -58,30 +61,27 @@ if ($description) { # We make an array with holiday's days our @holiday_list; -if ($year1 && $month1 && $day1){ - my $first_dt = DateTime->new(year => $year, month => $month, day => $day); - my $end_dt = DateTime->new(year => $year1, month => $month1, day => $day1); - - for (my $dt = $first_dt->clone(); - $dt <= $end_dt; - $dt->add(days => 1) ) - { - push @holiday_list, $dt->clone(); - } +if ($end_dt){ + for (my $dt = $first_dt->clone(); + $dt <= $end_dt; + $dt->add(days => 1) ) + { + push @holiday_list, $dt->clone(); + } } if($allbranches) { - my $branch; - my @branchcodes = split(/\|/, $input->param('branchCodes')); - foreach $branch (@branchcodes) { - add_holiday($newoperation, $branch, $weekday, $day, $month, $year, $title, $description); - } + my $libraries = Koha::Libraries->search; + while ( my $library = $libraries->next ) { + add_holiday($newoperation, $library->branchcode, $weekday, $day, $month, $year, $title, $description); + } } else { - add_holiday($newoperation, $branchcode, $weekday, $day, $month, $year, $title, $description); + add_holiday($newoperation, $branchcode, $weekday, $day, $month, $year, $title, $description); } print $input->redirect("/cgi-bin/koha/tools/holidays.pl?branch=$originalbranchcode&calendardate=$calendardate"); +#FIXME: move add_holiday() to a better place sub add_holiday { ($newoperation, $branchcode, $weekday, $day, $month, $year, $title, $description) = @_; my $calendar = C4::Calendar->new(branchcode => $branchcode); @@ -141,4 +141,7 @@ sub add_holiday { } } } + # we updated the single_holidays table, so wipe its cache + my $cache = Koha::Caches->get_instance(); + $cache->clear_from_cache( 'single_holidays') ; }