Bug 15408: Remove fund's timestamp when cloning a budget
authorBaptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Fri, 3 Feb 2017 15:22:36 +0000 (15:22 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 22 Aug 2018 12:51:52 +0000 (12:51 +0000)
To duplicate the budget, the function CloneBudgetHierarchy create a new budget
from the old without the parameter timestamp, so that the database generates a
new one.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Added unit tests to patch

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Modified to run properly the QA tests

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
C4/Budgets.pm
t/db_dependent/Budgets.t

index e0b7dc1..caacd7c 100644 (file)
@@ -1221,6 +1221,7 @@ sub CloneBudgetHierarchy {
         my $tidy_budget =
           { map { join( ' ', @columns ) =~ /$_/ ? ( $_ => $budget->{$_} ) : () }
               keys %$budget };
+        delete $tidy_budget->{timestamp};
         my $new_budget_id = AddBudget(
             {
                 %$tidy_budget,
index e28e20c..32e077d 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 use Modern::Perl;
-use Test::More tests => 145;
+use Test::More tests => 146;
 
 BEGIN {
     use_ok('C4::Budgets')
@@ -14,6 +14,7 @@ use Koha::Acquisition::Orders;
 use Koha::Patrons;
 
 use t::lib::TestBuilder;
+use Koha::DateUtils;
 
 use YAML;
 
@@ -488,6 +489,16 @@ my $budget_period_id_cloned = C4::Budgets::CloneBudgetPeriod(
 my $budget_period_cloned = C4::Budgets::GetBudgetPeriod($budget_period_id_cloned);
 is($budget_period_cloned->{budget_period_description}, 'Budget Period Cloned', 'Cloned budget\'s description is updated.');
 
+my $budget_cloned = C4::Budgets::GetBudgets({ budget_period_id => $budget_period_id_cloned });
+my $test =  $budget_cloned->[0]->{timestamp};
+my $budget_time = Koha::DateUtils::dt_from_string($test);
+my $local_time = Koha::DateUtils::dt_from_string();
+
+
+is(DateTime::compare($budget_time, $local_time), 0, "New budget got the right timestamp");
+
+
+
 my $budget_hierarchy        = GetBudgetHierarchy($budget_period_id);
 my $budget_hierarchy_cloned = GetBudgetHierarchy($budget_period_id_cloned);