← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 17464: local/in Add Partner Information API and Service in Maintenance RBF

 

------------------------------------------------------------
revno: 17464
committer: Mithilesh Kumar Thakur <mithilesh.hisp@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2014-11-14 10:23:57 +0000
message:
  local/in Add Partner Information API and Service in Maintenance RBF
added:
  local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Partner.java
  local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerService.java
  local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerStore.java
  local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPartnerService.java
  local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernatePartnerStore.java
  local/in/dhis-web-maintenance-rbf/src/main/resources/org/hisp/dhis/rbf/hibernate/Partner.hbm.xml
  local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm_03_11_2014.vm
modified:
  local/in/dhis-web-maintenance-rbf/src/main/resources/META-INF/dhis/beans.xml


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== added file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Partner.java'
--- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Partner.java	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/Partner.java	2014-11-14 10:23:57 +0000
@@ -0,0 +1,190 @@
+package org.hisp.dhis.rbf.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.option.Option;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+
+/**
+ * @author Mithilesh Kumar Thakur
+ */
+public class Partner implements Serializable
+{
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    
+    private OrganisationUnit organisationUnit;
+    
+    private DataSet dataSet;
+    
+    private DataElement dataElement;
+    
+    private Date startDate;
+
+    private Date endDate;
+    
+    // for Partner value
+    private Option option;
+    
+    private String storedBy;
+
+    private Date timestamp;
+    
+    // -------------------------------------------------------------------------
+    // Constructors
+    // -------------------------------------------------------------------------
+    public Partner()
+    {
+
+    }
+
+    public Partner( OrganisationUnit organisationUnit, DataSet dataSet, DataElement dataElement, Date startDate, Date endDate )
+    {
+        this.organisationUnit = organisationUnit;
+        this.dataSet = dataSet;
+        this.dataElement = dataElement;
+        this.startDate = startDate;
+        this.endDate = endDate;
+    }
+
+    public Partner( OrganisationUnit organisationUnit, DataSet dataSet, DataElement dataElement, Date startDate, Date endDate, Option option )
+    {
+        this.organisationUnit = organisationUnit;
+        this.dataSet = dataSet;
+        this.dataElement = dataElement;
+        this.startDate = startDate;
+        this.endDate = endDate;
+        this.option = option;
+    }
+
+    // -------------------------------------------------------------------------
+    // hashCode and equals
+    // -------------------------------------------------------------------------
+
+    @Override
+    public boolean equals( Object o )
+    {
+        if ( this == o )
+        {
+            return true;
+        }
+
+        if ( o == null )
+        {
+            return false;
+        }
+
+        if ( !(o instanceof Partner) )
+        {
+            return false;
+        }
+
+        final Partner other = (Partner) o;
+
+        return organisationUnit.equals( other.getOrganisationUnit() ) && dataSet.equals( other.getDataSet() ) && dataElement.equals( other.getDataElement() );
+        
+    }
+
+    @Override
+    public int hashCode()
+    {
+        final int prime = 31;
+        int result = 1;
+        
+        result = result * prime + organisationUnit.hashCode();
+        result = result * prime + dataSet.hashCode();
+        result = result * prime + dataElement.hashCode();
+       
+        return result;
+    }
+
+    // -------------------------------------------------------------------------
+    // Getters and setters
+    // -------------------------------------------------------------------------    
+    
+    public OrganisationUnit getOrganisationUnit()
+    {
+        return organisationUnit;
+    }
+
+    public void setOrganisationUnit( OrganisationUnit organisationUnit )
+    {
+        this.organisationUnit = organisationUnit;
+    }
+
+    public DataSet getDataSet()
+    {
+        return dataSet;
+    }
+
+    public void setDataSet( DataSet dataSet )
+    {
+        this.dataSet = dataSet;
+    }
+
+    public DataElement getDataElement()
+    {
+        return dataElement;
+    }
+
+    public void setDataElement( DataElement dataElement )
+    {
+        this.dataElement = dataElement;
+    }
+
+    public Date getStartDate()
+    {
+        return startDate;
+    }
+
+    public void setStartDate( Date startDate )
+    {
+        this.startDate = startDate;
+    }
+
+    public Date getEndDate()
+    {
+        return endDate;
+    }
+
+    public void setEndDate( Date endDate )
+    {
+        this.endDate = endDate;
+    }
+
+    public Option getOption()
+    {
+        return option;
+    }
+
+    public void setOption( Option option )
+    {
+        this.option = option;
+    }
+
+    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;
+    }    
+}

