@@ -, +, @@
- serials/acqui-search-result.pl
- serials/checkexpiration.pl
- serials/routing-preview.pl
- serials/routing.pl
- serials/serial-issues.pl
- serials/serials-collection.pl
- serials/serials-edit.pl
- serials/showpredictionpattern.pl
- serials/subscription-add.pl
- serials/subscription-detail.pl
- serials/subscription-history.pl
- serials/subscription-renew.pl
- Go to Home > Serials
- Add, edit serials and routing lists with focus on date entry and display
- Verify that information for serials on item detail pages look fine in OPAC
and staff client as well
- Try to find regressions
---
serials/acqui-search-result.pl | 6 +++---
serials/checkexpiration.pl | 18 +++++++++++------
serials/routing-preview.pl | 1 -
serials/routing.pl | 1 -
serials/serial-issues.pl | 1 -
serials/serials-collection.pl | 20 ++++++++++---------
serials/serials-edit.pl | 15 +++++++-------
serials/showpredictionpattern.pl | 16 +++++++--------
serials/subscription-add.pl | 41 ++++++++++++++++++++++++++++----------
serials/subscription-detail.pl | 5 +++--
serials/subscription-history.pl | 13 ++++++++----
serials/subscription-renew.pl | 15 +++++++-------
12 files changed, 93 insertions(+), 59 deletions(-)
--- a/serials/acqui-search-result.pl
+++ a/serials/acqui-search-result.pl
@@ -47,7 +47,7 @@ use C4::Biblio;
use C4::Output;
use CGI qw ( -utf8 );
use C4::Acquisition qw( SearchOrders );
-use C4::Dates qw/format_date/;
+use Koha::DateUtils;
use Koha::Acquisition::Bookseller;
@@ -79,8 +79,8 @@ for my $s (@suppliers) {
basketno => $ord->{'basketno'},
total => $ord->{'count(*)'},
authorisedby => $ord->{'authorisedby'},
- creationdate => format_date($ord->{'creationdate'}),
- closedate => format_date($ord->{'closedate'}),
+ creationdate => eval { output_pref( { dt => dt_from_string( $ord->{'creationdate'} ), dateonly => 1 }); } ,
+ closedate => eval { output_pref( { dt => dt_from_string( $ord->{'closedate'} ), dateonly => 1 }); } ,
};
}
push @{$loop_suppliers}, {
--- a/serials/checkexpiration.pl
+++ a/serials/checkexpiration.pl
@@ -50,8 +50,8 @@ use C4::Serials; # GetExpirationDate
use C4::Branch;
use C4::Output;
use C4::Context;
-use C4::Dates qw/format_date format_date_in_iso/;
use Date::Calc qw/Today Date_to_Days/;
+use Koha::DateUtils;
my $query = new CGI;
@@ -69,7 +69,9 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user (
my $title = $query->param('title');
my $issn = $query->param('issn');
my $branch = $query->param('branch');
-my $date = format_date_in_iso($query->param('date'));
+my $date = '';
+$date = eval { output_pref( { dt => dt_from_string( $query->param('date') ), dateonly => 1, dateformat => 'iso' }); }
+ if ( $query->param('date') );
if ($date) {
my @subscriptions = SearchSubscriptions({ title => $title, issn => $issn, orderby => 'title' });
@@ -78,8 +80,12 @@ if ($date) {
foreach my $subscription ( @subscriptions ) {
my $subscriptionid = $subscription->{'subscriptionid'};
my $expirationdate = GetExpirationDate($subscriptionid);
+ $expirationdate = eval { output_pref( { dt => dt_from_string( $expirationdate ), dateonly => 1, dateformat => 'iso' }); }
+ if ( $expirationdate );
+
+ next unless ( $expirationdate );
+
$subscription->{expirationdate} = $expirationdate;
- next if $expirationdate !~ /\d{4}-\d{2}-\d{2}/; # next if not in ISO format.
next if $subscription->{closed};
if ( !C4::Context->preference("IndependentBranches")
or C4::Context->IsSuperLibrarian()
@@ -90,9 +96,9 @@ if ($date) {
}
next if $subscription->{cannotedit};
if ( Date_to_Days(split "-",$expirationdate) < Date_to_Days(split "-",$date) &&
- Date_to_Days(split "-",$expirationdate) > Date_to_Days(&Today) &&
( !$branch || ($subscription->{'branchcode'} eq $branch) ) ) {
- $subscription->{expirationdate}=format_date($subscription->{expirationdate});
+ $subscription->{expirationdate} =
+ eval { output_pref( { dt => dt_from_string( $subscription->{expirationdate} ), dateonly => 1 }); };
push @subscriptions_loop,$subscription;
}
}
@@ -101,7 +107,7 @@ if ($date) {
title => $title,
issn => $issn,
numsubscription => scalar @subscriptions_loop,
- date => format_date($date),
+ date => output_pref( { dt => dt_from_string( $date ), dateonly => 1 }) ,
subscriptions_loop => \@subscriptions_loop,
"BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
);
--- a/serials/routing-preview.pl
+++ a/serials/routing-preview.pl
@@ -23,7 +23,6 @@ use warnings;
use CGI qw ( -utf8 );
use C4::Koha;
use C4::Auth;
-use C4::Dates;
use C4::Output;
use C4::Acquisition;
use C4::Reserves;
--- a/serials/routing.pl
+++ a/serials/routing.pl
@@ -30,7 +30,6 @@ use warnings;
use CGI qw ( -utf8 );
use C4::Koha;
use C4::Auth;
-use C4::Dates;
use C4::Output;
use C4::Acquisition;
use C4::Output;
--- a/serials/serial-issues.pl
+++ a/serials/serial-issues.pl
@@ -46,7 +46,6 @@ use warnings;
use CGI qw ( -utf8 );
use C4::Auth;
use C4::Koha;
-use C4::Dates;
use C4::Serials;
use C4::Output;
use C4::Context;
--- a/serials/serials-collection.pl
+++ a/serials/serials-collection.pl
@@ -24,11 +24,12 @@ use warnings;
use CGI qw ( -utf8 );
use C4::Auth;
use C4::Koha;
-use C4::Dates qw/format_date/;
use C4::Serials;
use C4::Letters;
use C4::Output;
use C4::Context;
+use Koha::DateUtils;
+
use List::MoreUtils qw/uniq/;
@@ -115,14 +116,15 @@ if (@subscriptionid){
$subs->{missinglist} =~ s/\n/\
/g;
$subs->{recievedlist} =~ s/\n/\
/g;
##these are display information
- $subs->{startdate} = format_date( $subs->{startdate} );
- $subs->{histstartdate} = format_date( $subs->{histstartdate} );
- if ( !defined $subs->{enddate} || $subs->{enddate} eq '0000-00-00' ) {
- $subs->{enddate} = '';
- }
- else {
- $subs->{enddate} = format_date( $subs->{enddate} );
- }
+ $subs->{startdate} = eval { dt_from_string( $subs->{startdate} ) } if ( $subs->{startdate} );
+ $subs->{startdate} = output_pref( { dt => $subs->{startdate}, dateonly => 1 } ) if ($subs->{startdate} );
+
+ $subs->{histstartdate} = eval { dt_from_string( $subs->{histstartdate} ) } if ( $subs->{histstartdate} );
+ $subs->{histdate} = output_pref( { dt => $subs->{histdate}, dateonly => 1 } ) if ($subs->{histdate} );
+
+ $subs->{enddate} = eval { dt_from_string( $subs->{enddate} ) } if ( $subs->{enddate} );
+ $subs->{enddate} = output_pref( { dt => $subs->{enddate}, dateonly => 1 } ) if ($subs->{enddate} );
+
$subs->{'abouttoexpire'}=abouttoexpire($subs->{'subscriptionid'});
$subs->{'subscriptionexpired'}=HasSubscriptionExpired($subs->{'subscriptionid'});
$subs->{'subscriptionid'} = $subscriptionid; # FIXME - why was this lost ?
--- a/serials/serials-edit.pl
+++ a/serials/serials-edit.pl
@@ -66,7 +66,6 @@ use warnings;
use CGI qw ( -utf8 );
use Encode qw( decode is_utf8 );
use C4::Auth;
-use C4::Dates qw/format_date format_date_in_iso/;
use C4::Biblio;
use C4::Items;
use C4::Koha;
@@ -74,6 +73,8 @@ use C4::Output;
use C4::Context;
use C4::Serials;
use C4::Search qw/enabled_staff_search_views/;
+use Koha::DateUtils;
+
use List::MoreUtils qw/uniq/;
my $query = CGI->new();
@@ -127,7 +128,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
my @serialdatalist;
my %processedserialid;
-my $today = C4::Dates->new();
+my $today = dt_from_string;
foreach my $serialid (@serialids) {
#filtering serialid for duplication
@@ -143,10 +144,10 @@ foreach my $serialid (@serialids) {
$serinfo->{$d} = q{};
}
else {
- $serinfo->{$d} = format_date( $serinfo->{$d} );
+ $serinfo->{$d} = eval { output_pref( { dt => dt_from_string( $serinfo ), dateonly => 1 } ); };
}
}
- $serinfo->{arriveddate}=$today->output('syspref');
+ $serinfo->{arriveddate}=$today;
$serinfo->{'editdisable'} = (
(
@@ -187,7 +188,7 @@ foreach my $subscriptionid (@subscriptionids) {
$cell->{'itemid'} = 'NNEW';
$cell->{'serialid'} = 'NEW';
$cell->{'issuesatonce'} = 1;
- $cell->{arriveddate}=$today->output('syspref');
+ $cell->{arriveddate}=$today;
push @newserialloop, $cell;
push @subscriptionloop,
@@ -214,10 +215,10 @@ if ( $op and $op eq 'serialchangestatus' ) {
my ($plan_date, $pub_date);
if (defined $planneddates[$i] && $planneddates[$i] ne 'XXX') {
- $plan_date = format_date_in_iso( $planneddates[$i] );
+ $plan_date = eval { output_pref( { dt => dt_from_string( $planneddates[$i] ), dateonly => 1, dateformat => 'iso' } ); };
}
if (defined $publisheddates[$i] && $publisheddates[$i] ne 'XXX') {
- $pub_date = format_date_in_iso( $publisheddates[$i] );
+ $pub_date = eval { output_pref( { dt => dt_from_string( $publisheddates[$i] ), dateonly => 1, dateformat => 'iso' } ); };
}
if ( $serialids[$i] && $serialids[$i] eq 'NEW' ) {
--- a/serials/showpredictionpattern.pl
+++ a/serials/showpredictionpattern.pl
@@ -36,6 +36,7 @@ use C4::Auth;
use C4::Output;
use C4::Serials;
use C4::Serials::Frequency;
+use Koha::DateUtils;
my $input = new CGI;
my ($template, $loggedinuser, $cookie, $flags) = get_template_and_user( {
@@ -76,19 +77,18 @@ my %pattern = (
every3 => $input->param('every3') // '',
);
-if(!defined $firstacquidate || $firstacquidate eq ''){
- my ($year, $month, $day) = Today();
- $firstacquidate = sprintf "%04d-%02d-%02d", $year, $month, $day;
-} else {
- $firstacquidate = C4::Dates->new($firstacquidate)->output('iso');
-}
+$firstacquidate = eval { output_pref( { dt => dt_from_string( $firstacquidate ), dateonly => 1, dateformat => 'iso' } ); }
+ if ( $firstacquidate );
+
+$firstacquidate = eval { output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); }
+ unless ( $firstacquidate );
if($enddate){
- $enddate = C4::Dates->new($enddate)->output('iso');
+ $enddate = eval { output_pref( { dt => dt_from_string( $enddate ), dateonly => 1, dateformat => 'iso' } ); };
}
if($nextacquidate) {
- $nextacquidate = C4::Dates->new($nextacquidate)->output('iso');
+ $nextacquidate = eval { output_pref( { dt => dt_from_string( $nextacquidate ), dateonly => 1, dateformat => 'iso' } ); };
} else {
$nextacquidate = $firstacquidate;
}
--- a/serials/subscription-add.pl
+++ a/serials/subscription-add.pl
@@ -23,7 +23,6 @@ use Date::Calc qw(Today Day_of_Year Week_of_Year Add_Delta_Days Add_Delta_YM);
use C4::Koha;
use C4::Biblio;
use C4::Auth;
-use C4::Dates qw/format_date format_date_in_iso/;
use C4::Acquisition;
use C4::Output;
use C4::Context;
@@ -33,6 +32,7 @@ use C4::Serials::Frequency;
use C4::Serials::Numberpattern;
use C4::Letters;
use Koha::AdditionalField;
+use Koha::DateUtils;
use Carp;
#use Smart::Comments;
@@ -322,9 +322,18 @@ sub redirect_add_subscription {
my $opacdisplaycount = $query->param('opacdisplaycount');
my $location = $query->param('location');
my $skip_serialseq = $query->param('skip_serialseq');
- my $startdate = format_date_in_iso( $query->param('startdate') );
- my $enddate = format_date_in_iso( $query->param('enddate') );
- my $firstacquidate = format_date_in_iso($query->param('firstacquidate'));
+
+ my $startdate = $query->param('startdate');
+ $startdate = eval { dt_from_string( $startdate ); } if ( $startdate );
+ $startdate = output_pref( { dt => $startdate, dateonly => 1, dateformat => 'iso' } ) if ( $startdate );
+
+ my $enddate = $query->param('enddate');
+ $enddate = eval { dt_from_string( $enddate ); } if ( $enddate );
+ $enddate = output_pref( { dt => $enddate, dateonly => 1, dateformat => 'iso' } ) if ( $enddate );
+ my $firstacquidate = $query->param('firstacquidate');
+ $firstacquidate = eval { dt_from_string( $firstacquidate ); } if ( $firstacquidate );
+ $firstacquidate = output_pref( { dt => $enddate, dateonly => 1, dateformat => 'iso' } ) if ( $firstacquidate );
+
if(!defined $enddate || $enddate eq '') {
if($subtype eq "issues") {
$enddate = _guess_enddate($firstacquidate, $periodicity, $numberlength, $weeklength, $monthlength);
@@ -361,12 +370,24 @@ sub redirect_mod_subscription {
my $aqbooksellerid = $query->param('aqbooksellerid');
my $biblionumber = $query->param('biblionumber');
my $aqbudgetid = $query->param('aqbudgetid');
- my $startdate = format_date_in_iso($query->param('startdate'));
- my $firstacquidate = format_date_in_iso( $query->param('firstacquidate') );
- my $nextacquidate = $query->param('nextacquidate') ?
- format_date_in_iso($query->param('nextacquidate')):
- $firstacquidate;
- my $enddate = format_date_in_iso($query->param('enddate'));
+
+ my $startdate = $query->param('startdate');
+ $startdate = eval { dt_from_string( $startdate ); } if ( $startdate );
+ $startdate = output_pref( { dt => $startdate, dateonly => 1, dateformat => 'iso' } ) if ( $startdate );
+
+ my $enddate = $query->param('enddate');
+ $enddate = eval { dt_from_string( $enddate ); } if ( $enddate );
+ $enddate = output_pref( { dt => $enddate, dateonly => 1, dateformat => 'iso' } ) if ( $enddate );
+
+ my $firstacquidate = $query->param('firstacquidate');
+ $firstacquidate = eval { dt_from_string( $firstacquidate ); } if ( $firstacquidate );
+ $firstacquidate = output_pref( { dt => $firstacquidate, dateonly => 1, dateformat => 'iso' } ) if ( $firstacquidate );
+
+ my $nextacquidate = $query->param('nextacquidate');
+ $nextacquidate = eval { dt_from_string( $nextacquidate ); } if ( $nextacquidate );
+ $nextacquidate = output_pref( { dt => $nextacquidate, dateonly => 1, dateformat => 'iso' } ) if ( $nextacquidate );
+ $nextacquidate = $firstacquidate unless $nextacquidate;
+
my $periodicity = $query->param('frequency');
my $subtype = $query->param('subtype');
--- a/serials/subscription-detail.pl
+++ a/serials/subscription-detail.pl
@@ -21,11 +21,11 @@ use C4::Acquisition;
use C4::Auth;
use C4::Budgets;
use C4::Koha;
-use C4::Dates qw/format_date/;
use C4::Serials;
use C4::Output;
use C4::Context;
use C4::Search qw/enabled_staff_search_views/;
+use Koha::DateUtils;
use Koha::Acquisition::Bookseller;
@@ -100,7 +100,8 @@ my $hasRouting = check_routing($subscriptionid);
# COMMENT hdl : IMHO, we should think about passing more and more data hash to template->param rather than duplicating code a new coding Guideline ?
for my $date ( qw(startdate enddate firstacquidate histstartdate histenddate) ) {
- $$subs{$date} = format_date($$subs{$date}) if $date && $$subs{$date};
+ $$subs{$date} = eval { output_pref( { dt => dt_from_string( $$subs{$date} ), dateonly => 1 }); }
+ if $date && $$subs{$date};
}
$subs->{location} = GetKohaAuthorisedValueLib("LOC",$subs->{location});
$subs->{abouttoexpire} = abouttoexpire($subs->{subscriptionid});
--- a/serials/subscription-history.pl
+++ a/serials/subscription-history.pl
@@ -34,8 +34,8 @@ use C4::Auth;
use C4::Output;
use C4::Biblio;
-use C4::Dates qw(format_date_in_iso);
use C4::Serials;
+use Koha::DateUtils;
my $input = new CGI;
my ($template, $loggedinuser, $cookie, $flags) = get_template_and_user( {
@@ -63,9 +63,14 @@ if($op && $op eq 'mod') {
my $opacnote = $input->param('opacnote');
my $librariannote = $input->param('librariannote');
- ModSubscriptionHistory( $subscriptionid, format_date_in_iso($histstartdate),
- format_date_in_iso($histenddate), $receivedlist, $missinglist, $opacnote,
- $librariannote );
+ $histstartdate = eval { output_pref( { dt => $histstartdate, dateonly => 1, dateformat => 'iso' } ); }
+ if ( $histstartdate );
+
+ $histenddate = eval { output_pref( { dt => $histenddate, dateonly => 1, dateformat => 'iso' } ); }
+ if ( $histenddate );
+
+ ModSubscriptionHistory( $subscriptionid, $histstartdate, $histenddate, $receivedlist,
+ $missinglist, $opacnote, $librariannote );
print $input->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
exit;
--- a/serials/subscription-renew.pl
+++ a/serials/subscription-renew.pl
@@ -50,11 +50,11 @@ use CGI qw ( -utf8 );
use Carp;
use C4::Koha;
use C4::Auth;
-use C4::Dates qw/format_date/;
use C4::Context;
use C4::Auth;
use C4::Output;
use C4::Serials;
+use Koha::DateUtils;
my $query = new CGI;
my $dbh = C4::Context->dbh;
@@ -74,9 +74,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
}
);
if ( $op eq "renew" ) {
+ my $renewstartdate = eval { output_pref( { dt => dt_from_string( $query->param('startdate') ), dateonly => 1, dateformat => 'iso' } ); };
ReNewSubscription(
- $subscriptionid, $loggedinuser,
- C4::Dates->new($query->param('startdate'))->output('iso'), $query->param('numberlength'),
+ $subscriptionid, $loggedinuser,
+ $renewstartdate, $query->param('numberlength'),
$query->param('weeklength'), $query->param('monthlength'),
$query->param('note')
);
@@ -88,11 +89,11 @@ if ($subscription->{'cannotedit'}){
print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
}
+my $newstartdate = eval { output_pref( { dt => dt_from_string( $subscription->{enddate} ), dateonly => 1 } ); };
+$newstartdate = output_pref( { dt => dt_from_string, dateonly => 1 } ) unless ( $newstartdate );
+
$template->param(
- startdate => format_date(
- $subscription->{enddate}
- || POSIX::strftime( "%Y-%m-%d", localtime )
- ),
+ startdate => $newstartdate,
numberlength => $subscription->{numberlength},
weeklength => $subscription->{weeklength},
monthlength => $subscription->{monthlength},
--