added timeline details to Center

This commit is contained in:
ashok-conflux
2013-12-16 17:08:08 +05:30
committed by Vishwas Babu A J
parent fb45948c0d
commit 49a2f30e2c
3 changed files with 72 additions and 14 deletions
@@ -34,7 +34,7 @@ public class CenterData {
private final Long staffId;
private final String staffName;
private final String hierarchy;
private final GroupTimelineData timeline;
// associations
private final Collection<GroupGeneralData> groupMembers;
@@ -49,20 +49,21 @@ public class CenterData {
final Collection<StaffData> staffOptions, final Collection<GroupGeneralData> groupMembersOptions) {
final CalendarData collectionMeetingCalendar = null;
final Collection<CodeValueData> closureReasons = null;
final GroupTimelineData timeline = null;
return new CenterData(null, null, null, null, activationDate, officeId, null, null, null, null, null, officeOptions, staffOptions,
groupMembersOptions, collectionMeetingCalendar, closureReasons);
groupMembersOptions, collectionMeetingCalendar, closureReasons, timeline);
}
public static CenterData withTemplate(final CenterData templateCenter, final CenterData center) {
return new CenterData(center.id, center.name, center.externalId, center.status, center.activationDate, center.officeId,
center.officeName, center.staffId, center.staffName, center.hierarchy, center.groupMembers, templateCenter.officeOptions,
templateCenter.staffOptions, templateCenter.groupMembersOptions, templateCenter.collectionMeetingCalendar,
templateCenter.closureReasons);
templateCenter.closureReasons, center.timeline);
}
public static CenterData instance(final Long id, final String name, final String externalId, final EnumOptionData status,
final LocalDate activationDate, final Long officeId, final String officeName, final Long staffId, final String staffName,
final String hierarchy) {
final String hierarchy, final GroupTimelineData timeline) {
final Collection<GroupGeneralData> groupMembers = null;
final Collection<OfficeData> officeOptions = null;
@@ -72,7 +73,7 @@ public class CenterData {
final Collection<CodeValueData> closureReasons = null;
return new CenterData(id, name, externalId, status, activationDate, officeId, officeName, staffId, staffName, hierarchy,
groupMembers, officeOptions, staffOptions, groupMembersOptions, collectionMeetingCalendar, closureReasons);
groupMembers, officeOptions, staffOptions, groupMembersOptions, collectionMeetingCalendar, closureReasons, timeline);
}
public static CenterData withAssociations(final CenterData centerData, final Collection<GroupGeneralData> groupMembers,
@@ -80,7 +81,7 @@ public class CenterData {
return new CenterData(centerData.id, centerData.name, centerData.externalId, centerData.status, centerData.activationDate,
centerData.officeId, centerData.officeName, centerData.staffId, centerData.staffName, centerData.hierarchy, groupMembers,
centerData.officeOptions, centerData.staffOptions, centerData.groupMembersOptions, collectionMeetingCalendar,
centerData.closureReasons);
centerData.closureReasons, centerData.timeline);
}
public static CenterData withClosureReasons(final Collection<CodeValueData> closureReasons) {
@@ -99,15 +100,16 @@ public class CenterData {
final Collection<StaffData> staffOptions = null;
final Collection<GroupGeneralData> groupMembersOptions = null;
final CalendarData collectionMeetingCalendar = null;
final GroupTimelineData timeline = null;
return new CenterData(id, name, externalId, status, activationDate, officeId, officeName, staffId, staffName, hierarchy,
groupMembers, officeOptions, staffOptions, groupMembersOptions, collectionMeetingCalendar, closureReasons);
groupMembers, officeOptions, staffOptions, groupMembersOptions, collectionMeetingCalendar, closureReasons, timeline);
}
private CenterData(final Long id, final String name, final String externalId, final EnumOptionData status,
final LocalDate activationDate, final Long officeId, final String officeName, final Long staffId, final String staffName,
final String hierarchy, final Collection<GroupGeneralData> groupMembers, final Collection<OfficeData> officeOptions,
final Collection<StaffData> staffOptions, final Collection<GroupGeneralData> groupMembersOptions,
final CalendarData collectionMeetingCalendar, final Collection<CodeValueData> closureReasons) {
final CalendarData collectionMeetingCalendar, final Collection<CodeValueData> closureReasons, final GroupTimelineData timeline) {
this.id = id;
this.name = name;
this.externalId = externalId;
@@ -132,6 +134,7 @@ public class CenterData {
this.groupMembersOptions = groupMembersOptions;
this.collectionMeetingCalendar = collectionMeetingCalendar;
this.closureReasons = closureReasons;
this.timeline = timeline;
}
public Long officeId() {
@@ -8,8 +8,8 @@ package org.mifosplatform.portfolio.group.data;
import org.joda.time.LocalDate;
/**
* Immutable data object represent the important time-line events of a loan
* application and loan.
* Immutable data object represent the important time-line events of a group/center.
*
*/
@SuppressWarnings("unused")
public class GroupTimelineData {
@@ -33,6 +33,7 @@ import org.mifosplatform.portfolio.client.service.ClientReadPlatformService;
import org.mifosplatform.portfolio.group.api.GroupingTypesApiConstants;
import org.mifosplatform.portfolio.group.data.CenterData;
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
import org.mifosplatform.portfolio.group.data.GroupTimelineData;
import org.mifosplatform.portfolio.group.domain.GroupTypes;
import org.mifosplatform.portfolio.group.domain.GroupingTypeEnumerations;
import org.mifosplatform.portfolio.group.exception.CenterNotFoundException;
@@ -120,9 +121,25 @@ public class CenterReadPlatformServiceImpl implements CenterReadPlatformService
+ "g.office_id as officeId, o.name as officeName, " //
+ "g.staff_id as staffId, s.display_name as staffName, " //
+ "g.status_enum as statusEnum, g.activation_date as activationDate, " //
+ "g.hierarchy as hierarchy " //
+ "g.hierarchy as hierarchy, " //
+ "g.closedon_date as closedOnDate, "
+ "g.submittedon_date as submittedOnDate, "
+ "sbu.username as submittedByUsername, "
+ "sbu.firstname as submittedByFirstname, "
+ "sbu.lastname as submittedByLastname, "
+ "clu.username as closedByUsername, "
+ "clu.firstname as closedByFirstname, "
+ "clu.lastname as closedByLastname, "
+ "acu.username as activatedByUsername, "
+ "acu.firstname as activatedByFirstname, "
+ "acu.lastname as activatedByLastname "
+ "from m_group g " //
+ "join m_office o on o.id = g.office_id " + "left join m_staff s on s.id = g.staff_id ";
+ "join m_office o on o.id = g.office_id "
+ "left join m_staff s on s.id = g.staff_id "
+ "left join m_group pg on pg.id = g.parent_id "
+ "left join m_appuser sbu on sbu.id = g.submittedon_userid "
+ "left join m_appuser acu on acu.id = g.activatedon_userid "
+ "left join m_appuser clu on clu.id = g.closedon_userid ";
private static final class CenterDataMapper implements RowMapper<CenterData> {
@@ -151,8 +168,27 @@ public class CenterReadPlatformServiceImpl implements CenterReadPlatformService
final Long staffId = JdbcSupport.getLong(rs, "staffId");
final String staffName = rs.getString("staffName");
final String hierarchy = rs.getString("hierarchy");
final LocalDate closedOnDate = JdbcSupport.getLocalDate(rs, "closedOnDate");
final String closedByUsername = rs.getString("closedByUsername");
final String closedByFirstname = rs.getString("closedByFirstname");
final String closedByLastname = rs.getString("closedByLastname");
return CenterData.instance(id, name, externalId, status, activationDate, officeId, officeName, staffId, staffName, hierarchy);
final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, "submittedOnDate");
final String submittedByUsername = rs.getString("submittedByUsername");
final String submittedByFirstname = rs.getString("submittedByFirstname");
final String submittedByLastname = rs.getString("submittedByLastname");
final String activatedByUsername = rs.getString("activatedByUsername");
final String activatedByFirstname = rs.getString("activatedByFirstname");
final String activatedByLastname = rs.getString("activatedByLastname");
final GroupTimelineData timeline = new GroupTimelineData (submittedOnDate, submittedByUsername, submittedByFirstname, submittedByLastname,
activationDate, activatedByUsername, activatedByFirstname, activatedByLastname, closedOnDate, closedByUsername,
closedByFirstname, closedByLastname);
return CenterData.instance(id, name, externalId, status, activationDate, officeId, officeName, staffId, staffName, hierarchy, timeline);
}
}
@@ -185,9 +221,28 @@ public class CenterReadPlatformServiceImpl implements CenterReadPlatformService
final Long staffId = JdbcSupport.getLong(rs, "staffId");
final String staffName = rs.getString("staffName");
final String hierarchy = rs.getString("hierarchy");
final LocalDate closedOnDate = JdbcSupport.getLocalDate(rs, "closedOnDate");
final String closedByUsername = rs.getString("closedByUsername");
final String closedByFirstname = rs.getString("closedByFirstname");
final String closedByLastname = rs.getString("closedByLastname");
final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, "submittedOnDate");
final String submittedByUsername = rs.getString("submittedByUsername");
final String submittedByFirstname = rs.getString("submittedByFirstname");
final String submittedByLastname = rs.getString("submittedByLastname");
final String activatedByUsername = rs.getString("activatedByUsername");
final String activatedByFirstname = rs.getString("activatedByFirstname");
final String activatedByLastname = rs.getString("activatedByLastname");
final GroupTimelineData timeline = new GroupTimelineData (submittedOnDate, submittedByUsername, submittedByFirstname, submittedByLastname,
activationDate, activatedByUsername, activatedByFirstname, activatedByLastname, closedOnDate, closedByUsername,
closedByFirstname, closedByLastname);
return GroupGeneralData.instance(id, name, externalId, status, activationDate, officeId, officeName, null, null, staffId,
staffName, hierarchy,null);
staffName, hierarchy,timeline);
}
}