From 8f7ed605bb64dec52d5dc2fa9d3674463042ee03 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Wed, 17 Apr 2013 09:33:55 -0400
Subject: [PATCH] Bug 9533 - batch item modification should ignore defaults

This patch makes the pre-population of the fields for the batch
item editor with the default values from the default framework
optional and off by default.

Test Plan:
1) Apply patch
2) Add default values for cost and replacement cost to the
   default framework.
3) Browse to Tools / Batch item modification
4) Choose a file, or entire some barcodes in the text area
5) Ensure that the 'Populate fields with default values from default
   framework' is *not* checked
6) Click 'Continue'
7) Observe that the fields for cost and replacement cost are blank
8) Click the 'back' button on your browser
9) Check the checkbox to enable the default value
10) Click 'Continue'
11) Observe that the fields for cost and replacement cost now contain
    the default values you assigned them in the default MARC framework
---
 .../prog/en/modules/tools/batchMod.tt              |   10 ++++++++++
 tools/batchMod.pl                                  |    7 +++----
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod.tt
index ed57366..f0e2cc4 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod.tt
@@ -43,11 +43,21 @@
                                 </ol>
                             </fieldset>
                             <input type="hidden" name="op" value="show" />
+
+                            <fieldset class="rows">
+                                <legend>Use default values</legend>
+                                <p>
+                                    <input type="checkbox" name="use_default_values" id="use_default_values" />
+                                    <span style="font-weight:bold;">Populate fields with default values from default framework</span>
+                                </p>
+                            </fieldset>
+
                             [% IF ( del ) %]<input type="hidden" name="del" value="1" />[% END %]
                             <fieldset class="action">
                                 <input type="submit" value="Continue" class="button" />
 				<a class="cancel" href="/cgi-bin/koha/tools/tools-home.pl">Cancel</a>
                             </fieldset>
+
                         </form>
                     </div>
 		    </div>
diff --git a/tools/batchMod.pl b/tools/batchMod.pl
index e416d44..2a76c92 100755
--- a/tools/batchMod.pl
+++ b/tools/batchMod.pl
@@ -47,7 +47,7 @@ my $del_records  = $input->param('del_records');
 my $completedJobID = $input->param('completedJobID');
 my $runinbackground = $input->param('runinbackground');
 my $src          = $input->param('src');
-
+my $use_default_values = $input->param('use_default_values');
 
 my $template_name;
 my $template_flag;
@@ -78,8 +78,7 @@ my $itemrecord;
 my $nextop="";
 my @errors; # store errors found while checking data BEFORE saving item.
 my $items_display_hashref;
-my $frameworkcode="";
-my $tagslib = &GetMarcStructure(1,$frameworkcode);
+my $tagslib = &GetMarcStructure(1);
 
 my $deleted_items = 0;     # Number of deleted items
 my $deleted_records = 0;   # Number of deleted records ( with no items attached )
@@ -310,7 +309,7 @@ foreach my $tag (sort keys %{$tagslib}) {
 	my ($x,$value);
 	$value =~ s/"/&quot;/g;
 	unless ($value) {
-	    $value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
+	    $value = $tagslib->{$tag}->{$subfield}->{defaultvalue} if $use_default_values;
 	    # 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;
-- 
1.7.2.5