Sorry, in my last post I said mentioned precision. We need the SCALE for all data types. Unfortunately, it turns out that the template code uses IColumn.NumericScale for a data type that is assumed to be decimal with no scale... Hence the scale returns 0 which is incorrect for the money data type.
The problem si not saving the data, it is in fact the maximum value the field can take.
Technically a Decimal(19,0) (as ES assumes Money is) would be able to receive the following value 9999999999999999999 (ie, 19 of 9). This however fails if saved to SQL.
However, the Decimal (19,4) (as the correct Money type is), can only take up to 999999999999999 (ie. 15 digits max because the rest are decimals... Or 14 in fact I think...) Anyway, less than 19. This is enough to break our validation code that relies on precision and scale to limit the entry in various screen fields.
So the idea is that we kinf od need the scale. The hack fixed it but it is not the best. Ideally IColumn.NumericScale should return the correct value...
Thank you,
Sorin