From 1afd3bbdebacb78affbf0fa23558a9a6f4c6399b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20V=C3=A9ron?= <veron@veron.ch>
Date: Sun, 4 Oct 2015 20:11:26 +0200
Subject: [PATCH] Bug 14950 - Assign default value for YYYY, MM and DD
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[was Remove C4::Dates from tools/batchMod.pl]

This patch replace the YYYY, MM and DD if defined in the default values.

This patch also removes C4::Dates from tools/batchMod.pl

To test:

- In MARC bibliographic Default framework, define a default value
  for one of the in Tag 952 Subfield struture, e.g. for
  subfield x Non-public note. You can define it under
  'Advancde constraints'. Define the value similar to the following:
  Year:YYYY Month:MM Day:DD
- Got to Home > Tools > Batch item modification
- Enter one ore more barcodes you want to modify
- Check checkbox 'Populate fields with defautl values from defautl framework
- Click 'Continue'
- Verify on the follwing screen that the field in Edit form is populated
  as appropriate (in our example 'x - Non public note')
- Click 'Save'
- Verify that the items are updated as appropriate

Signed-off-by: Joonas Kylmälä <j.kylmala@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Amended commit message: This is a bug fix and can be backported. The
YYYY, MM and DD were not replaced correctly before this patch.
I got Year:2015-10-06 Month: Day:
now I correctly get Year: 2015 Month: 10 Day: 06
---
 tools/batchMod.pl | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/tools/batchMod.pl b/tools/batchMod.pl
index 5108419..a7c8d70 100755
--- a/tools/batchMod.pl
+++ b/tools/batchMod.pl
@@ -31,11 +31,11 @@ use C4::Koha; # XXX subfield_is_koha_internal_p
 use C4::Branch; # XXX subfield_is_koha_internal_p
 use C4::BackgroundJob;
 use C4::ClassSource;
-use C4::Dates;
 use C4::Debug;
 use C4::Members;
 use MARC::File::XML;
 use List::MoreUtils qw/uniq/;
+use Koha::DateUtils;
 
 my $input = new CGI;
 my $dbh = C4::Context->dbh;
@@ -76,7 +76,7 @@ my $restrictededition = $uid ? haspermission($uid,  {'tools' => 'items_batchmod_
 # In case user is a superlibrarian, edition is not restricted
 $restrictededition = 0 if ($restrictededition != 0 && C4::Context->IsSuperLibrarian());
 
-my $today_iso = C4::Dates->today('iso');
+my $today_iso = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
 $template->param(today_iso => $today_iso);
 $template->param(del       => $del);
 
@@ -334,10 +334,13 @@ foreach my $tag (sort keys %{$tagslib}) {
    if ( !$value && $use_default_values) {
 	    $value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
 	    # get today date & replace YYYY, MM, DD if provided in the default value
-	    my ( $year, $month, $day ) = split ',', $today_iso;     # FIXME: iso dates don't have commas!
-	    $value =~ s/YYYY/$year/g;
-	    $value =~ s/MM/$month/g;
-	    $value =~ s/DD/$day/g;
+            my $today = dt_from_string;
+            my $year  = $today->year;
+            my $month = $today->month;
+            my $day   = $today->day;
+            $value =~ s/YYYY/$year/g;
+            $value =~ s/MM/$month/g;
+            $value =~ s/DD/$day/g;
 	}
 	$subfield_data{visibility} = "display:none;" if (($tagslib->{$tag}->{$subfield}->{hidden} > 4) || ($tagslib->{$tag}->{$subfield}->{hidden} < -4));
     # testing branch value if IndependentBranches.
-- 
2.1.0