=== added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValue.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValue.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValue.java 2014-01-07 17:56:19 +0000 @@ -0,0 +1,196 @@ +package org.hisp.dhis.pbf.api; + +import java.io.Serializable; +import java.util.Date; + +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataset.DataSet; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.period.Period; + +public class PBFDataValue implements Serializable +{ + private OrganisationUnit organisationUnit; + + private DataElement dataElement; + + private DataSet dataSet; + + private Period period; + + private Integer quantityReported; + + private Integer quantityValidated; + + private Double tariffAmount; + + private String storedBy; + + private Date timestamp; + + private String comment; + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + public PBFDataValue() + { + + } + + public PBFDataValue( OrganisationUnit organisationUnit, DataElement dataElement, DataSet dataSet, Period period, Integer quantityReported, Integer quantityValidated, Double tariffAmount ) + { + this.organisationUnit = organisationUnit; + this.dataElement = dataElement; + this.dataSet = dataSet; + this.period = period; + this.quantityReported = quantityReported; + this.quantityValidated = quantityValidated; + this.tariffAmount = tariffAmount; + } + + // ------------------------------------------------------------------------- + // hashCode and equals + // ------------------------------------------------------------------------- + + @Override + public boolean equals( Object o ) + { + if ( this == o ) + { + return true; + } + + if ( o == null ) + { + return false; + } + + if ( !(o instanceof PBFDataValue) ) + { + return false; + } + + final PBFDataValue other = (PBFDataValue) o; + + return dataElement.equals( other.getDataElement() ) && dataSet.equals( other.getDataSet() ) && organisationUnit.equals( other.getOrganisationUnit() ) && period.equals( other.getPeriod() ); + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + + result = result * prime + dataSet.hashCode(); + result = result * prime + dataElement.hashCode(); + result = result * prime + organisationUnit.hashCode(); + result = result * prime + period.hashCode(); + + return result; + } + + // ------------------------------------------------------------------------- + // Getters and setters + // ------------------------------------------------------------------------- + + public OrganisationUnit getOrganisationUnit() + { + return organisationUnit; + } + + public void setOrganisationUnit(OrganisationUnit organisationUnit) + { + this.organisationUnit = organisationUnit; + } + + public DataElement getDataElement() + { + return dataElement; + } + + public void setDataElement(DataElement dataElement) + { + this.dataElement = dataElement; + } + + public DataSet getDataSet() + { + return dataSet; + } + + public void setDataSet(DataSet dataSet) + { + this.dataSet = dataSet; + } + + public Period getPeriod() + { + return period; + } + + public void setPeriod(Period period) + { + this.period = period; + } + + public Integer getQuantityReported() + { + return quantityReported; + } + + public void setQuantityReported(Integer quantityReported) + { + this.quantityReported = quantityReported; + } + + public Integer getQuantityValidated() + { + return quantityValidated; + } + + public void setQuantityValidated(Integer quantityValidated) + { + this.quantityValidated = quantityValidated; + } + + public Double getTariffAmount() + { + return tariffAmount; + } + + public void setTariffAmount(Double tariffAmount) + { + this.tariffAmount = tariffAmount; + } + + public String getStoredBy() + { + return storedBy; + } + + public void setStoredBy(String storedBy) + { + this.storedBy = storedBy; + } + + public Date getTimestamp() + { + return timestamp; + } + + public void setTimestamp(Date timestamp) + { + this.timestamp = timestamp; + } + + public String getComment() + { + return comment; + } + + public void setComment(String comment) + { + this.comment = comment; + } +} === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValueService.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValueService.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValueService.java 2014-01-07 17:56:19 +0000 @@ -0,0 +1,25 @@ +package org.hisp.dhis.pbf.api; + +import java.util.Collection; + +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataset.DataSet; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.period.Period; + +public interface PBFDataValueService +{ + + String ID = PBFDataValueService.class.getName(); + + void addPBFDataValue( PBFDataValue pbfDataValue ); + + void updatePBFDataValue( PBFDataValue pbfDataValue ); + + void deletePBFDataValue( PBFDataValue pbfDataValue ); + + PBFDataValue getPBFDataValue( OrganisationUnit organisationUnit, DataSet dataSet, Period period, DataElement dataElement ); + + Collection getPBFDataValues( OrganisationUnit organisationUnit, DataSet dataSet, Period period ); + +} === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValueStore.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValueStore.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/api/PBFDataValueStore.java 2014-01-07 17:56:19 +0000 @@ -0,0 +1,23 @@ +package org.hisp.dhis.pbf.api; + +import java.util.Collection; + +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataset.DataSet; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.period.Period; + +public interface PBFDataValueStore +{ + String ID = PBFDataValueStore.class.getName(); + + void addPBFDataValue( PBFDataValue pbfDataValue ); + + void updatePBFDataValue( PBFDataValue pbfDataValue ); + + void deletePBFDataValue( PBFDataValue pbfDataValue ); + + PBFDataValue getPBFDataValue( OrganisationUnit organisationUnit, DataSet dataSet, Period period, DataElement dataElement ); + + Collection getPBFDataValues( OrganisationUnit organisationUnit, DataSet dataSet, Period period ); +} === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/LoadDataEntryFormAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/LoadDataEntryFormAction.java 2014-01-07 12:44:16 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/LoadDataEntryFormAction.java 2014-01-07 17:56:19 +0000 @@ -3,8 +3,10 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryCombo; @@ -18,6 +20,8 @@ import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.pbf.api.Lookup; import org.hisp.dhis.pbf.api.LookupService; +import org.hisp.dhis.pbf.api.PBFDataValue; +import org.hisp.dhis.pbf.api.PBFDataValueService; import org.hisp.dhis.pbf.api.TariffDataValueService; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodType; @@ -34,7 +38,15 @@ // Dependencies // ------------------------------------------------------------------------- - private OrganisationUnitService organisationUnitService; + + private PBFDataValueService pbfDataValueService; + + public void setPbfDataValueService(PBFDataValueService pbfDataValueService) + { + this.pbfDataValueService = pbfDataValueService; + } + + private OrganisationUnitService organisationUnitService; public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) { @@ -98,7 +110,14 @@ // Input/Output // ------------------------------------------------------------------------- - private String orgUnitId; + private Map pbfDataValueMap; + + public Map getPbfDataValueMap() + { + return pbfDataValueMap; + } + + private String orgUnitId; public void setOrgUnitId( String orgUnitId ) { @@ -170,7 +189,8 @@ private DataElementCategoryOptionCombo qValOptCombo; - public DataElementCategoryOptionCombo getqValOptCombo() { + public DataElementCategoryOptionCombo getqValOptCombo() + { return qValOptCombo; } @@ -178,8 +198,6 @@ // Action implementation // ------------------------------------------------------------------------- - - public String execute() { dataValueMap = new HashMap(); @@ -206,9 +224,53 @@ Map tariffDataValueMap = new HashMap(); tariffDataValueMap.putAll( tariffDataValueService.getTariffDataValues( organisationUnit, dataSet, period ) ); + + pbfDataValueMap = new HashMap(); - - for( DataElement dataElement : dataElements ) + Set pbfDataValues = new HashSet( pbfDataValueService.getPBFDataValues(organisationUnit, dataSet, period) ); + for( PBFDataValue pbfDataValue : pbfDataValues ) + { + DataElement de = pbfDataValue.getDataElement(); + if( pbfDataValue.getTariffAmount() == null ) + { + Double tariffAmount = tariffDataValueMap.get( de.getId() ); + if( tariffAmount != null ) + { + pbfDataValue.setStoredBy( currentUserService.getCurrentUsername() ); + pbfDataValue.setTariffAmount( tariffAmount ); + pbfDataValue.setTimestamp( new Date() ); + pbfDataValueService.updatePBFDataValue( pbfDataValue ); + } + } + pbfDataValueMap.put( de, pbfDataValue ); + } + + Set tempDes = new HashSet(); + tempDes.addAll( dataElements ); + + tempDes.removeAll( pbfDataValueMap.keySet() ); + + for( DataElement de : tempDes ) + { + Double tariffAmount = tariffDataValueMap.get( de.getId() ); + if( tariffAmount != null ) + { + PBFDataValue pbfDataValue = new PBFDataValue(); + + pbfDataValue.setDataElement( de ); + pbfDataValue.setPeriod( period ); + pbfDataValue.setOrganisationUnit(organisationUnit); + pbfDataValue.setTariffAmount( tariffAmount ); + pbfDataValue.setStoredBy( currentUserService.getCurrentUsername() ); + pbfDataValue.setTimestamp( new Date() ); + + pbfDataValueService.addPBFDataValue( pbfDataValue ); + pbfDataValueMap.put( de, pbfDataValue ); + } + } + + /* + for( DataElement dataElement : dataElements ) { //DataElementCategoryOptionCombo decoc = dataElementCategoryService.getDefaultDataElementCategoryOptionCombo(); @@ -258,6 +320,7 @@ } } + */ /* for( DataElementCategoryOptionCombo decombo : optionCombos ) === modified file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/SaveValueAction.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/SaveValueAction.java 2014-01-07 10:10:48 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/dataentry/SaveValueAction.java 2014-01-07 17:56:19 +0000 @@ -27,24 +27,27 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import com.opensymphony.xwork2.Action; +import java.util.Date; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hisp.dhis.dataelement.DataElement; -import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.dataelement.DataElementCategoryService; import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.datavalue.DataValue; import org.hisp.dhis.datavalue.DataValueService; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; +import org.hisp.dhis.pbf.api.PBFDataValue; +import org.hisp.dhis.pbf.api.PBFDataValueService; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.system.util.ValidationUtils; import org.hisp.dhis.user.CurrentUserService; -import java.util.Date; +import com.opensymphony.xwork2.Action; /** * @author Abyot Asalefew @@ -100,18 +103,32 @@ this.dataSetService = dataSetService; } + private PBFDataValueService pbfDataValueService; + + public void setPbfDataValueService(PBFDataValueService pbfDataValueService) + { + this.pbfDataValueService = pbfDataValueService; + } + // ------------------------------------------------------------------------- // Input // ------------------------------------------------------------------------- - private String value; + private String value; public void setValue( String value ) { this.value = value; } - private String dataElementId; + private String valueType; + + public void setValueType(String valueType) + { + this.valueType = valueType; + } + + private String dataElementId; public void setDataElementId( String dataElementId ) { @@ -125,12 +142,14 @@ this.organisationUnitId = organisationUnitId; } + /* private String optionComboId; public void setOptionComboId( String optionComboId ) { this.optionComboId = optionComboId; } + */ private String periodId; @@ -141,14 +160,24 @@ private String periodIso; - public void setPeriodIso(String periodIso) { + public void setPeriodIso(String periodIso) + { this.periodIso = periodIso; } + private String dataSetId; + + public void setDataSetId(String dataSetId) + { + this.dataSetId = dataSetId; + } + + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- + private int statusCode = 0; public int getStatusCode() @@ -183,13 +212,21 @@ { return logError( "Invalid data element identifier: " + dataElementId ); } - + + /* DataElementCategoryOptionCombo optionCombo = categoryService.getDataElementCategoryOptionCombo( Integer.parseInt(optionComboId) ); if ( optionCombo == null ) { return logError( "Invalid category option combo identifier: " + optionComboId ); } + */ + + DataSet dataSet = dataSetService.getDataSet( Integer.parseInt( dataSetId ) ); + if ( dataSet == null ) + { + return logError( "Invalid dataset identifier: " + dataSetId ); + } String storedBy = currentUserService.getCurrentUsername(); @@ -225,15 +262,17 @@ // Check locked status // --------------------------------------------------------------------- + /* if ( dataSetService.isLocked( dataElement, period, organisationUnit, null ) ) { return logError( "Entry locked for combination: " + dataElement + ", " + period + ", " + organisationUnit, 2 ); } - +*/ // --------------------------------------------------------------------- // Update data // --------------------------------------------------------------------- + /* DataValue dataValue = dataValueService.getDataValue( dataElement, period,organisationUnit,optionCombo ); if ( dataValue == null ) @@ -263,6 +302,55 @@ System.out.println("Value Updated"); } +*/ + + PBFDataValue pbfDataValue = pbfDataValueService.getPBFDataValue(organisationUnit, dataSet, period, dataElement); + + if ( pbfDataValue == null ) + { + if ( value != null ) + { + pbfDataValue = new PBFDataValue( ); + pbfDataValue.setDataElement(dataElement); + pbfDataValue.setPeriod(period); + pbfDataValue.setOrganisationUnit(organisationUnit); + + if( valueType.equals("1") ) + { + pbfDataValue.setQuantityReported( Integer.parseInt( value ) ); + } + else if( valueType.equals("2") ) + { + pbfDataValue.setQuantityValidated( Integer.parseInt( value ) ); + } + pbfDataValue.setStoredBy(storedBy); + pbfDataValue.setTimestamp(now); + pbfDataValueService.addPBFDataValue(pbfDataValue); + + System.out.println("Value Added"); + } + } + else + { + if( valueType.equals("1") ) + { + pbfDataValue.setQuantityReported( Integer.parseInt( value ) ); + } + else if( valueType.equals("2") ) + { + pbfDataValue.setQuantityValidated( Integer.parseInt( value ) ); + } + + pbfDataValue.setStoredBy(storedBy); + + pbfDataValue.setTimestamp(now); + + pbfDataValueService.updatePBFDataValue( pbfDataValue ); + + System.out.println("Value Updated"); + } + + return SUCCESS; } === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/DefaultPBFDataValueService.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/DefaultPBFDataValueService.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/DefaultPBFDataValueService.java 2014-01-07 17:56:19 +0000 @@ -0,0 +1,61 @@ +package org.hisp.dhis.pbf.impl; + +import java.util.Collection; + +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataset.DataSet; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.pbf.api.PBFDataValue; +import org.hisp.dhis.pbf.api.PBFDataValueService; +import org.hisp.dhis.pbf.api.PBFDataValueStore; +import org.hisp.dhis.period.Period; +import org.springframework.transaction.annotation.Transactional; + +@Transactional +public class DefaultPBFDataValueService implements PBFDataValueService +{ + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + private PBFDataValueStore pbfDataValueStore; + + public void setPbfDataValueStore(PBFDataValueStore pbfDataValueStore) + { + this.pbfDataValueStore = pbfDataValueStore; + } + + // ------------------------------------------------------------------------- + // PBFDataValue + // ------------------------------------------------------------------------- + + @Override + public void addPBFDataValue(PBFDataValue pbfDataValue) + { + pbfDataValueStore.addPBFDataValue( pbfDataValue ); + } + + @Override + public void updatePBFDataValue(PBFDataValue pbfDataValue) + { + pbfDataValueStore.updatePBFDataValue(pbfDataValue); + } + + @Override + public void deletePBFDataValue(PBFDataValue pbfDataValue) + { + pbfDataValueStore.deletePBFDataValue(pbfDataValue); + } + + @Override + public Collection getPBFDataValues( OrganisationUnit organisationUnit, DataSet dataSet, Period period) + { + return pbfDataValueStore.getPBFDataValues(organisationUnit, dataSet, period); + } + + @Override + public PBFDataValue getPBFDataValue( OrganisationUnit organisationUnit, DataSet dataSet, Period period, DataElement dataElement ) + { + return pbfDataValueStore.getPBFDataValue( organisationUnit, dataSet, period, dataElement ); + } +} === added file 'local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/HibernatePBFDataValueStore.java' --- local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/HibernatePBFDataValueStore.java 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/java/org/hisp/dhis/pbf/impl/HibernatePBFDataValueStore.java 2014-01-07 17:56:19 +0000 @@ -0,0 +1,113 @@ +package org.hisp.dhis.pbf.impl; + +import java.util.Collection; +import java.util.Collections; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.criterion.Restrictions; +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataset.DataSet; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.pbf.api.PBFDataValue; +import org.hisp.dhis.pbf.api.PBFDataValueStore; +import org.hisp.dhis.period.Period; +import org.hisp.dhis.period.PeriodStore; + +public class HibernatePBFDataValueStore implements PBFDataValueStore +{ + + // ------------------------------------------------------------------------- + // Dependencies + // ------------------------------------------------------------------------- + + private SessionFactory sessionFactory; + + public void setSessionFactory( SessionFactory sessionFactory ) + { + this.sessionFactory = sessionFactory; + } + + private PeriodStore periodStore; + + public void setPeriodStore( PeriodStore periodStore ) + { + this.periodStore = periodStore; + } + + // ------------------------------------------------------------------------- + // PBFDataValue + // ------------------------------------------------------------------------- + + @Override + public void addPBFDataValue( PBFDataValue pbfDataValue ) + { + pbfDataValue.setPeriod( periodStore.reloadForceAddPeriod( pbfDataValue.getPeriod() ) ); + + Session session = sessionFactory.getCurrentSession(); + + session.save( pbfDataValue ); + } + + @Override + public void updatePBFDataValue( PBFDataValue pbfDataValue ) + { + pbfDataValue.setPeriod( periodStore.reloadForceAddPeriod( pbfDataValue.getPeriod() ) ); + + Session session = sessionFactory.getCurrentSession(); + + session.update( pbfDataValue ); + } + + @Override + public void deletePBFDataValue( PBFDataValue pbfDataValue ) + { + Session session = sessionFactory.getCurrentSession(); + + session.delete( pbfDataValue ); + } + + + @Override + public PBFDataValue getPBFDataValue( OrganisationUnit organisationUnit, DataSet dataSet, Period period, DataElement dataElement ) + { + Period storedPeriod = periodStore.reloadPeriod( period ); + + if ( storedPeriod == null ) + { + return null; + } + + Session session = sessionFactory.getCurrentSession(); + + Criteria criteria = session.createCriteria( PBFDataValue.class ); + criteria.add( Restrictions.eq( "organisationUnit", organisationUnit ) ); + criteria.add( Restrictions.eq( "period", storedPeriod ) ); + criteria.add( Restrictions.eq( "dataSet", dataSet ) ); + criteria.add( Restrictions.eq( "dataElement", dataElement ) ); + + return ( PBFDataValue ) criteria.uniqueResult(); + } + + @Override + public Collection getPBFDataValues( OrganisationUnit organisationUnit, DataSet dataSet, Period period ) + { + Period storedPeriod = periodStore.reloadPeriod( period ); + + if ( storedPeriod == null ) + { + return Collections.emptySet(); + } + + Session session = sessionFactory.getCurrentSession(); + + Criteria criteria = session.createCriteria( PBFDataValue.class ); + criteria.add( Restrictions.eq( "organisationUnit", organisationUnit ) ); + criteria.add( Restrictions.eq( "period", storedPeriod ) ); + criteria.add( Restrictions.eq( "dataSet", dataSet ) ); + + return criteria.list(); + } + +} === modified file 'local/in/dhis-web-maintenance-pbf/src/main/resources/META-INF/dhis/beans.xml' --- local/in/dhis-web-maintenance-pbf/src/main/resources/META-INF/dhis/beans.xml 2014-01-07 11:54:34 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/resources/META-INF/dhis/beans.xml 2014-01-07 17:56:19 +0000 @@ -10,11 +10,20 @@ + + + + + + + + + @@ -138,6 +147,7 @@ + @@ -148,7 +158,8 @@ - + + \ No newline at end of file === added file 'local/in/dhis-web-maintenance-pbf/src/main/resources/org/hisp/dhis/pbf/hibernate/PBFDataValue.hbm.xml' --- local/in/dhis-web-maintenance-pbf/src/main/resources/org/hisp/dhis/pbf/hibernate/PBFDataValue.hbm.xml 1970-01-01 00:00:00 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/resources/org/hisp/dhis/pbf/hibernate/PBFDataValue.hbm.xml 2014-01-07 17:56:19 +0000 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + === modified file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/pbfDataEntry.js' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/pbfDataEntry.js 2014-01-07 10:10:48 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/javascript/pbfDataEntry.js 2014-01-07 17:56:19 +0000 @@ -146,6 +146,75 @@ } +function savePBFDataValue( dataElementId, valueType ) +{ + var period = document.getElementById("selectedPeriodId").value; + var dataSetId = $( '#dataSetId' ).val(); + var valueId = ""; + if( valueType == 1 ) + { + valueId = "pbfdv_qty_reported_"+dataElementId; + } + else + { + valueId = "pbfdv_qty_validated_"+dataElementId; + } + + var fieldId = "#"+valueId; + var defaultValue = document.getElementById(valueId).defaultValue; + var value = document.getElementById( valueId ).value; + + if(defaultValue != value) + { + var dataValue = { + 'dataElementId' : dataElementId, + 'valueType' : valueType, + 'dataSetId' : dataSetId, + 'organisationUnitId' : $("#selectedOrgunitID").val(), + 'periodIso' : period, + 'value' : value + }; + jQuery.ajax( { + url: 'saveValue.action', + data: dataValue, + dataType: 'json', + success: handleSuccess, + error: handleError + } ); + } + + function handleSuccess( json ) + { + var code = json.c; + + alert(code) + if ( code == '0' || code == 0) // Value successfully saved on server + { + markValue( fieldId, COLOR_GREEN ); + } + else if ( code == 2 ) + { + markValue( fieldId, COLOR_RED ); + window.alert( i18n_saving_value_failed_dataset_is_locked ); + } + else // Server error during save + { + markValue( fieldId, COLOR_RED ); + window.alert( i18n_saving_value_failed_status_code + '\n\n' + code ); + } + } + + function handleError( jqXHR, textStatus, errorThrown ) + { + markValue( fieldId, COLOR_GREEN ); + } + + function markValue( fieldId, color ) + { + document.getElementById(valueId).style.backgroundColor = color; + } +} + // load periods function loadPeriods() { === modified file 'local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/loadDataEntryForm.vm' --- local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/loadDataEntryForm.vm 2014-01-07 12:44:16 +0000 +++ local/in/dhis-web-maintenance-pbf/src/main/webapp/dhis-web-maintenance-pbf/loadDataEntryForm.vm 2014-01-07 17:56:19 +0000 @@ -21,7 +21,94 @@ #end #end - +#set( $tabIndex = 1 ) +#if ( $dataElements.size() > 0) + + + + + + + + + + + #set( $mark = false ) + #foreach($dataElement in $dataElements ) + + + #set( $count = 1) + #set( $pbfDataValue = $!pbfDataValueMap.get( $dataElement ) ) + + + + + + #end + #set( $count = $count + 1) + + + + #set( $tabIndex = $tabIndex + 1 ) + #set( $mark = !$mark) + #end + + + + + + + + +
$i18n.getString( "dataelement" )$i18n.getString( "qty_reported" )$i18n.getString( "qty_validated" )$i18n.getString( "tariff_amount" )$i18n.getString( "total" )
+ + + + + + + +
     + +
0) @@ -92,4 +179,5 @@ \ No newline at end of file