=== added file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerService.java'
--- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerService.java	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerService.java	2014-11-14 10:23:57 +0000
@@ -0,0 +1,34 @@
+package org.hisp.dhis.rbf.api;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.Map;
+
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+
+/**
+ * @author Mithilesh Kumar Thakur
+ */
+public interface PartnerService
+{
+    String ID = PartnerService.class.getName();
+    
+    void addPartner( Partner partner );
+    
+    void updatePartner( Partner partner );
+    
+    void deletePartner( Partner partner );
+    
+    Partner getPartner( OrganisationUnit organisationUnit, DataSet dataSet, DataElement dataElement, Date startDate, Date endDate );
+    
+    Collection<Partner> getAllPartner();
+    
+    Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataSet dataSet );
+    
+    Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataElement dataElement );
+    
+    Map<String, Integer> getOrgUnitCountFromPartner( Integer organisationUnitId, Integer dataSetId, Integer dataElementId, Integer optionId, String startDate, String endDate );
+    
+}

=== added file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerStore.java'
--- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerStore.java	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/api/PartnerStore.java	2014-11-14 10:23:57 +0000
@@ -0,0 +1,34 @@
+package org.hisp.dhis.rbf.api;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.Map;
+
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+
+/**
+ * @author Mithilesh Kumar Thakur
+ */
+public interface PartnerStore
+{
+    String ID = PartnerStore.class.getName();
+    
+    void addPartner( Partner partner );
+    
+    void updatePartner( Partner partner );
+    
+    void deletePartner( Partner partner );
+    
+    Partner getPartner( OrganisationUnit organisationUnit, DataSet dataSet, DataElement dataElement, Date startDate, Date endDate );
+    
+    Collection<Partner> getAllPartner();
+    
+    Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataSet dataSet );
+    
+    Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataElement dataElement );
+    
+    Map<String, Integer> getOrgUnitCountFromPartner( Integer organisationUnitId, Integer dataSetId, Integer dataElementId, Integer optionId, String startDate, String endDate );
+    
+}

=== added file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPartnerService.java'
--- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPartnerService.java	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/DefaultPartnerService.java	2014-11-14 10:23:57 +0000
@@ -0,0 +1,82 @@
+package org.hisp.dhis.rbf.impl;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.Map;
+
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.rbf.api.Partner;
+import org.hisp.dhis.rbf.api.PartnerService;
+import org.hisp.dhis.rbf.api.PartnerStore;
+
+/**
+ * @author Mithilesh Kumar Thakur
+ */
+public class DefaultPartnerService implements PartnerService
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private PartnerStore partnerStore;
+
+    public void setPartnerStore( PartnerStore partnerStore )
+    {
+        this.partnerStore = partnerStore;
+    }
+
+
+    // -------------------------------------------------------------------------
+    // Partner
+    // -------------------------------------------------------------------------
+
+    @Override
+    public void addPartner( Partner partner )
+    {
+        partnerStore.addPartner( partner );;
+    }
+
+    @Override
+    public void updatePartner( Partner partner )
+    {
+        partnerStore.updatePartner( partner );
+    }
+
+    @Override
+    public void deletePartner( Partner partner )
+    {
+        partnerStore.deletePartner( partner );
+    }
+    
+    @Override
+    public Partner getPartner( OrganisationUnit organisationUnit, DataSet dataSet, DataElement dataElement, Date startDate, Date endDate )
+    {
+        return partnerStore.getPartner( organisationUnit, dataSet, dataElement, startDate, endDate );
+    }    
+    
+    @Override
+    public Collection<Partner> getAllPartner()
+    {
+        return partnerStore.getAllPartner();
+    }
+
+    @Override
+    public Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataSet dataSet )
+    {
+        return partnerStore.getPartner( organisationUnit, dataSet );
+    }
+
+    @Override
+    public Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataElement dataElement )
+    {
+        return partnerStore.getPartner( organisationUnit, dataElement );
+    }    
+    
+    public Map<String, Integer> getOrgUnitCountFromPartner( Integer organisationUnitId, Integer dataSetId, Integer dataElementId, Integer optionId, String startDate, String endDate )
+    {
+        return partnerStore.getOrgUnitCountFromPartner( organisationUnitId, dataSetId, dataElementId, optionId, startDate, endDate );
+    }    
+    
+}

