CC-42:adding new transaction date in collection sheet

This commit is contained in:
sachinkulkarni12
2015-12-21 13:21:47 +05:30
parent 3f45a904b1
commit 877ef133a3
3 changed files with 10 additions and 6 deletions
@@ -27,6 +27,7 @@ public class CollectionSheetConstants {
public static final String calendarIdParamName = "calendarId"; public static final String calendarIdParamName = "calendarId";
public static final String officeIdParamName = "officeId"; public static final String officeIdParamName = "officeId";
public static final String staffIdParamName = "staffId"; public static final String staffIdParamName = "staffId";
public static final String isTransactionDateOnNonMeetingDateParamName = "isTransactionDateOnNonMeetingDate";
// attendance parameters // attendance parameters
public static final String clientsAttendanceParamName = "clientsAttendance"; public static final String clientsAttendanceParamName = "clientsAttendance";
@@ -43,7 +44,7 @@ public class CollectionSheetConstants {
bulkSavingsDueTransactionsParamName, PaymentDetailConstants.paymentTypeParamName, bulkSavingsDueTransactionsParamName, PaymentDetailConstants.paymentTypeParamName,
PaymentDetailConstants.accountNumberParamName, PaymentDetailConstants.checkNumberParamName, PaymentDetailConstants.accountNumberParamName, PaymentDetailConstants.checkNumberParamName,
PaymentDetailConstants.routingCodeParamName, PaymentDetailConstants.receiptNumberParamName, PaymentDetailConstants.routingCodeParamName, PaymentDetailConstants.receiptNumberParamName,
PaymentDetailConstants.bankNumberParamName)); PaymentDetailConstants.bankNumberParamName, isTransactionDateOnNonMeetingDateParamName));
public static final Set<String> INDIVIDUAL_COLLECTIONSHEET_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName, public static final Set<String> INDIVIDUAL_COLLECTIONSHEET_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,
dateFormatParamName, transactionDateParamName, actualDisbursementDateParamName, bulkRepaymentTransactionsParamName, dateFormatParamName, transactionDateParamName, actualDisbursementDateParamName, bulkRepaymentTransactionsParamName,
@@ -65,9 +65,9 @@ public class Meeting extends AbstractPersistable<Long> {
this.meetingDate = meetingDate; this.meetingDate = meetingDate;
} }
public static Meeting createNew(final CalendarInstance calendarInstance, final Date meetingDate) { public static Meeting createNew(final CalendarInstance calendarInstance, final Date meetingDate, Boolean isTransactionDateOnNonMeetingDate) {
if (!isValidMeetingDate(calendarInstance, meetingDate)) { throw new NotValidRecurringDateException("meeting", "The date '" if (!isTransactionDateOnNonMeetingDate && !isValidMeetingDate(calendarInstance, meetingDate)) { throw new NotValidRecurringDateException("meeting", "The date '"
+ meetingDate + "' is not a valid meeting date.", meetingDate); } + meetingDate + "' is not a valid meeting date.", meetingDate); }
return new Meeting(calendarInstance, meetingDate); return new Meeting(calendarInstance, meetingDate);
} }
@@ -11,6 +11,7 @@ import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.calendarId
import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.clientIdParamName; import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.clientIdParamName;
import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.clientsAttendanceParamName; import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.clientsAttendanceParamName;
import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.meetingDateParamName; import static org.mifosplatform.portfolio.meeting.MeetingApiConstants.meetingDateParamName;
import static org.mifosplatform.portfolio.collectionsheet.CollectionSheetConstants.isTransactionDateOnNonMeetingDateParamName;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
@@ -81,11 +82,12 @@ public class MeetingWritePlatformServiceJpaRepositoryImpl implements MeetingWrit
this.meetingDataValidator.validateForCreate(command); this.meetingDataValidator.validateForCreate(command);
final Date meetingDate = command.DateValueOfParameterNamed(meetingDateParamName); final Date meetingDate = command.DateValueOfParameterNamed(meetingDateParamName);
final Boolean isTransactionDateOnNonMeetingDate = false;
try { try {
final CalendarInstance calendarInstance = getCalendarInstance(command); final CalendarInstance calendarInstance = getCalendarInstance(command);
// create new meeting // create new meeting
final Meeting newMeeting = Meeting.createNew(calendarInstance, meetingDate); final Meeting newMeeting = Meeting.createNew(calendarInstance, meetingDate, isTransactionDateOnNonMeetingDate);
final Collection<ClientAttendance> clientsAttendance = getClientsAttendance(newMeeting, command); final Collection<ClientAttendance> clientsAttendance = getClientsAttendance(newMeeting, command);
if (clientsAttendance != null && !clientsAttendance.isEmpty()) { if (clientsAttendance != null && !clientsAttendance.isEmpty()) {
@@ -261,13 +263,14 @@ public class MeetingWritePlatformServiceJpaRepositoryImpl implements MeetingWrit
@Override @Override
public void updateCollectionSheetAttendance(final JsonCommand command) { public void updateCollectionSheetAttendance(final JsonCommand command) {
final Date meetingDate = command.DateValueOfParameterNamed(transactionDateParamName); final Date meetingDate = command.DateValueOfParameterNamed(transactionDateParamName);
final Boolean isTransactionDateOnNonMeetingDate = command.booleanPrimitiveValueOfParameterNamed(isTransactionDateOnNonMeetingDateParamName);
try { try {
final CalendarInstance calendarInstance = getCalendarInstance(command); final CalendarInstance calendarInstance = getCalendarInstance(command);
final Meeting meeting = this.meetingRepository.findByCalendarInstanceIdAndMeetingDate(calendarInstance.getId(), meetingDate); final Meeting meeting = this.meetingRepository.findByCalendarInstanceIdAndMeetingDate(calendarInstance.getId(), meetingDate);
// create new meeting // create new meeting
final Meeting newMeeting = (meeting != null) ? meeting : Meeting.createNew(calendarInstance, meetingDate); final Meeting newMeeting = (meeting != null) ? meeting : Meeting.createNew(calendarInstance, meetingDate, isTransactionDateOnNonMeetingDate);
final Collection<ClientAttendance> clientsAttendance = getClientsAttendance(newMeeting, command); final Collection<ClientAttendance> clientsAttendance = getClientsAttendance(newMeeting, command);
if (clientsAttendance != null && !clientsAttendance.isEmpty()) { if (clientsAttendance != null && !clientsAttendance.isEmpty()) {