|
Lines 695-739
sub copy_to_branch {
Link Here
|
| 695 |
return 1; |
695 |
return 1; |
| 696 |
} |
696 |
} |
| 697 |
|
697 |
|
| 698 |
=head2 addDate |
|
|
| 699 |
|
| 700 |
my ($day, $month, $year) = $calendar->addDate($date, $offset) |
| 701 |
|
| 702 |
C<$startdate> is the starting date of the interval. |
| 703 |
|
| 704 |
C<$offset> Is the number of days that this function has to count from $date. |
| 705 |
|
| 706 |
=cut |
| 707 |
|
| 708 |
sub addDate { |
| 709 |
my ($self, $startdate, $offset) = @_; |
| 710 |
$startdate = eval { output_pref( { dt => $startdate, dateonly => 1, dateformat => 'iso' } ); }; |
| 711 |
my ( $year, $month, $day) = split( "-", $startdate ); |
| 712 |
my $daystep = 1; |
| 713 |
if ($offset < 0) { # In case $offset is negative |
| 714 |
# $offset = $offset*(-1); |
| 715 |
$daystep = -1; |
| 716 |
} |
| 717 |
my $daysMode = C4::Context->preference('useDaysMode'); |
| 718 |
if ($daysMode eq 'Datedue') { |
| 719 |
($year, $month, $day) = &Date::Calc::Add_Delta_Days($year, $month, $day, $offset ); |
| 720 |
while ($self->isHoliday($day, $month, $year)) { |
| 721 |
($year, $month, $day) = &Date::Calc::Add_Delta_Days($year, $month, $day, $daystep); |
| 722 |
} |
| 723 |
} elsif($daysMode eq 'Calendar') { |
| 724 |
while ($offset != 0) { |
| 725 |
($year, $month, $day) = &Date::Calc::Add_Delta_Days($year, $month, $day, $daystep); |
| 726 |
if (!($self->isHoliday($day, $month, $year))) { |
| 727 |
$offset = $offset - $daystep; |
| 728 |
} |
| 729 |
} |
| 730 |
} else { ## ($daysMode eq 'Days') |
| 731 |
($year, $month, $day) = &Date::Calc::Add_Delta_Days($year, $month, $day, $offset ); |
| 732 |
} |
| 733 |
my $date_ret = sprintf(ISO_DATE_FORMAT,$year,$month,$day); |
| 734 |
return($date_ret); |
| 735 |
} |
| 736 |
|
| 737 |
1; |
698 |
1; |
| 738 |
|
699 |
|
| 739 |
__END__ |
700 |
__END__ |
| 740 |
- |
|
|