[ic] [interchange] Add numeric ordercheck

Mike Heins mike at perusion.com
Thu Mar 25 17:53:21 UTC 2010


Quoting Ton Verhagen (ton at verhagen.net):
> 
> On Mar 25, 2010, at 18:14 PM, Mike Heins wrote:
> 
> > Quoting Ton Verhagen (tverhagen at alamerce.nl):
> >> 
> >> On Mar 25, 2010, at 17:19 PM, Jon Jensen wrote:
> >> 
> >>> On Thu, 25 Mar 2010, Mike Heins wrote:
> >>> 
> >>>> Hmm. This is no definition of numeric I know of.
> >>>> 
> >>>> If it is for a SQL purpose, perhaps. I don't know enough to check that. I will tell you MySQL and Postgres both accept +1, 1. and .1 just fine, as does Perl.
> >>> 
> >>> Yes, we considered those but decided to make the check restrictive at least to start with. We can loosen it up if needed.
> >>> 
> >>> The idea was that if validating a numeric entry from a customer, 1. is almost certainly missing something, +1 is not likely intentional, and .1 we were on the fence about -- some cases it might be intentional, other times a mistake.
> >>> 
> >>>> I think perhaps I would prefer:
> >>>> 
> >>>> 	use Scalar::Util qw/looks_like_number/;
> >>> 
> >>> I could see using that. Ton, what do you think?
> >> 
> >> 
> >> The purpose for which we wanted this check was to check on user
> >> input (mainly backend) for amounts, like prices etc. Price amounts
> >> normally look like 'd.dd' or '-d.dd'. Having prices like '+1.25'
> >> input into a table would not make much sense to us. Same for .1 and
> >> 1. type of input.
> >> 
> >> Maybe we should rename the current numeric order check to reflect it's
> >> purpose. Or an other idea would be to have a kind of a 'price/amount
> >> picture' order check, where the format given should be matched.
> > 
> > How about using "currency" as the name? That would make me happy.
> 
> No problem with that.
> 
> Would be nice if we had a 'currency' filter as well. This filter
> could transform .1 to e.g. 0.10 etc maybe number of leading zero's
> and precision (decimal places) configurable, as well as 'sign'
> accepted or not.

I believe that already exists. Yup:

	[filter currency].1[/filter]

puts out:

	$0.10

and even:

	
    [filter currency.de_DE].1[/filter]

puts out:

    0,18€

> 
> Leaves the challenge coming up with a proper numeric order check.

I thought I provided that.

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.328.4479  <mike at perusion.com>

Few blame themselves until they have exhausted all other possibilities.
 -- anonymous



More information about the interchange-users mailing list