dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #34049
[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 > </td>
+ <td > </td>
+ <td > </td>
+ <td > </td>
+ <td > </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>