--- /dev/null
+[% USE Koha %]
+<script type="text/javascript">
+ [%# This should use the Format template plugin, but not pushed yet %]
+ [% IF Koha.Preference("CurrencyFormat") == 'FR' %]
+ var default_value = {
+ thousands_sep: ' ',
+ decimal_point: ',',
+ decimal_digits: 2
+ };
+ [% ELSE %]
+ var default_value = {
+ thousands_sep: ',',
+ decimal_point: '.',
+ decimal_digits: 2
+ };
+ [% END %]
+ Number.prototype.format_price = function( value, params ) {
+ params = params == undefined ? {} : params;
+ var thousands_sep = params.thousands_sep == undefined ? default_value.thousands_sep : params.thousands_sep,
+ decimal_point = params.decimal_point == undefined ? default_value.decimal_point : params.decimal_point,
+ //symbol = params.symbol == undefined ? '$' : params.symbol, // Not implemented yet
+ decimal_digits = params.decimal_digits == undefined ? default_value.decimal_digits : params.decimal_digits;
+
+ var re = '\\d(?=(\\d{' + 3 + '})+' + '\\D' + ')', value = this.toFixed(decimal_digits);
+ return value.replace('.', decimal_point).replace(new RegExp(re, 'g'), '$&' + thousands_sep);
+ }
+</script>
return "";
}
}
+
+// see http://www.datatables.net/examples/advanced_init/footer_callback.html
+function footer_column_sum( api, column_numbers ) {
+ // Remove the formatting to get integer data for summation
+ var intVal = function ( i ) {
+ if ( typeof i === 'number' ) {
+ if ( isNaN(i) ) return 0;
+ return i;
+ } else if ( typeof i === 'string' ) {
+ var value = i.replace(/[a-zA-Z ,.]/g, '')*1;
+ if ( isNaN(value) ) return 0;
+ return value;
+ }
+ return 0;
+ };
+
+
+ for ( var indice = 0 ; indice < column_numbers.length ; indice++ ) {
+ var column_number = column_numbers[indice];
+
+ var total = 0;
+ var cells = api.column( column_number, { page: 'current' } ).nodes().to$().find("span.total_amount");
+ $(cells).each(function(){
+ total += intVal( $(this).html() );
+ });
+ total /= 100; // Hard-coded decimal precision
+
+ // Update footer
+ $( api.column( column_number ).footer() ).html(total.format_price());
+ };
+}