From 91aa09402d64bc0f6a4ea887205cdff28c2ae9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20V=C3=A9ron?= Date: Tue, 6 Oct 2015 23:51:43 +0200 Subject: [PATCH] Bug 14969 - Remove C4::Dates from serials/*.pl files Bug to remove C4::Dates from files: - 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 To test: - 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 Amended to make it apply ( serials/checkexpiration.pl ) 04.11.2015 / mv Signed-off-by: Mirko Tietgen --- 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(-) diff --git a/serials/acqui-search-result.pl b/serials/acqui-search-result.pl index 6e4d944..e8cc258 100755 --- a/serials/acqui-search-result.pl +++ b/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}, { diff --git a/serials/checkexpiration.pl b/serials/checkexpiration.pl index c926814..a27490d 100755 --- a/serials/checkexpiration.pl +++ b/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, ); diff --git a/serials/routing-preview.pl b/serials/routing-preview.pl index 13bca6c..bed5091 100755 --- a/serials/routing-preview.pl +++ b/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; diff --git a/serials/routing.pl b/serials/routing.pl index 8f9cb6b..32f42e5 100755 --- a/serials/routing.pl +++ b/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; diff --git a/serials/serial-issues.pl b/serials/serial-issues.pl index 12d7f90..c5bfbca 100755 --- a/serials/serial-issues.pl +++ b/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; diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl index aef4604..e545eb3 100755 --- a/serials/serials-collection.pl +++ b/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 ? diff --git a/serials/serials-edit.pl b/serials/serials-edit.pl index 9b6f5d0..23e784c 100755 --- a/serials/serials-edit.pl +++ b/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' ) { diff --git a/serials/showpredictionpattern.pl b/serials/showpredictionpattern.pl index 6945a36..0d8542b 100755 --- a/serials/showpredictionpattern.pl +++ b/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; } diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl index fedb7da..8795438 100755 --- a/serials/subscription-add.pl +++ b/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'); diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl index 45ce5b0..0927e39 100755 --- a/serials/subscription-detail.pl +++ b/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}); diff --git a/serials/subscription-history.pl b/serials/subscription-history.pl index 267afcb..2318397 100755 --- a/serials/subscription-history.pl +++ b/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; diff --git a/serials/subscription-renew.pl b/serials/subscription-renew.pl index 9f3b934..6ac3595 100755 --- a/serials/subscription-renew.pl +++ b/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}, -- 1.7.10.4