]> source.dussan.org Git - redmine.git/commitdiff
fix csv decimal separator of time entry csv (#8368)
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Sun, 27 Nov 2011 12:14:20 +0000 (12:14 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Sun, 27 Nov 2011 12:14:20 +0000 (12:14 +0000)
Contributed by Francisco José Martínez.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7950 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/timelog_helper.rb

index c5559db25bf6f12659d25972cb6dc4e6cdc64c19..0467acc2152d738b36d28746f6592ee09638baaf 100644 (file)
@@ -142,6 +142,7 @@ module TimelogHelper
   end
 
   def report_to_csv(criterias, periods, hours)
+    decimal_separator = l(:general_csv_decimal_separator)
     export = FCSV.generate(:col_sep => l(:general_csv_separator)) do |csv|
       # Column headers
       headers = criterias.collect {|criteria| l(@available_criterias[criteria][:label]) }
@@ -159,15 +160,16 @@ module TimelogHelper
       periods.each do |period|
         sum = sum_hours(select_hours(hours, @columns, period.to_s))
         total += sum
-        row << (sum > 0 ? "%.2f" % sum : '')
+        row << (sum > 0 ? ("%.2f" % sum).gsub('.',decimal_separator) : '')
       end
-      row << "%.2f" %total
+      row << ("%.2f" % total).gsub('.',decimal_separator)
       csv << row
     end
     export
   end
 
   def report_criteria_to_csv(csv, criterias, periods, hours, level=0)
+    decimal_separator = l(:general_csv_decimal_separator)
     hours.collect {|h| h[criterias[level]].to_s}.uniq.each do |value|
       hours_for_value = select_hours(hours, criterias[level], value)
       next if hours_for_value.empty?
@@ -180,11 +182,10 @@ module TimelogHelper
       periods.each do |period|
         sum = sum_hours(select_hours(hours_for_value, @columns, period.to_s))
         total += sum
-        row << (sum > 0 ? "%.2f" % sum : '')
+        row << (sum > 0 ? ("%.2f" % sum).gsub('.',decimal_separator) : '')
       end
-      row << "%.2f" %total
+      row << ("%.2f" % total).gsub('.',decimal_separator)
       csv << row
-
       if criterias.length > level + 1
         report_criteria_to_csv(csv, criterias, periods, hours_for_value, level + 1)
       end