=== added file 'local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernatePartnerStore.java'
--- local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernatePartnerStore.java	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/java/org/hisp/dhis/rbf/impl/HibernatePartnerStore.java	2014-11-14 10:23:57 +0000
@@ -0,0 +1,173 @@
+package org.hisp.dhis.rbf.impl;
+
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.hibernate.Criteria;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.criterion.Order;
+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.rbf.api.Partner;
+import org.hisp.dhis.rbf.api.PartnerStore;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.support.rowset.SqlRowSet;
+
+/**
+ * @author Mithilesh Kumar Thakur
+ */
+public class HibernatePartnerStore implements PartnerStore
+{
+    
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private SessionFactory sessionFactory;
+
+    public void setSessionFactory( SessionFactory sessionFactory )
+    {
+        this.sessionFactory = sessionFactory;
+    }
+    
+    private JdbcTemplate jdbcTemplate;
+
+    public void setJdbcTemplate( JdbcTemplate jdbcTemplate )
+    {
+        this.jdbcTemplate = jdbcTemplate;
+    }
+   
+    // -------------------------------------------------------------------------
+    // Partner
+    // -------------------------------------------------------------------------
+  
+    @Override
+    public void addPartner( Partner partner )
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        session.save( partner );
+    }
+
+    @Override
+    public void updatePartner( Partner partner )
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        session.update( partner );
+    }
+
+    @Override
+    public void deletePartner( Partner partner )
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        session.delete( partner );
+    }
+    
+    @Override
+    public Partner getPartner( OrganisationUnit organisationUnit, DataSet dataSet, DataElement dataElement, Date startDate, Date endDate )
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        Criteria criteria = session.createCriteria( Partner.class );
+        criteria.add( Restrictions.eq( "organisationUnit", organisationUnit ) );
+        criteria.add( Restrictions.eq( "dataSet", dataSet ) );
+        criteria.add( Restrictions.eq( "dataElement", dataElement ) );        
+        criteria.add( Restrictions.eq( "startDate", startDate ) );
+        criteria.add( Restrictions.eq( "endDate", endDate ) );
+
+        return (Partner) criteria.uniqueResult();
+    }    
+    
+    @SuppressWarnings( "unchecked" )
+    @Override
+    public Collection<Partner> getAllPartner()
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        Criteria criteria = session.createCriteria( Partner.class );
+
+        return criteria.list();
+    }
+   
+    @SuppressWarnings( "unchecked" )
+    @Override
+    public Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataSet dataSet )
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        Criteria criteria = session.createCriteria( Partner.class );
+        criteria.add( Restrictions.eq( "organisationUnit", organisationUnit ) );
+        criteria.add( Restrictions.eq( "dataSet", dataSet ) );
+
+        return criteria.list();
+    }    
+    
+    @SuppressWarnings( "unchecked" )
+    @Override
+    public Collection<Partner> getPartner( OrganisationUnit organisationUnit, DataElement dataElement )
+    {
+        Session session = sessionFactory.getCurrentSession();
+
+        Criteria criteria = session.createCriteria( Partner.class );
+        criteria.add( Restrictions.eq( "organisationUnit", organisationUnit ) );
+        criteria.add( Restrictions.eq( "dataElement", dataElement ) );
+        criteria.addOrder(Order.asc("dataSet"));
+
+        return criteria.list();
+    }    
+    
+    // get OrgUnit Count FromPartner
+    public Map<String, Integer> getOrgUnitCountFromPartner( Integer organisationUnitId, Integer dataSetId, Integer dataElementId, Integer optionId, String startDate, String endDate )
+    {
+        Map<String, Integer> partnerOrgUnitCountMap = new HashMap<String, Integer>();
+        
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        //String curPeriod = simpleDateFormat.format( period.getEndDate() );
+        
+        try
+        {
+            String query = "SELECT datasetid, dataelementid, optionid, startdate, enddate ,COUNT( organisationunitid) FROM partner " +
+                            " WHERE " +
+                                " organisationunitid = " + organisationUnitId + " AND " +
+                                " datasetid = " + dataSetId + " AND " +
+                                " dataelementid = " + dataElementId + " AND " +
+                                " optionid = " + optionId + " AND " +
+                                " startdate = '" + startDate + "' AND  enddate >= '" + endDate +"' GROUP BY datasetid, dataelementid, startdate, enddate, optionid ";
+            
+            
+            SqlRowSet rs = jdbcTemplate.queryForRowSet( query );
+            while ( rs.next() )
+            {
+                Integer dataSetID = rs.getInt( 1 );
+                Integer dataElementID = rs.getInt( 2 );
+                Integer optionID = rs.getInt( 3 );
+                String sDate = simpleDateFormat.format( rs.getDate( 4 ) );
+                String eDate = simpleDateFormat.format( rs.getDate( 5 ) );
+                Integer orgUnitCount = rs.getInt( 6 );
+                
+                if( orgUnitCount != null && orgUnitCount > 0  )
+                {
+                    
+                    String key = dataSetID + ":" + dataElementID + ":" + optionID + ":" + sDate + ":" + eDate;
+                    partnerOrgUnitCountMap.put( key, orgUnitCount );
+                }
+            }
+        }
+        catch( Exception e )
+        {
+            System.out.println(" In Partner Data Exception :"+ e.getMessage() );
+        }
+        
+        return partnerOrgUnitCountMap;
+    }
+        
+    
+}

