Bug 8832: Update the gist pref and hide the tax rate value if not needed
authorJonathan Druart <jonathan.druart@biblibre.com>
Mon, 15 Oct 2012 13:49:30 +0000 (15:49 +0200)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Fri, 9 Nov 2012 04:12:09 +0000 (23:12 -0500)
The gist system preference will be updated with the existing values and
with the supplier's gstrate values.
The "Tax rate" part becomes hidden if the syspref is not filled.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passed-QA-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt

index 7ab48ee..51905ee 100755 (executable)
@@ -6020,6 +6020,27 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
    SetVersion ($DBversion);
 }
 
+$DBversion = "3.09.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    my $gst_booksellers = $dbh->selectcol_arrayref("SELECT DISTINCT(gstrate) FROM aqbooksellers");
+    my $gist_syspref = C4::Context->preference("gist");
+    # remove the undef values and construct and array with the syspref and the supplier values
+    my @gstrates = map { defined $_ ? $_ : () } @$gst_booksellers;
+    push @gstrates, split ('\|', $gist_syspref);
+    # we want to compare integer (or float)
+    $_ = $_ + 0 for @gstrates;
+    use List::MoreUtils qw/uniq/;
+    # remove duplicate values
+    @gstrates = uniq sort @gstrates;
+    my $new_syspref_value = join '|', @gstrates;
+    # update the syspref with the new values
+    my $sth = $dbh->prepare("UPDATE systempreferences set value=? WHERE variable='gist'");
+    $sth->execute( $new_syspref_value );
+
+    print "Upgrade to $DBversion done (Bug 8832, Set the syspref gist with the existing values)\n";
+    SetVersion ($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
index 96c6fb6..5533ebc 100644 (file)
@@ -451,23 +451,27 @@ $(document).ready(function()
                 [% END %]
             </li>
             [% END %]
-            <li>
-                [% IF ( close ) %]
-                    <span class="label">Tax rate: </span>
-                    <input type="hidden" size="20" name="gstrate" id="gstrate" value="[% gstrate %]" />[% gstrate %]%
-                [% ELSE %]
-                    <label for="gst">Tax rate: </label>
-                    <select name="gstrate" id="gstrate" onchange="updateCosts();">
-                    [% FOREACH gst IN gst_values %]
-                      [% IF ( gst.option == gstrate ) %]
-                        <option value="[% gst.option %]" selected="selected">[% gst.option * 100 | format("%.1f") %]%</option>
-                      [% ELSE %]
-                        <option value="[% gst.option %]">[% gst.option * 100 | format("%.1f") %]%</option>
-                      [% END %]
+            [% IF ( gst_values ) %]
+                <li>
+                    [% IF ( close ) %]
+                        <span class="label">Tax rate: </span>
+                        <input type="hidden" size="20" name="gstrate" id="gstrate" value="[% gstrate %]" />[% gstrate %]%
+                    [% ELSE %]
+                        <label for="gst">Tax rate: </label>
+                        <select name="gstrate" id="gstrate" onchange="updateCosts();">
+                        [% FOREACH gst IN gst_values %]
+                          [% IF ( gst.option == gstrate ) %]
+                            <option value="[% gst.option %]" selected="selected">[% gst.option * 100 | format("%.1f") %]%</option>
+                          [% ELSE %]
+                            <option value="[% gst.option %]">[% gst.option * 100 | format("%.1f") %]%</option>
+                          [% END %]
+                        [% END %]
+                        </select>
                     [% END %]
-                    </select>
-                [% END %]
-            </li>
+                [% ELSE %]
+                    <input type="hidden" name="gstrate" value="0" />
+                </li>
+            [% END %]
             <li>
                 <label for="discount">Discount: </label>
                 [% IF ( close ) %]
index 9cbc169..201c080 100644 (file)
@@ -156,8 +156,9 @@ if (f.company.value == "") {
                     <label for="invoice_gstno">Don't include tax</label> <input type="radio" id="invoice_gstno" name="invoice_gst" value="0" checked="checked" />
                 [% END %]</li>
             </ol>
-             <ol>
-                <li>
+            [% IF gst_values %]
+                <ol>
+                  <li>
                     <label for="gst">Tax rate</label>
                     <select name="gstrate" id="gstrate">
                     [% FOREACH gst IN gst_values %]
@@ -168,8 +169,11 @@ if (f.company.value == "") {
                       [% END %]
                     [% END %]
                     </select>
-                </li>
-            </ol>
+                  </li>
+                </ol>
+            [% ELSE %]
+                <input type="hidden" name="gstrate" value="0" />
+            [% END %]
             <ol>
             <li><label for="discount">Discount</label>
                 <input type="text" size="6" id="discount" name="discount" value="[% discount %]" />%</li>