Browse Source

Bug 24840: Replace DateTime->now with dt_from_string

We should use Koha::DateUtils instead of Date::Time directly

This patch simplay replaces calls to now() with a call to dt_from_string()
which does effectively the same thing.

Probably reading the code and verifying changes is sufficient but...

To test:
1 - confirm the files all compile
2 - confirm all tests pass
3 - confirm Koha still works

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
20.05.x
Nick Clemens 1 year ago
committed by Martin Renvoize
parent
commit
6ac037f817
Signed by: martin.renvoize GPG Key ID: 422B469130441A0F
  1. 20
      C4/Circulation.pm
  2. 2
      C4/Letters.pm
  3. 3
      C4/MarcModificationTemplates.pm
  4. 2
      Koha/Calendar.pm
  5. 3
      Koha/Checkout.pm
  6. 3
      Koha/Checkouts.pm
  7. 5
      Koha/EDI.pm
  8. 3
      Koha/Edifact/Order.pm
  9. 3
      Koha/Edifact/Transport.pm
  10. 3
      Koha/Patron/Password/Recovery.pm
  11. 4
      Koha/Sitemapper/Writer.pm
  12. 2
      circ/overdue.pl
  13. 6
      circ/returns.pl
  14. 2
      installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl
  15. 2
      installer/data/mysql/updatedatabase.pl
  16. 3
      members/summary-print.pl
  17. 2
      misc/cronjobs/fines.pl
  18. 4
      misc/cronjobs/overdue_notices.pl
  19. 2
      opac/opac-ics.pl
  20. 5
      t/Circulation/AgeRestrictionMarkers.t
  21. 5
      t/db_dependent/DecreaseLoanHighHolds.t
  22. 2
      t/db_dependent/Letters/TemplateToolkit.t
  23. 2
      t/db_dependent/OAI/Server.t
  24. 11
      t/db_dependent/Passwordrecovery.t
  25. 3
      t/db_dependent/Sitemapper.t

20
C4/Circulation.pm

