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

(-)a/C4/Calendar.pm (-2 / +6 lines)
Lines 688-694 sub delete_exception_holiday_range { Link Here
688
688
689
=head2 isHoliday
689
=head2 isHoliday
690
690
691
    $isHoliday = isHoliday($day, $month $year);
691
    $isHoliday = isHoliday($day, $month $year, $is_range_holiday_creation);
692
692
693
C<$day> Is the day to check whether if is a holiday or not.
693
C<$day> Is the day to check whether if is a holiday or not.
694
694
Lines 696-705 C<$month> Is the month to check whether if is a holiday or not. Link Here
696
696
697
C<$year> Is the year to check whether if is a holiday or not.
697
C<$year> Is the year to check whether if is a holiday or not.
698
698
699
C<$is_range_holiday_creation> When set to 1, skips checks for existing holidays, ensuring the range includes all applicable holidays
700
699
=cut
701
=cut
700
702
701
sub isHoliday {
703
sub isHoliday {
702
    my ( $self, $day, $month, $year ) = @_;
704
    my ( $self, $day, $month, $year, $is_range_holiday_creation ) = @_;
705
706
    return 0 if $is_range_holiday_creation;
703
707
704
    # FIXME - date strings are stored in non-padded metric format. should change to iso.
708
    # FIXME - date strings are stored in non-padded metric format. should change to iso.
705
    $month = $month + 0;
709
    $month = $month + 0;
(-)a/misc/cronjobs/staticfines.pl (-1 / +1 lines)
Lines 181-187 for ( my $i = 0 ; $i < scalar(@$data) ; $i++ ) { Link Here
181
        $calendars{$branchcode} = C4::Calendar->new( branchcode => $branchcode );
181
        $calendars{$branchcode} = C4::Calendar->new( branchcode => $branchcode );
182
    }
182
    }
183
    $calendar = $calendars{$branchcode};
183
    $calendar = $calendars{$branchcode};
184
    my $isHoliday = $calendar->isHoliday( $tday, $tmonth, $tyear );
184
    my $isHoliday = $calendar->isHoliday( $tday, $tmonth, $tyear, 0 );
185
185
186
    # Reassing datedue_days if -delay specified in commandline
186
    # Reassing datedue_days if -delay specified in commandline
187
    $bigdebug and warn "Using commandline supplied delay : $delay" if ($delay);
187
    $bigdebug and warn "Using commandline supplied delay : $delay" if ($delay);
(-)a/t/db_dependent/Holidays.t (-4 / +7 lines)
Lines 234-251 subtest 'copy_to_branch' => sub { Link Here
234
    my $calendar2  = C4::Calendar->new( branchcode => $branch2 );
234
    my $calendar2  = C4::Calendar->new( branchcode => $branch2 );
235
    my $exceptions = $calendar2->get_exception_holidays;
235
    my $exceptions = $calendar2->get_exception_holidays;
236
236
237
    is( $calendar2->isHoliday( $sunday->day, $sunday->month, $sunday->year ), 1, "Weekday holiday copied to branch 2" );
238
    is(
237
    is(
239
        $calendar2->isHoliday( $day_month->day, $day_month->month, $day_month->year ), 1,
238
        $calendar2->isHoliday( $sunday->day, $sunday->month, $sunday->year, 0 ), 1,
239
        "Weekday holiday copied to branch 2"
240
    );
241
    is(
242
        $calendar2->isHoliday( $day_month->day, $day_month->month, $day_month->year, 0 ), 1,
240
        "Day/month holiday copied to branch 2"
243
        "Day/month holiday copied to branch 2"
241
    );
244
    );
242
    is(
245
    is(
243
        $calendar2->isHoliday( $future_date->day, $future_date->month, $future_date->year ), 1,
246
        $calendar2->isHoliday( $future_date->day, $future_date->month, $future_date->year, 0 ), 1,
244
        "Single holiday copied to branch 2"
247
        "Single holiday copied to branch 2"
245
    );
248
    );
246
    is( ( grep { $_->{date} eq "9999-12-30" } values %$exceptions ), 1, "Exception holiday copied to branch 2" );
249
    is( ( grep { $_->{date} eq "9999-12-30" } values %$exceptions ), 1, "Exception holiday copied to branch 2" );
247
    is(
250
    is(
248
        $calendar2->isHoliday( $past_date->day, $past_date->month, $past_date->year ), 0,
251
        $calendar2->isHoliday( $past_date->day, $past_date->month, $past_date->year, 0 ), 0,
249
        "Don't copy past single holidays"
252
        "Don't copy past single holidays"
250
    );
253
    );
251
    is( ( grep { $_->{date} eq "2020-03-09" } values %$exceptions ), 0, "Don't copy past exception holidays " );
254
    is( ( grep { $_->{date} eq "2020-03-09" } values %$exceptions ), 0, "Don't copy past exception holidays " );
(-)a/tools/exceptionHolidays.pl (-4 / +4 lines)
Lines 93-99 sub edit_holiday { Link Here
93
        }
93
        }
94
    } elsif ( $showoperation eq 'cud-edit' ) {
94
    } elsif ( $showoperation eq 'cud-edit' ) {
95
        if ( $holidaytype eq 'weekday' ) {
95
        if ( $holidaytype eq 'weekday' ) {
96
            my $isHoliday = $calendar->isHoliday( $day, $month, $year );
96
            my $isHoliday = $calendar->isHoliday( $day, $month, $year, 0 );
97
            if ($isHoliday) {
97
            if ($isHoliday) {
98
                $calendar->ModWeekdayholiday(
98
                $calendar->ModWeekdayholiday(
99
                    weekday     => $weekday,
99
                    weekday     => $weekday,
Lines 108-114 sub edit_holiday { Link Here
108
                );
108
                );
109
            }
109
            }
110
        } elsif ( $holidaytype eq 'daymonth' ) {
110
        } elsif ( $holidaytype eq 'daymonth' ) {
111
            my $isHoliday = $calendar->isHoliday( $day, $month, $year );
111
            my $isHoliday = $calendar->isHoliday( $day, $month, $year, 0 );
112
            if ($isHoliday) {
112
            if ($isHoliday) {
113
                $calendar->ModDaymonthholiday(
113
                $calendar->ModDaymonthholiday(
114
                    day         => $day,
114
                    day         => $day,
Lines 125-131 sub edit_holiday { Link Here
125
                );
125
                );
126
            }
126
            }
127
        } elsif ( $holidaytype eq 'ymd' ) {
127
        } elsif ( $holidaytype eq 'ymd' ) {
128
            my $isHoliday = $calendar->isHoliday( $day, $month, $year );
128
            my $isHoliday = $calendar->isHoliday( $day, $month, $year, 0 );
129
            if ($isHoliday) {
129
            if ($isHoliday) {
130
                $calendar->ModSingleholiday(
130
                $calendar->ModSingleholiday(
131
                    day         => $day,
131
                    day         => $day,
Lines 144-150 sub edit_holiday { Link Here
144
                );
144
                );
145
            }
145
            }
146
        } elsif ( $holidaytype eq 'exception' ) {
146
        } elsif ( $holidaytype eq 'exception' ) {
147
            my $isHoliday = $calendar->isHoliday( $day, $month, $year );
147
            my $isHoliday = $calendar->isHoliday( $day, $month, $year, 0 );
148
            if ($isHoliday) {
148
            if ($isHoliday) {
149
                $calendar->ModExceptionholiday(
149
                $calendar->ModExceptionholiday(
150
                    day         => $day,
150
                    day         => $day,
(-)a/tools/newHolidays.pl (-6 / +5 lines)
Lines 89-95 sub add_holiday { Link Here
89
            # if not, we need it.
89
            # if not, we need it.
90
            $weekday = &Date::Calc::Day_of_Week( $year, $month, $day ) % 7 unless ($weekday);
90
            $weekday = &Date::Calc::Day_of_Week( $year, $month, $day ) % 7 unless ($weekday);
91
        }
91
        }
92
        unless ( $calendar->isHoliday( $day, $month, $year ) ) {
92
        unless ( $calendar->isHoliday( $day, $month, $year, 0 ) ) {
93
            $calendar->insert_week_day_holiday(
93
            $calendar->insert_week_day_holiday(
94
                weekday     => $weekday,
94
                weekday     => $weekday,
95
                title       => $title,
95
                title       => $title,
Lines 97-103 sub add_holiday { Link Here
97
            );
97
            );
98
        }
98
        }
99
    } elsif ( $newoperation eq 'repeatable' ) {
99
    } elsif ( $newoperation eq 'repeatable' ) {
100
        unless ( $calendar->isHoliday( $day, $month, $year ) ) {
100
        unless ( $calendar->isHoliday( $day, $month, $year, 0 ) ) {
101
            $calendar->insert_day_month_holiday(
101
            $calendar->insert_day_month_holiday(
102
                day         => $day,
102
                day         => $day,
103
                month       => $month,
103
                month       => $month,
Lines 106-112 sub add_holiday { Link Here
106
            );
106
            );
107
        }
107
        }
108
    } elsif ( $newoperation eq 'holiday' ) {
108
    } elsif ( $newoperation eq 'holiday' ) {
109
        unless ( $calendar->isHoliday( $day, $month, $year ) ) {
109
        unless ( $calendar->isHoliday( $day, $month, $year, 0 ) ) {
110
            $calendar->insert_single_holiday(
110
            $calendar->insert_single_holiday(
111
                day         => $day,
111
                day         => $day,
112
                month       => $month,
112
                month       => $month,
Lines 121-127 sub add_holiday { Link Here
121
            foreach my $date (@holiday_list) {
121
            foreach my $date (@holiday_list) {
122
                unless (
122
                unless (
123
                    $calendar->isHoliday(
123
                    $calendar->isHoliday(
124
                        $date->{local_c}->{day}, $date->{local_c}->{month}, $date->{local_c}->{year}
124
                        $date->{local_c}->{day}, $date->{local_c}->{month}, $date->{local_c}->{year}, 0
125
                    )
125
                    )
126
                    )
126
                    )
127
                {
127
                {
Lines 140-146 sub add_holiday { Link Here
140
            foreach my $date (@holiday_list) {
140
            foreach my $date (@holiday_list) {
141
                unless (
141
                unless (
142
                    $calendar->isHoliday(
142
                    $calendar->isHoliday(
143
                        $date->{local_c}->{day}, $date->{local_c}->{month}, $date->{local_c}->{year}
143
                        $date->{local_c}->{day}, $date->{local_c}->{month}, $date->{local_c}->{year}, 1
144
                    )
144
                    )
145
                    )
145
                    )
146
                {
146
                {
147
- 

Return to bug 38633