Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...

Scott Gray-2
Hi Marco,

We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);

Regards
Scott

On 23/05/2011, at 1:11 AM, [hidden email] wrote:

> Author: mrisaliti
> Date: Sun May 22 13:11:17 2011
> New Revision: 1125951
>
> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
> Log:
> Webpos2 improved version (OFBIZ-4287)
>
[snip]

>
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
> @@ -20,6 +20,8 @@
> package org.ofbiz.base.util;
>
> import java.math.BigDecimal;
> +import java.text.NumberFormat;
> +import java.text.ParseException;
> import java.util.HashMap;
> import java.util.Locale;
>
> @@ -250,4 +252,27 @@ public class UtilNumber {
>
>         return (bd.toString() + "%");
>     }
> +    
> +    /**
> +      * Method to convert a string into BigDecimal.
> +      *
> +      * @param stringToConvert String to convert to BigDecimal
> +      * @return                The string converted to BigDecimal
> +      */
> +    public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
> +        if (stringToConvert != null && stringToConvert != "") {
> +            Number numb = null;
> +            NumberFormat nf = NumberFormat.getInstance(locale);
> +            nf.setMaximumFractionDigits(10);
> +            try {
> +                numb = nf.parse(stringToConvert);
> +                return (new BigDecimal(numb.toString()));
> +            } catch (ParseException e) {
> +                return null;
> +            }
> +        }
> +        else {
> +            return null;
> +        }
> +    }
> }
>


smime.p7s (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...

risalitim@gmail.com
Hi Scott,

I agree with you but when I did it (probably one year ago) I see that if I use the method simpleTypeConvert the exception is not recognized by call-class-method and then the exception is shown to the final user, something similar to:

ERROR: Could not complete the Open Terminal [file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal] process [Method to execute named simpleTypeConvert threw an exception: org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]

instead using my method the user see this error:

Insert a valid starting drawer amount

I agree to use only one method for conversion (so the standard one simpleTypeConvert) but in this case I need to trap the exception in the simple method.

Any hint to solve this problem and then remove the method UtilNumber.stringToBigDecimal.

On markmail I found this old thread:

http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results

Thanks
Marco


> Hi Marco,
>
> We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
>
> Regards
> Scott
>
> On 23/05/2011, at 1:11 AM, [hidden email] wrote:
>
>> Author: mrisaliti
>> Date: Sun May 22 13:11:17 2011
>> New Revision: 1125951
>>
>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>> Log:
>> Webpos2 improved version (OFBIZ-4287)
>>
> [snip]
>>
>>
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
>> @@ -20,6 +20,8 @@
>> package org.ofbiz.base.util;
>>
>> import java.math.BigDecimal;
>> +import java.text.NumberFormat;
>> +import java.text.ParseException;
>> import java.util.HashMap;
>> import java.util.Locale;
>>
>> @@ -250,4 +252,27 @@ public class UtilNumber {
>>
>>        return (bd.toString() + "%");
>>    }
>> +    
>> +    /**
>> +      * Method to convert a string into BigDecimal.
>> +      *
>> +      * @param stringToConvert String to convert to BigDecimal
>> +      * @return                The string converted to BigDecimal
>> +      */
>> +    public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
>> +        if (stringToConvert != null && stringToConvert != "") {
>> +            Number numb = null;
>> +            NumberFormat nf = NumberFormat.getInstance(locale);
>> +            nf.setMaximumFractionDigits(10);
>> +            try {
>> +                numb = nf.parse(stringToConvert);
>> +                return (new BigDecimal(numb.toString()));
>> +            } catch (ParseException e) {
>> +                return null;
>> +            }
>> +        }
>> +        else {
>> +            return null;
>> +        }
>> +    }
>> }
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...

Scott Gray-2
Use the simple-map-processor for validation:
        <call-map-processor in-map-name="context" out-map-name="context">
            <simple-map-processor name="inputValidate">
                <process field="startingDrawer"><convert type="BigDecimal"><fail-message message="Insert a valid starting drawer amount"/></convert></process>
            </simple-map-processor>
        </call-map-processor>

Regards
Scott

HotWax Media
http://www.hotwaxmedia.com

On 24/05/2011, at 7:05 AM, [hidden email] wrote:

> Hi Scott,
>
> I agree with you but when I did it (probably one year ago) I see that if I use the method simpleTypeConvert the exception is not recognized by call-class-method and then the exception is shown to the final user, something similar to:
>
> ERROR: Could not complete the Open Terminal [file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal] process [Method to execute named simpleTypeConvert threw an exception: org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]
>
> instead using my method the user see this error:
>
> Insert a valid starting drawer amount
>
> I agree to use only one method for conversion (so the standard one simpleTypeConvert) but in this case I need to trap the exception in the simple method.
>
> Any hint to solve this problem and then remove the method UtilNumber.stringToBigDecimal.
>
> On markmail I found this old thread:
>
> http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results
>
> Thanks
> Marco
>
>
>> Hi Marco,
>>
>> We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
>> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
>>
>> Regards
>> Scott
>>
>> On 23/05/2011, at 1:11 AM, [hidden email] wrote:
>>
>>> Author: mrisaliti
>>> Date: Sun May 22 13:11:17 2011
>>> New Revision: 1125951
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>>> Log:
>>> Webpos2 improved version (OFBIZ-4287)
>>>
>> [snip]
>>>
>>>
>>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>>> ==============================================================================
>>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
>>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
>>> @@ -20,6 +20,8 @@
>>> package org.ofbiz.base.util;
>>>
>>> import java.math.BigDecimal;
>>> +import java.text.NumberFormat;
>>> +import java.text.ParseException;
>>> import java.util.HashMap;
>>> import java.util.Locale;
>>>
>>> @@ -250,4 +252,27 @@ public class UtilNumber {
>>>
>>>       return (bd.toString() + "%");
>>>   }
>>> +    
>>> +    /**
>>> +      * Method to convert a string into BigDecimal.
>>> +      *
>>> +      * @param stringToConvert String to convert to BigDecimal
>>> +      * @return                The string converted to BigDecimal
>>> +      */
>>> +    public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
>>> +        if (stringToConvert != null && stringToConvert != "") {
>>> +            Number numb = null;
>>> +            NumberFormat nf = NumberFormat.getInstance(locale);
>>> +            nf.setMaximumFractionDigits(10);
>>> +            try {
>>> +                numb = nf.parse(stringToConvert);
>>> +                return (new BigDecimal(numb.toString()));
>>> +            } catch (ParseException e) {
>>> +                return null;
>>> +            }
>>> +        }
>>> +        else {
>>> +            return null;
>>> +        }
>>> +    }
>>> }
>>>
>>
>


smime.p7s (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...

risalitim@gmail.com
Thanks Scott for the suggestion, I have fixed into trunk rev. 1127651.

Marco

Il giorno 23/mag/2011, alle ore 23.21, Scott Gray ha scritto:

> Use the simple-map-processor for validation:
>        <call-map-processor in-map-name="context" out-map-name="context">
>            <simple-map-processor name="inputValidate">
>                <process field="startingDrawer"><convert type="BigDecimal"><fail-message message="Insert a valid starting drawer amount"/></convert></process>
>            </simple-map-processor>
>        </call-map-processor>
>
> Regards
> Scott
>
> HotWax Media
> http://www.hotwaxmedia.com
>
> On 24/05/2011, at 7:05 AM, [hidden email] wrote:
>
>> Hi Scott,
>>
>> I agree with you but when I did it (probably one year ago) I see that if I use the method simpleTypeConvert the exception is not recognized by call-class-method and then the exception is shown to the final user, something similar to:
>>
>> ERROR: Could not complete the Open Terminal [file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal] process [Method to execute named simpleTypeConvert threw an exception: org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]
>>
>> instead using my method the user see this error:
>>
>> Insert a valid starting drawer amount
>>
>> I agree to use only one method for conversion (so the standard one simpleTypeConvert) but in this case I need to trap the exception in the simple method.
>>
>> Any hint to solve this problem and then remove the method UtilNumber.stringToBigDecimal.
>>
>> On markmail I found this old thread:
>>
>> http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results
>>
>> Thanks
>> Marco
>>
>>
>>> Hi Marco,
>>>
>>> We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
>>> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
>>>
>>> Regards
>>> Scott
>>>
>>> On 23/05/2011, at 1:11 AM, [hidden email] wrote:
>>>
>>>> Author: mrisaliti
>>>> Date: Sun May 22 13:11:17 2011
>>>> New Revision: 1125951
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>>>> Log:
>>>> Webpos2 improved version (OFBIZ-4287)
>>>>
>>> [snip]
>>>>
>>>>
>>>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>>>> ==============================================================================
>>>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
>>>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
>>>> @@ -20,6 +20,8 @@
>>>> package org.ofbiz.base.util;
>>>>
>>>> import java.math.BigDecimal;
>>>> +import java.text.NumberFormat;
>>>> +import java.text.ParseException;
>>>> import java.util.HashMap;
>>>> import java.util.Locale;
>>>>
>>>> @@ -250,4 +252,27 @@ public class UtilNumber {
>>>>
>>>>      return (bd.toString() + "%");
>>>>  }
>>>> +    
>>>> +    /**
>>>> +      * Method to convert a string into BigDecimal.
>>>> +      *
>>>> +      * @param stringToConvert String to convert to BigDecimal
>>>> +      * @return                The string converted to BigDecimal
>>>> +      */
>>>> +    public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
>>>> +        if (stringToConvert != null && stringToConvert != "") {
>>>> +            Number numb = null;
>>>> +            NumberFormat nf = NumberFormat.getInstance(locale);
>>>> +            nf.setMaximumFractionDigits(10);
>>>> +            try {
>>>> +                numb = nf.parse(stringToConvert);
>>>> +                return (new BigDecimal(numb.toString()));
>>>> +            } catch (ParseException e) {
>>>> +                return null;
>>>> +            }
>>>> +        }
>>>> +        else {
>>>> +            return null;
>>>> +        }
>>>> +    }
>>>> }
>>>>
>>>
>>
>