@ -705,7 +705,7 @@ sub CanBookBeIssued {
if ($duedate && ref $duedate ne 'DateTime') {
$duedate = dt_from_string($duedate);
}
my $now = DateTime->now( time_zone => C4::Context->tz() );
my $now = dt_from_string();
unless ( $duedate ) {
my $issuedate = $now->clone();
@ -1236,7 +1236,7 @@ sub checkHighHolds {
}
}
my $issuedate = DateTime->now( time_zone => C4::Context->tz() );
my $issuedate = dt_from_string();
my $calendar = Koha::Calendar->new( branchcode => $branchcode );
@ -1315,7 +1315,7 @@ sub AddIssue {
# $issuedate defaults to today.
if ( !defined $issuedate ) {
$issuedate = DateTime->now( time_zone => C4::Context->tz() );
$issuedate = dt_from_string();
}
else {
if ( ref $issuedate ne 'DateTime' ) {
@ -1466,7 +1466,7 @@ sub AddIssue {
$item_object->holdingbranch(C4::Context->userenv->{'branch'});
$item_object->itemlost(0);
$item_object->onloan($datedue->ymd());
$item_object->datelastborrowed(DateTime->now( time_zone => C4::Context->tz() )->ymd()); # FIXME we should use dt_from_string here
$item_object->datelastborrowed( dt_from_string()->ymd() );
$item_object->store({log_action => 0});
ModDateLastSeen( $item_object->itemnumber );
@ -2805,7 +2805,7 @@ sub CanBookBeRenewed {
$soonestrenewal->truncate( to => 'day' );
}
if ( $soonestrenewal > DateTime->now( time_zone => C4::Context->tz() ) )
if ( $soonestrenewal > dt_from_string() )
{
return ( 0, "auto_too_soon" ) if $issue->auto_renew && $patron->autorenew_checkouts;
return ( 0, "too_soon" );
@ -2932,7 +2932,7 @@ sub AddRenewal {
my $itemnumber = shift or return;
my $branch = shift;
my $datedue = shift;
my $lastreneweddate = shift || DateTime->now(time_zone => C4::Context->tz);
my $lastreneweddate = shift || dt_from_string();
my $skipfinecalc = shift;
my $item_object = Koha::Items->find($itemnumber) or return;
@ -2972,7 +2972,7 @@ sub AddRenewal {
$datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ?
dt_from_string( $issue->date_due, 'sql' ) :
DateTime->now( time_zone => C4::Context->tz());
dt_from_string();
$datedue = CalcDateDue($datedue, $itemtype, $circ_library->branchcode, $patron_unblessed, 'is a renewal');
}
@ -3595,9 +3595,7 @@ sub CalcDateDue {
$datedue = $startdate->clone;
}
} else {
$datedue =
DateTime->now( time_zone => C4::Context->tz() )
->truncate( to => 'minute' );
$datedue = dt_from_string()->truncate( to => 'minute' );
}
@ -4081,7 +4079,7 @@ sub GetAgeRestriction {
}
#Get how many days the borrower has to reach the age restriction
my @Today = split /-/, DateTime->today->ymd();
my @Today = split /-/, dt_from_string()->ymd();
my $daysToAgeRestriction = Date_to_Days(@alloweddate) - Date_to_Days(@Today);
#Negative days means the borrower went past the age restriction age
return ($restriction_year, $daysToAgeRestriction);

2
C4/Letters.pm

@ -796,7 +796,7 @@ sub _parseletter {
}
if ($letter->{content} && $letter->{content} =~ /<<today>>/) {
my $todaysdate = output_pref( DateTime->now() );
my $todaysdate = output_pref( dt_from_string() );
$letter->{content} =~ s/<<today>>/$todaysdate/go;
}

3
C4/MarcModificationTemplates.pm

@ -24,6 +24,7 @@ use DateTime;
use C4::Context;
use Koha::SimpleMARC;
use Koha::MoreUtils;
use Koha::DateUtils;
use vars qw(@ISA @EXPORT);
@ -501,7 +502,7 @@ sub ModifyRecordWithTemplate {
warn( "C4::MarcModificationTemplates::ModifyRecordWithTemplate( $template_id, $record )" ) if DEBUG;
warn( "Unmodified Record:\n" . $record->as_formatted() ) if DEBUG >= 10;
my $current_date = DateTime->now()->ymd();
my $current_date = dt_from_string()->ymd();
my $branchcode = '';
$branchcode = C4::Context->userenv->{branch} if C4::Context->userenv;

2
Koha/Calendar.pm

@ -410,7 +410,7 @@ Koha::Calendar - Object containing a branches calendar
use Koha::Calendar
my $c = Koha::Calendar->new( branchcode => 'MAIN' );
my $dt = DateTime->now();
my $dt = dt_from_string();
# are we open
$open = $c->is_holiday($dt);

3
Koha/Checkout.pm

@ -54,7 +54,8 @@ will be the reference date.
sub is_overdue {
my ( $self, $dt ) = @_;
$dt ||= DateTime->now( time_zone => C4::Context->tz );
$dt ||= dt_from_string();
my $is_overdue =
DateTime->compare( dt_from_string( $self->date_due, 'sql' ), $dt ) == -1
? 1

3
Koha/Checkouts.pm

@ -24,6 +24,7 @@ use Carp;
use C4::Context;
use Koha::Checkout;
use Koha::Database;
use Koha::DateUtils;
use base qw(Koha::Objects);
@ -48,7 +49,7 @@ sub calculate_dropbox_date {
my $branchcode = $userenv->{branch} // q{};
my $calendar = Koha::Calendar->new( branchcode => $branchcode );
my $today = DateTime->now( time_zone => C4::Context->tz() );
my $today = dt_from_string();
my $dropbox_date = $calendar->addDate( $today, -1 );
return $dropbox_date;

5
Koha/EDI.pm

@ -27,6 +27,7 @@ use Business::ISBN;
use DateTime;
use C4::Context;
use Koha::Database;
use Koha::DateUtils;
use C4::Acquisition qw( NewBasket CloseBasket ModOrder);
use C4::Suggestions qw( ModSuggestion );
use C4::Biblio qw( AddBiblio TransformKohaToMarc GetMarcBiblio GetFrameworkCode GetMarcFromKohaField );
@ -174,7 +175,7 @@ sub process_ordrsp {
ordernumber => $ordernumber,
cancellationreason => $reason,
orderstatus => 'cancelled',
datecancellationprinted => DateTime->now()->ymd(),
datecancellationprinted => dt_from_string()->ymd(),
}
);
}
@ -624,7 +625,7 @@ sub quote_item {
# database definitions should set some of these defaults but dont
my $order_hash = {
biblionumber => $bib->{biblionumber},
entrydate => DateTime->now( time_zone => 'local' )->ymd(),
entrydate => dt_from_string()->ymd(),
basketno => $basketno,
listprice => $item->price,
quantity => $order_quantity,

3
Koha/Edifact/Order.pm

@ -26,6 +26,7 @@ use DateTime;
use Readonly;
use Business::ISBN;
use Koha::Database;
use Koha::DateUtils;
use C4::Budgets qw( GetBudget );
use Koha::Acquisition::Orders;
@ -51,7 +52,7 @@ sub new {
# convenient alias
$self->{basket} = $self->{orderlines}->[0]->basketno;
$self->{message_date} = DateTime->now( time_zone => 'local' );
$self->{message_date} = dt_from_string();
}
# validate that its worth proceeding

3
Koha/Edifact/Transport.pm

@ -29,6 +29,7 @@ use File::Slurp;
use File::Copy;
use File::Basename qw( fileparse );
use Koha::Database;
use Koha::DateUtils;
use Encode qw( from_to );
sub new {
@ -40,7 +41,7 @@ sub new {
account => $acct,
schema => $schema,
working_dir => C4::Context::temporary_directory, #temporary work directory
transfer_date => DateTime->now( time_zone => 'local' ),
transfer_date => dt_from_string(),
};
bless $self, $class;

3
Koha/Patron/Password/Recovery.pm

@ -21,6 +21,7 @@ use Modern::Perl;
use C4::Context;
use C4::Letters;
use Crypt::Eksblowfish::Bcrypt qw(en_base64);
use Koha::DateUtils;
use vars qw(@ISA @EXPORT);
@ -115,7 +116,7 @@ sub SendPasswordRecoveryEmail {
# insert into database
my $expirydate =
DateTime->now( time_zone => C4::Context->tz() )->add( days => 2 );
dt_from_string()->add( days => 2 );
if ($update) {
my $rs =
$schema->resultset('BorrowerPasswordRecovery')

4
Koha/Sitemapper/Writer.pm

@ -23,7 +23,7 @@ use Moo;
use Modern::Perl;
use XML::Writer;
use IO::File;
use DateTime;
use Koha::DateUtils;
my $MAX = 50000;
@ -106,7 +106,7 @@ sub end {
my $w = $self->_writer_create("sitemapindex.xml");
$w->startTag('sitemapindex', 'xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9');
my $now = DateTime->now()->ymd;
my $now = dt_from_string()->ymd;
for my $i ( 1..$self->count ) {
$w->startTag('sitemap');
$w->startTag('loc');

2
circ/overdue.pl

@ -214,7 +214,7 @@ if ($noreport) {
# FIX 2: ensure there are indexes for columns participating in the WHERE clauses, where feasible/reasonable
my $today_dt = DateTime->now(time_zone => C4::Context->tz);
my $today_dt = dt_from_string();
$today_dt->truncate(to => 'minute');
my $todaysdate = $today_dt->strftime('%Y-%m-%d %H:%M');

6
circ/returns.pl

@ -302,7 +302,7 @@ if ($barcode) {
AddReturn( $barcode, $userenv_branch, $exemptfine, $return_date );
if ($returned) {
my $time_now = DateTime->now( time_zone => C4::Context->tz )->truncate( to => 'minute');
my $time_now = dt_from_string()->truncate( to => 'minute');
my $date_due_dt = dt_from_string( $issue->date_due, 'sql' );
my $duedate = $date_due_dt->strftime('%Y-%m-%d %H:%M');
$returneditems{0} = $barcode;
@ -311,7 +311,7 @@ if ($barcode) {
$input{borrowernumber} = $borrower->{'borrowernumber'};
$input{duedate} = $duedate;
unless ( $dropboxmode ) {
$input{return_overdue} = 1 if (DateTime->compare($date_due_dt, DateTime->now()) == -1);
$input{return_overdue} = 1 if (DateTime->compare($date_due_dt, dt_from_string()) == -1);
} else {
$input{return_overdue} = 1 if (DateTime->compare($date_due_dt, $dropboxdate) == -1);
}
@ -569,7 +569,7 @@ foreach ( sort { $a <=> $b } keys %returneditems ) {
$ri{duedate} = output_pref($duedate);
my $patron = Koha::Patrons->find( $riborrowernumber{$_} );
unless ( $dropboxmode ) {
$ri{return_overdue} = 1 if (DateTime->compare($duedate, DateTime->now()) == -1);
$ri{return_overdue} = 1 if (DateTime->compare($duedate, dt_from_string()) == -1);
} else {
$ri{return_overdue} = 1 if (DateTime->compare($duedate, $dropboxdate) == -1);
}

2
installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl

@ -77,7 +77,7 @@ sub Bug_17135_fix {
my $control = C4::Context->preference('CircControl');
my $mode = C4::Context->preference('finesMode');
my $today = DateTime->now( time_zone => C4::Context->tz() );
my $today = dt_from_string();
my $dbh = C4::Context->dbh;
## fetch the unclosed FU fines linked to the issues by issue_id

2
installer/data/mysql/updatedatabase.pl

@ -16262,7 +16262,7 @@ $DBversion = '18.06.00.016';
if( CheckVersion( $DBversion ) ) {
my $dtf = Koha::Database->new->schema->storage->datetime_parser;
my $days = C4::Context->preference('MaxPickupDelay') || 7;
my $date = DateTime->now()->add( days => $days );
my $date = dt_from_string()->add( days => $days );
my $sql = q|UPDATE reserves SET expirationdate = ? WHERE expirationdate IS NULL AND waitingdate IS NOT NULL|;
$dbh->do( $sql, undef, $dtf->format_datetime($date) );
SetVersion( $DBversion );

3
members/summary-print.pl

@ -25,6 +25,7 @@ use C4::Members;
use C4::Circulation qw( GetIssuingCharges );
use C4::Reserves;
use C4::Items;
use Koha::DateUtils;
use Koha::Holds;
use Koha::ItemTypes;
use Koha::Patrons;
@ -109,7 +110,7 @@ sub build_reserve_data {
my $return = [];
my $today = DateTime->now( time_zone => C4::Context->tz );
my $today = dt_from_string();
$today->truncate( to => 'day' );
while ( my $reserve = $reserves->next() ) {

2
misc/cronjobs/fines.pl

@ -88,7 +88,7 @@ my $mode = C4::Context->preference('finesMode');
my $delim = "\t"; # ? C4::Context->preference('delimiter') || "\t";
my %is_holiday;
my $today = DateTime->now( time_zone => C4::Context->tz() );
my $today = dt_from_string();
my $filename;
if ($log or $output_dir) {
$filename = get_filename($output_dir);

4
misc/cronjobs/overdue_notices.pl

@ -417,7 +417,7 @@ if ( defined $htmlfilename ) {
if ( $htmlfilename eq '' ) {
$fh = *STDOUT;
} else {
my $today = DateTime->now(time_zone => C4::Context->tz );
my $today = dt_from_string();
open $fh, ">:encoding(UTF-8)",File::Spec->catdir ($htmlfilename,"notices-".$today->ymd().".html");
}
@ -438,7 +438,7 @@ elsif ( defined $text_filename ) {
if ( $text_filename eq '' ) {
$fh = *STDOUT;
} else {
my $today = DateTime->now(time_zone => C4::Context->tz );
my $today = dt_from_string();
open $fh, ">",File::Spec->catdir ($text_filename,"notices-".$today->ymd().".txt");
}
}

2
opac/opac-ics.pl

@ -55,7 +55,7 @@ my $pending_checkouts = $patron->pending_checkouts;
while ( my $c = $pending_checkouts->next ) {
my $issue = $c->unblessed_all_relateds;
my $vevent = Data::ICal::Entry::Event->new();
my $timestamp = DateTime->now(); # Defaults to UTC
my $timestamp = dt_from_string(undef,undef,"UTC"); #Get current time in UTC
# Send some values to the template to generate summary and description
$issue->{overdue} = $c->is_overdue;
$template->param(

5
t/Circulation/AgeRestrictionMarkers.t

@ -21,6 +21,7 @@
use Modern::Perl;
use DateTime;
use Koha::DateUtils;
use Test::More tests => 8;
use Test::Warn;
@ -39,7 +40,7 @@ is ( C4::Circulation::GetAgeRestriction('K16'), '16', 'K16 returns 16' );
subtest 'Patron tests - 15 years old' => sub {
plan tests => 5;
##Testing age restriction for a borrower.
my $now = DateTime->now();
my $now = dt_from_string();
my $borrower = { dateofbirth => $now->add( years => -15 )->strftime("%Y-%m-%d") };
TestPatron($borrower,0);
};
@ -56,7 +57,7 @@ subtest 'Patron tests - 15 years old (Time Zone shifts)' => sub {
Time::Fake->offset("+${offset}h");
##Testing age restriction for a borrower.
my $now = DateTime->now();
my $now = dt_from_string();
my $borrower = { dateofbirth => $now->add( years => -15 )->strftime("%Y-%m-%d") };
TestPatron($borrower,$offset);

5
t/db_dependent/DecreaseLoanHighHolds.t

@ -20,6 +20,7 @@ use DateTime;
use C4::Circulation;
use Koha::Database;
use Koha::DateUtils;
use Koha::Patrons;
use Koha::Biblio;
use Koha::Item;
@ -37,7 +38,7 @@ my $builder = t::lib::TestBuilder->new;
$schema->storage->txn_begin();
my $now_value = DateTime->now();
my $now_value = dt_from_string();
my $mocked_datetime = Test::MockModule->new('DateTime');
$mocked_datetime->mock( 'now', sub { return $now_value->clone; } );
@ -111,7 +112,7 @@ Koha::CirculationRules->set_rules(
my $orig_due = C4::Circulation::CalcDateDue(
DateTime->now(time_zone => C4::Context->tz()),
dt_from_string(),
$item->effective_itemtype,
$patron->branchcode,
$patron->unblessed

2
t/db_dependent/Letters/TemplateToolkit.t

@ -57,7 +57,7 @@ my $dbh = C4::Context->dbh;
$dbh->do(q|DELETE FROM letter|);
my $now_value = DateTime->now();
my $now_value = dt_from_string();
my $mocked_datetime = Test::MockModule->new('DateTime');
$mocked_datetime->mock( 'now', sub { return $now_value->clone; } );

2
t/db_dependent/OAI/Server.t

@ -72,7 +72,7 @@ $dbh->do('DELETE FROM oai_sets');
set_fixed_time(CORE::time());
my $base_datetime = DateTime->now();
my $base_datetime = dt_from_string();
my $date_added = $base_datetime->ymd . ' ' .$base_datetime->hms . 'Z';
my $date_to = substr($date_added, 0, 10) . 'T23:59:59Z';
my (@header, @marcxml, @oaidc);

11
t/db_dependent/Passwordrecovery.t

@ -21,6 +21,7 @@ use C4::Context;
use Mail::Sendmail;
use C4::Letters;
use Koha::Database;
use Koha::DateUtils;
use Koha::Patrons;
use t::lib::TestBuilder;
@ -112,21 +113,21 @@ $schema->resultset('BorrowerPasswordRecovery')->create(
{
borrowernumber => $borrowernumber1,
uuid => $uuid1,
valid_until => DateTime->now( time_zone => C4::Context->tz() )->add( days => 2 )->datetime()
valid_until => dt_from_string()->add( days => 2 )->datetime()
}
);
$schema->resultset('BorrowerPasswordRecovery')->create(
{
borrowernumber => $borrowernumber2,
uuid => $uuid2,
valid_until => DateTime->now( time_zone => C4::Context->tz() )->subtract( days => 2 )->datetime()
valid_until => dt_from_string()->subtract( days => 2 )->datetime()
}
);
$schema->resultset('BorrowerPasswordRecovery')->create(
{
borrowernumber => $borrowernumber3,
uuid => $uuid3,
valid_until => DateTime->now( time_zone => C4::Context->tz() )->subtract( days => 3 )->datetime()
valid_until => dt_from_string()->subtract( days => 3 )->datetime()
}
);
@ -164,7 +165,7 @@ $schema->resultset('BorrowerPasswordRecovery')->create(
{
borrowernumber => $borrowernumber2,
uuid => $uuid2,
valid_until => DateTime->now( time_zone => C4::Context->tz() )->subtract( days => 2 )->datetime()
valid_until => dt_from_string()->subtract( days => 2 )->datetime()
}
);
@ -179,7 +180,7 @@ $schema->resultset('BorrowerPasswordRecovery')->create(
{
borrowernumber => $borrowernumber3,
uuid => $uuid3,
valid_until => DateTime->now( time_zone => C4::Context->tz() )->subtract( days => 3 )->datetime()
valid_until => dt_from_string()->subtract( days => 3 )->datetime()
}
);

3
t/db_dependent/Sitemapper.t

@ -21,6 +21,7 @@ use Modern::Perl;
use File::Basename;
use File::Path;
use DateTime;
use Koha::DateUtils;
use Test::MockModule;
use Test::More tests => 16;
use Carp qw/croak carp/;
@ -31,7 +32,7 @@ BEGIN {
use_ok('Koha::Sitemapper::Writer');
}
my $now_value = DateTime->now();
my $now_value = dt_from_string();
my $mocked_datetime = Test::MockModule->new('DateTime');
$mocked_datetime->mock( 'now', sub { return $now_value->clone; } );

Loading…
Cancel
Save