package org.egov.commons.entity;
import org.egov.commons.Installment;
import org.egov.infra.admin.master.entity.Module;
import java.util.Calendar;
import java.util.Date;
/**
* @author Ramki
*/
public class InstallmentBuilder {
private final Installment installment;
public InstallmentBuilder() {
installment = new Installment();
}
public Installment build() {
return installment;
}
public InstallmentBuilder withModule(final Module module) {
installment.setModule(module);
return this;
}
public InstallmentBuilder withDescription(final String description) {
installment.setDescription(description);
return this;
}
public InstallmentBuilder withFromDate(final Date fromDate) {
installment.setFromDate(fromDate);
return this;
}
public InstallmentBuilder withToDate(final Date toDate) {
installment.setToDate(toDate);
return this;
}
public InstallmentBuilder withCurrentHalfPeriod(Module module) {
Calendar today = Calendar.getInstance();
Calendar fromDate = Calendar.getInstance();
Calendar toDate = Calendar.getInstance();
int month = today.get(Calendar.MONTH) + 1;
int year = today.get(Calendar.YEAR);
fromDate.set(Calendar.HOUR_OF_DAY, 0);
fromDate.set(Calendar.MINUTE, 0);
fromDate.set(Calendar.SECOND, 0);
toDate.set(Calendar.HOUR_OF_DAY, 23);
toDate.set(Calendar.MINUTE, 59);
toDate.set(Calendar.SECOND, 59);
if (month >= 4 && month <= 9) {
fromDate.set(Calendar.DATE, 1);
fromDate.set(Calendar.MONTH, 3);
fromDate.set(Calendar.YEAR, year);
toDate.set(Calendar.DATE, 30);
toDate.set(Calendar.MONTH, 8);
toDate.set(Calendar.YEAR, year);
} else {
fromDate.set(Calendar.DATE, 1);
fromDate.set(Calendar.MONTH, 9);
fromDate.set(Calendar.YEAR, year-1);
toDate.set(Calendar.DATE, 31);
toDate.set(Calendar.MONTH, 2);
toDate.set(Calendar.YEAR, year);
}
withFromDate(fromDate.getTime());
withToDate(toDate.getTime());
withModule(module);
return this;
}
}