=== modified file 'local/in/dhis-web-maintenance-rbf/src/main/resources/META-INF/dhis/beans.xml'
--- local/in/dhis-web-maintenance-rbf/src/main/resources/META-INF/dhis/beans.xml	2014-10-24 11:05:35 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/resources/META-INF/dhis/beans.xml	2014-11-14 10:23:57 +0000
@@ -105,15 +105,18 @@
     </bean>    
     
     
-    
-    
-    
-    
-    
-    
-    
-    
-    
+    <!--  PartnerStore -->
+    <bean id="org.hisp.dhis.rbf.api.PartnerStore" class="org.hisp.dhis.rbf.impl.HibernatePartnerStore">
+        <property name="sessionFactory" ref="sessionFactory" />
+        <property name="jdbcTemplate" ref="jdbcTemplate" />
+    </bean>    
+    
+	<!--  PartnerService -->
+    <bean id="org.hisp.dhis.rbf.api.PartnerService" class="org.hisp.dhis.rbf.impl.DefaultPartnerService">
+        <property name="partnerStore" ref="org.hisp.dhis.rbf.api.PartnerStore" />
+    </bean>     
+    
+   
 	<!-- Home page -->
 	<bean id="org.hisp.dhis.rbf.action.NoAction" class="org.hisp.dhis.rbf.action.NoAction" scope="prototype">
     </bean>

=== added file 'local/in/dhis-web-maintenance-rbf/src/main/resources/org/hisp/dhis/rbf/hibernate/Partner.hbm.xml'
--- local/in/dhis-web-maintenance-rbf/src/main/resources/org/hisp/dhis/rbf/hibernate/Partner.hbm.xml	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/resources/org/hisp/dhis/rbf/hibernate/Partner.hbm.xml	2014-11-14 10:23:57 +0000
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+  "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd";>
+
+<hibernate-mapping>
+  <class name="org.hisp.dhis.rbf.api.Partner" table="partner">
+
+    <composite-id>      
+      <key-many-to-one name="organisationUnit" class="org.hisp.dhis.organisationunit.OrganisationUnit" column="organisationunitid" foreign-key="fk_partner_organisationunitid" />      
+      <key-many-to-one name="dataSet" class="org.hisp.dhis.dataset.DataSet" column="datasetid" foreign-key="fk_partner_datasetid" />
+      <key-many-to-one name="dataElement" class="org.hisp.dhis.dataelement.DataElement" column="dataelementid" foreign-key="fk_partner_dataelementid" />
+      <key-property name="startDate" column="startdate" />
+      <key-property name="endDate" column="enddate" />
+    </composite-id>
+    
+    <many-to-one name="option" class="org.hisp.dhis.option.Option" column="optionid" not-null="true" foreign-key="fk_partner_optionid" />  
+
+    <property name="storedBy" column="storedby" length="100" />
+
+    <property name="timestamp" column="lastupdated" type="timestamp" />
+
+  </class>
+</hibernate-mapping>

