=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.java 2011-12-26 10:07:59 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.java 2012-09-10 16:11:09 +0000 @@ -27,15 +27,16 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.io.Serializable; +import java.util.Date; +import java.util.regex.Pattern; + import org.hisp.dhis.common.ImportableObject; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; -import java.io.Serializable; -import java.util.Date; - /** * @author Kristian Nordal * @version $Id: DataValue.java 4638 2008-02-25 10:06:47Z larshelg $ @@ -48,6 +49,8 @@ */ private static final long serialVersionUID = 6269303850789110610L; + private static final Pattern ZERO_PATTERN = Pattern.compile( "^0(\\.0*)?$" ); + public static final String TRUE = "true"; public static final String FALSE = "false"; @@ -167,7 +170,7 @@ public boolean isZero() { return dataElement != null && dataElement.getType().equals( DataElement.VALUE_TYPE_INT ) - && value != null && new Double( value ).intValue() == 0; + && value != null && ZERO_PATTERN.matcher( value ).find(); } public boolean isNullValue() === added directory 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/datavalue' === added file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/datavalue/DataValueTest.java' --- dhis-2/dhis-api/src/test/java/org/hisp/dhis/datavalue/DataValueTest.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/datavalue/DataValueTest.java 2012-09-10 16:11:09 +0000 @@ -0,0 +1,70 @@ +package org.hisp.dhis.datavalue; + +/* + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import org.hisp.dhis.dataelement.DataElement; +import org.junit.Test; + +import static junit.framework.Assert.*; + +/** + * @author Lars Helge Overland + */ +public class DataValueTest +{ + @Test + public void testIsZero() + { + DataElement dataElement = new DataElement( "A" ); + dataElement.setType( DataElement.VALUE_TYPE_INT ); + + DataValue dataValue = new DataValue(); + dataValue.setDataElement( dataElement ); + + dataValue.setValue( "5" ); + assertFalse( dataValue.isZero() ); + + dataValue.setValue( "0.2" ); + assertFalse( dataValue.isZero() ); + + dataValue.setValue( "0.00001" ); + assertFalse( dataValue.isZero() ); + + dataValue.setValue( "String" ); + assertFalse( dataValue.isZero() ); + + dataValue.setValue( "0" ); + assertTrue( dataValue.isZero() ); + + dataValue.setValue( "0.0" ); + assertTrue( dataValue.isZero() ); + + dataValue.setValue( "0.0000" ); + assertTrue( dataValue.isZero() ); + } +} === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/commons.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/commons.js 2012-08-14 09:50:07 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/commons.js 2012-09-10 16:11:09 +0000 @@ -1482,7 +1482,7 @@ */ function isValidZeroNumber( value ) { - var regex = /^0(?:\.0*)?$/; + var regex = /^0(\.0*)?$/; return regex.test( value ); }