webmcp
annotate framework/env/format/currency.lua @ 28:ea2e8f3a2776
allow webmcp path to be set in cgi script
this allows another script to include the webmcp script when the cwd is not the cgi-bin. the script needs to set the WEBMCP_PATH variable.
this allows another script to include the webmcp script when the cwd is not the cgi-bin. the script needs to set the WEBMCP_PATH variable.
| author | Daniel Poelzleithner <poelzi@poelzi.org> |
|---|---|
| date | Sun Sep 19 01:36:08 2010 +0200 (2010-09-19) |
| parents | 9fdfb27f8e67 |
| children |
| rev | line source |
|---|---|
| jbe/bsw@0 | 1 --[[-- |
| jbe/bsw@0 | 2 text = |
| jbe/bsw@0 | 3 format.currency( |
| jbe/bsw@0 | 4 value, |
| jbe/bsw@0 | 5 { |
| jbe/bsw@0 | 6 nil_as = nil_text, -- text to be returned for a nil value |
| jbe/bsw@0 | 7 digits = digits, -- number of digits before the decimal point |
| jbe/bsw@0 | 8 currency_precision = currency_precision, -- number of digits after decimal point |
| jbe/bsw@0 | 9 currency_prefix = currency_prefix, -- prefix string, i.e. "$ " |
| jbe/bsw@0 | 10 currency_decimal_point = currency_decimal_point, -- string to be used as decimal point |
| jbe/bsw@0 | 11 currency_suffix = currency_suffix, -- suffix string, i.e. " EUR" |
| jbe/bsw@0 | 12 hide_unit = hide_unit, -- hide the currency unit, if true |
| jbe/bsw@0 | 13 decimal_point = decimal_point -- used instead of 'currency_decimal_point', if 'hide_unit' is true |
| jbe/bsw@0 | 14 } |
| jbe/bsw@0 | 15 ) |
| jbe/bsw@0 | 16 |
| jbe/bsw@0 | 17 Formats a (floating point) number or a fraction as a decimal number. If a 'digits' option is set, the number of digits before the decimal point is increased up to the given count by preceding it with zeros. The digits after the decimal point are adjusted by the 'precision' parameter. The 'decimal_shift' parameter is useful, when fixed precision decimal numbers are stored as integers, as the given value will be divided by 10 to the power of the 'decimal_shift' value prior to formatting. Setting 'decimal_shift' to true will use the 'precision' value as 'decimal_shift'. |
| jbe/bsw@0 | 18 |
| jbe/bsw@0 | 19 --]]-- |
| jbe/bsw@0 | 20 |
| jbe/bsw@0 | 21 function format.currency(value, options) |
| jbe/bsw@0 | 22 local options = table.new(options) |
| jbe/bsw@0 | 23 local prefix |
| jbe/bsw@0 | 24 local suffix |
| jbe/bsw@0 | 25 if options.hide_unit then |
| jbe/bsw@0 | 26 prefix = "" |
| jbe/bsw@0 | 27 suffix = "" |
| jbe/bsw@0 | 28 options.decimal_point = |
| jbe/bsw@0 | 29 options.decimal_point or locale.get("decimal_point") |
| jbe/bsw@0 | 30 options.precision = |
| jbe/bsw@0 | 31 options.currency_precision or locale.get("currency_precision") or 2 |
| jbe/bsw@0 | 32 elseif |
| jbe/bsw@0 | 33 options.currency_prefix or options.currency_suffix or |
| jbe/bsw@0 | 34 options.currency_precision or options.currency_decimal_point |
| jbe/bsw@0 | 35 then |
| jbe/bsw@0 | 36 prefix = options.currency_prefix or '' |
| jbe/bsw@0 | 37 suffix = options.currency_suffix or '' |
| jbe/bsw@0 | 38 options.decimal_point = options.currency_decimal_point |
| jbe/bsw@0 | 39 options.precision = options.currency_precision or 2 |
| jbe/bsw@0 | 40 else |
| jbe/bsw@0 | 41 prefix = locale.get("currency_prefix") or '' |
| jbe/bsw@0 | 42 suffix = locale.get("currency_suffix") or '' |
| jbe/bsw@0 | 43 options.decimal_point = locale.get("currency_decimal_point") |
| jbe/bsw@0 | 44 options.precision = locale.get("currency_precision") or 2 |
| jbe/bsw@0 | 45 end |
| jbe/bsw@0 | 46 if value == nil then |
| jbe/bsw@0 | 47 return options.nil_as or '' |
| jbe/bsw@0 | 48 end |
| jbe/bsw@0 | 49 return prefix .. format.decimal(value, options) .. suffix |
| jbe/bsw@0 | 50 end |