=== added file 'local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm_03_11_2014.vm'
--- local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm_03_11_2014.vm	1970-01-01 00:00:00 +0000
+++ local/in/dhis-web-maintenance-rbf/src/main/webapp/dhis-web-maintenance-rbf/loadDataEntryForm_03_11_2014.vm	2014-11-14 10:23:57 +0000
@@ -0,0 +1,423 @@
+
+<script type="text/javascript">
+
+	var utilizationRateTariffMap = new Object();
+	
+	#foreach( $utilizationRateDe in $utilizationRateDataElements )
+		utilizationRateTariffMap["$utilizationRateDe.getId()"] = '$utilizationRatesMap.get($utilizationRateDe.getId())';
+	#end
+	
+	document.getElementById("utilizationRate").value = '$!utilizationRate';
+	
+	var urDEListSize = document.getElementById("urDataElementSize").value;
+	
+	//alert( urDEListSize );
+	if( urDEListSize > 0 )
+	{
+		//$( '#urDataElementDiv' ).show();
+		//alert( "Greater " + urDEListSize );
+		//document.getElementById("urDataElementLavel").style.visibility= "visible";
+		//document.getElementById("urDataElementText").style.visibility= "visible";
+		
+		showById('urDataElementLavel');
+		showById('urDataElementText');
+		
+	}
+	
+	else
+	{
+		//$( '#urDataElementDiv' ).hide();
+		//alert( "less and equal " + urDEListSize );
+		//document.getElementById("urDataElementLavel").style.visibility= "hidden";
+		//document.getElementById("urDataElementText").style.visibility= "hidden";
+		
+		hideById('urDataElementLavel');
+		hideById('urDataElementText');
+	}
+		
+	//getUtilizationRateTariffValue();
+		
+</script>
+
+
+## Macro for generating the jQuery validation rules 
+
+#macro( validate $type $require )
+  #if( $type == "NUMBER" || $type == "number" )
+    {validate:{ number:true #if($require), required:true #end }}
+  
+	#elseif( $type == "int" )
+  	{validate:{ integer:true #if($require), required:true #end }}
+  	
+  	#elseif( $type == "positiveNumber" )
+  	{validate:{ positive_integer:true #if($require), required:true #end }}
+  	
+	#elseif( $type == "negativeNumber" )
+  	{validate:{ negative_integer:true #if($require), required:true #end }}
+  
+  
+	#elseif( $require )
+    {validate:{required:true}}
+  #end
+#end
+
+<select id="utilizationRateDataElementLB" size="10" style="display:none" >
+    #foreach( $utilizationRateDataElement in $utilizationRateDataElements )
+        <option value="$utilizationRateDataElement.id">$utilizationRateDataElement.name</option>
+    #end
+</select>
+<select id="pbfDataElementLB" size="10" style="display:none" >
+    #foreach($dataElement in $dataElements )
+        <option value="$dataElement.id">$dataElement.name</option>
+    #end
+</select>
+
+<input type="hidden" id='totalDataElementId' name = 'totalDataElementId' value="$!totalDataElementId" />
+<input type="hidden" id='dataSetLockStatus' name = 'dataSetLockStatus' value="$locked" />
+<input type="hidden" id='urDataElementSize' name = 'urDataElementSize' value="$utilizationRateDataElements.size()" />
+
+
+#set( $tabIndex = 1 )
+#if ( $dataElements.size() > 0)
+<!--
+#if( $locked )
+	In side if ---- $locked
+#else
+	In Side else --- $locked
+#end
+-->
+<table class="formSection" id="dataEntryTable" style="width:100%">
+    
+	<tr bgcolor="#CBDDEB">
+		<th style="width:35%;">$i18n.getString( "dataelement" )</th>
+		
+		<th style="width:35%;">$i18n.getString( "partner" )</th>
+		
+		<th style="text-align: center;width:15%;">$i18n.getString( "qty_reported" )</th>
+		
+		#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityValidated") || $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") || $auth.hasAccess( "dhis-web-maintenance-rbf", "pbfAdminDataEntry" ) )
+			<th style="text-align: center;width:15%;">$i18n.getString( "qty_validated" )</th>
+		#end
+
+		#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") || $auth.hasAccess( "dhis-web-maintenance-rbf", "pbfAdminDataEntry" ) )			
+			<th style="text-align: center;width:15%;">$i18n.getString( "qty_external_verification" )</th>
+		#end
+
+		#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityValidated") || $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") || $auth.hasAccess( "dhis-web-maintenance-rbf", "pbfAdminDataEntry" ) )
+			<th style="text-align: center;width:15%;">$i18n.getString( "tariff_amount" )</th>
+			<th style="text-align: center;width:15%;">$i18n.getString( "total" )</th>
+		#end
+			
+	</tr>
+	<script>
+		var allTotal = 0.0;
+	</script>
+	#set( $mark = false )
+	#foreach($dataElement in $dataElements )
+		#if( $mark1 )
+           #set( $mark1 = false )
+        #else
+          #set( $mark1 = true )
+        #end
+		<tr #if( $mark1 ) bgcolor = "#FFFFFF" #else bgcolor="#E0ECF8" #end>
+			<td><label>$dataElement.getDisplayName()</label></td>
+			
+			#set( $count = 0)						
+			#set( $pbfDataValue = $!pbfDataValueMap.get( $dataElement ) )
+
+            <td><label>$!pbfDataValue.getOption().getDisplayName()</label></td>				
+				
+				#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "pbfAdminDataEntry" ) )
+					<td>
+        				<input onblur="savePBFDataValue('$dataElement.id', 1 )" type="text" name="pbfdv_qty_reported_$dataElement.id" id="pbfdv_qty_reported_$dataElement.id" 
+        						value="$!pbfDataValue.quantityReported" tabindex="$tabIndex" style="text-align: center;" 
+        						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+        						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+        						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+        						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+        						#end  />
+        			</td>
+					<td>
+        				<input onblur="savePBFDataValue('$dataElement.id', 2 )" onkeyup="calTariffVal('$dataElement.id')" type="text" name="pbfdv_qty_validated_$dataElement.id" id="pbfdv_qty_validated_$dataElement.id" 
+        						value="$!pbfDataValue.quantityValidated" tabindex="$tabIndex" style="text-align: center;" 
+        						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+        						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+        						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+        						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+        						#end class="quantity$count"  />
+        			</td>
+        				<script>
+        					function changeInt()
+        					{
+        						var tariff = 0.0;
+        					if('$!pbfDataValue.tariffAmount' != '' )
+        					{
+        						tariff = parseFloat($pbfDataValue.tariffAmount);
+        						$('#pbfdv_tariff_amt_'+$dataElement.id).val(tariff);
+        					}					
+        											
+        					}
+        					changeInt();
+        				</script>
+						
+						<td>
+            				<input onblur="savePBFDataValue('$dataElement.id', 3 )" type="text" name="pbfdv_qty_external_verification_$dataElement.id" id="pbfdv_qty_external_verification_$dataElement.id" 
+            						value="$!pbfDataValue.getQuantityExternalVerification()" tabindex="$tabIndex" style="text-align: center;" 
+            						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+            						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+            						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+            						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+            						#end  />
+    					</td>
+        				<script>
+        					function changeInt()
+        					{
+        						var tariff = 0.0;
+        					if('$!pbfDataValue.tariffAmount' != '' )
+        					{
+        						tariff = parseFloat($pbfDataValue.tariffAmount);
+        						$('#pbfdv_tariff_amt_'+$dataElement.id).val(tariff);
+        					}					
+        											
+        					}
+        					changeInt();
+        				</script>							
+				#else
+        			<td>
+        				<input onblur="savePBFDataValue('$dataElement.id', 1 )" type="text" name="pbfdv_qty_reported_$dataElement.id" id="pbfdv_qty_reported_$dataElement.id" 
+        						value="$!pbfDataValue.quantityReported" tabindex="$tabIndex" style="text-align: center;" 
+								#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") ) disabled="disabled" #end
+        						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+        						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+        						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+        						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+        						#end  />
+        			</td>
+				
+					#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityValidated") || $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") )
+            			<td>
+            				<input onblur="savePBFDataValue('$dataElement.id', 2 )" onkeyup="calTariffVal('$dataElement.id')" type="text" name="pbfdv_qty_validated_$dataElement.id" id="pbfdv_qty_validated_$dataElement.id" 
+            						value="$!pbfDataValue.quantityValidated" tabindex="$tabIndex" style="text-align: center;" 
+									#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") ) disabled="disabled" #end
+            						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+            						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+            						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+            						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+            						#end class="quantity$count"  />
+            			</td>
+        				<script>
+        					function changeInt()
+        					{
+        						var tariff = 0.0;
+        					if('$!pbfDataValue.tariffAmount' != '' )
+        					{
+        						tariff = parseFloat($pbfDataValue.tariffAmount);
+        						$('#pbfdv_tariff_amt_'+$dataElement.id).val(tariff);
+        					}					
+        											
+        					}
+        					changeInt();
+        				</script>
+					#end
+					
+					#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") )
+    					<td>
+            				<input onblur="savePBFDataValue('$dataElement.id', 3 )" type="text" name="pbfdv_qty_external_verification_$dataElement.id" id="pbfdv_qty_external_verification_$dataElement.id" 
+            						value="$!pbfDataValue.getQuantityExternalVerification()" tabindex="$tabIndex" style="text-align: center;" 
+            						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+            						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+            						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+            						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+            						#end  />
+    					</td>
+        				<script>
+        					function changeInt()
+        					{
+        						var tariff = 0.0;
+        					if('$!pbfDataValue.tariffAmount' != '' )
+        					{
+        						tariff = parseFloat($pbfDataValue.tariffAmount);
+        						$('#pbfdv_tariff_amt_'+$dataElement.id).val(tariff);
+        					}					
+        											
+        					}
+        					changeInt();
+        				</script>				
+					#end
+
+				#end
+					
+    			<td>
+    				<input type="text" name="pbfdv_tariff_amt_$dataElement.id" id="pbfdv_tariff_amt_$dataElement.id" 
+    						value="$!pbfDataValue.tariffAmount" tabindex="$tabIndex" style="text-align: center;" 
+    						#if($dataElement.type =='number') class="{validate:{number:true}}" 
+    						#elseif($dataElement.type =='int') class="{validate:{integer:true}}"
+    						#elseif($dataElement.type =='positiveNumber') class="{validate:{positive_integer:true}}"
+    						#elseif($dataElement.type =='negativeNumber') class="{validate:{negative_integer:true}}"
+    						#end class="tariff$count" readonly/>
+    			</td>
+    			<td >
+    				<input type="text" id="total_$dataElement.id" style="text-align: center;" readonly  />
+                </td>
+							
+
+				<script >				
+                    function calVal( ) {
+    					var total = 0.0;
+                     	var quantity = 0.0;
+    					var tariff = 0.0;
+    					if($('#pbfdv_tariff_amt_'+$dataElement.id).val() != '')
+    					{						
+    						tariff = parseFloat($('#pbfdv_tariff_amt_'+$dataElement.id).val());
+    					}
+    					else
+    					{
+    						tariff = 0;
+    					}
+    					
+    					if($('#pbfdv_qty_validated_'+$dataElement.id).val() != '')
+    					{
+    						quantity = parseFloat($('#pbfdv_qty_validated_'+$dataElement.id).val());
+    
+    					}
+    					else
+    					{
+    						quantity = 0;
+    					}
+    					
+    					total = quantity * tariff;
+    					
+    					$('#total_'+$dataElement.id).val(total);
+    					
+    					allTotal = allTotal + total;
+    					
+    					$('#all-total').val(allTotal);
+                    }
+                    
+                    calVal();
+                                        
+            	</script>
+			
+			#end
+					
+			#set( $count = $count + 1)
+		</tr>
+		#set( $tabIndex = $tabIndex + 1 )
+		#set( $mark = !$mark)	
+#end
+
+	#if( $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityValidated") || $auth.hasAccess( "dhis-web-maintenance-rbf", "quanitityExternalVerification") )
+		<tr>
+			<td >&nbsp;</td>
+			<td >&nbsp;</td>
+			<td >&nbsp;</td>
+			<td >&nbsp;</td>
+			<td >&nbsp;</td>
+			<td>
+				<input type="text" id="all-total" style="text-align: center;" readonly  />
+            </td>
+		</tr>
+	#end
+	<script>
+		
+function getUtilizationRateTariffValue()
+{
+    var utilizationRate = $('#utilizationRate').val();
+	//alert( utilizationRate );
+	
+	//alert( utilizationRate.length);
+	
+	var tempUtilizationRateDataElements = document.getElementById("utilizationRateDataElementLB");
+   	
+	//if( utilizationRate != "" || utilizationRate != " " || utilizationRate != '' || utilizationRate != ' ' || utilizationRate.length != 0 )
+	//{
+		for ( i=0; i < tempUtilizationRateDataElements.length; i++ )
+        {                    
+			var utilizationRateTariffMapValue1 = utilizationRateTariffMap[tempUtilizationRateDataElements.options[i].value];
+			
+			//alert( utilizationRateTariffMapValue1.split("#").length + " :  " + utilizationRateTariffMapValue1 );
+			
+			for( j=0; j < utilizationRateTariffMapValue1.split("#").length; j++ )
+			{
+		        var utilizationRateTariffMapValue = utilizationRateTariffMapValue1.split("#")[j];
+		        
+                var startRange = parseFloat( utilizationRateTariffMapValue.split(":")[0] );           
+                var endRange = parseFloat( utilizationRateTariffMapValue.split(":")[1] );
+                var tariffValue = parseFloat( utilizationRateTariffMapValue.split(":")[2] );    				
+			
+			    //alert( startRange + "--" + endRange + "--" +  tariffValue + "--" + utilizationRate );
+                
+                
+                if( utilizationRate != "" || utilizationRate != " " || utilizationRate != '' || utilizationRate != ' ' || utilizationRate.length != 0 )
+                {
+                	if( parseFloat( utilizationRate) >= parseFloat( startRange ) && parseFloat( utilizationRate ) < parseFloat( endRange ) )
+                    {	
+    					//alert( "2 Alert" + " : " + startRange + "--" + endRange + "--" +  tariffValue + "--" +  utilizationRate );
+    					var dataElementId = tempUtilizationRateDataElements.options[i].value;
+    					//alert( '#pbfdv_tariff_amt_'+dataElementId );
+                        $('#pbfdv_tariff_amt_'+dataElementId).val( tariffValue );
+    					
+    					//alert( $('#pbfdv_tariff_amt_'+dataElementId).val( parseFloat( tariffValue ) ) );
+                    }
+                }
+                
+                if(  utilizationRate.length == 0 )
+                {
+                	var dataElementId = tempUtilizationRateDataElements.options[i].value;
+					//alert( '#pbfdv_tariff_amt_'+dataElementId );
+                    $('#pbfdv_tariff_amt_'+dataElementId).val( "" );
+                }
+               
+            }
+        }
+	//}
+	            
+}
+
+			
+			function calTariffVal( dataElementId ) {
+					var total = 0.0;
+                 	var quantity = 0.0;
+					var tariff = 0.0;
+					if($('#pbfdv_tariff_amt_'+dataElementId).val() != '')
+					{						
+						tariff = parseFloat($('#pbfdv_tariff_amt_'+dataElementId).val());
+					}
+					else
+					{
+						tariff = 0;
+					}
+					
+					if($('#pbfdv_qty_validated_'+dataElementId).val() != '')
+					{
+						quantity = parseFloat($('#pbfdv_qty_validated_'+dataElementId).val());
+
+					}
+					else
+					{
+						quantity = 0;
+					}
+					
+					total = quantity * tariff;
+					
+					$('#total_'+dataElementId).val(total);
+					
+					var tempPBFDataElements = document.getElementById("pbfDataElementLB");			
+					var allTotal1 = 0.0;
+					for ( i=0; i < tempPBFDataElements.length; i++ )
+					{                
+						var tempDataElementId = tempPBFDataElements.options[i].value;
+						var tempTotal = parseFloat($('#total_'+tempDataElementId).val());
+						allTotal1 = allTotal1 + tempTotal;
+					}								
+			
+					$('#all-total').val(allTotal1);
+					
+					saveTotalValueInDataValue();					
+					
+                }
+				
+				
+	getUtilizationRateTariffValue();				
+	</script>
+</table>