Search in sources :

Example 1 with FieldConfig

use of org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig in project head by mifos.

the class InitializerPlugin method initializeFieldConfiguration.

private void initializeFieldConfiguration(ActionServlet servlet) throws HibernateProcessException, ApplicationException {
    FieldConfig fieldConfig = FieldConfig.getInstance();
    fieldConfig.init();
    servlet.getServletContext().setAttribute(Constants.FIELD_CONFIGURATION, fieldConfig.getEntityMandatoryFieldMap());
}
Also used : FieldConfig(org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig)

Example 2 with FieldConfig

use of org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig in project head by mifos.

the class XlsClientsImporter method parse.

public ParsedClientsDto parse(final InputStream input) {
    final List<ValueListElement> buisnessActivitiesList = customerDao.retrieveBusinessActivities();
    final List<ValueListElement> gendersList = customerDao.retrieveGenders();
    final List<ValueListElement> citizenshipsList = customerDao.retrieveCitizenship();
    final List<ValueListElement> ethinicitiesList = customerDao.retrieveEthnicity();
    final List<ValueListElement> educationLevelsList = customerDao.retrieveEducationLevels();
    final List<ValueListElement> handicappedList = customerDao.retrieveHandicapped();
    final List<ValueListElement> povertyStatusList = customerDao.retrievePoverty();
    final List<ValueListElement> maritalStatusList = customerDao.retrieveMaritalStatuses();
    final List<ValueListElement> salutationsList = customerDao.retrieveSalutations();
    final List<OfficeDto> allOfficess = officeDao.findAllOffices();
    final FieldConfig fieldConfig = FieldConfig.getInstance();
    final List<String> globalCustNums = new ArrayList<String>();
    final List<String> errorsList = new ArrayList<String>();
    final List<ImportedClientDetail> parsedClientDetails = new ArrayList<ImportedClientDetail>();
    try {
        final HSSFWorkbook workbook = new HSSFWorkbook(input);
        final HSSFSheet sheet = workbook.getSheetAt(0);
        /* test first data row */
        HSSFRow row = sheet.getRow(XlsImportConstants.FIRST_CLIENT_ROW.value());
        if (row == null) {
            errorsList.add(getMessage(XlsMessageConstants.NOT_ENOUGH_INPUT_ROW));
        }
        @SuppressWarnings("rawtypes") Iterator rowIterator = sheet.rowIterator();
        /* Skip first rows */
        if (errorsList.isEmpty()) {
            for (int i = 0; i < XlsImportConstants.SKIPPED_ROWS.value(); i++) {
                if (rowIterator.hasNext()) {
                    rowIterator.next();
                } else {
                    errorsList.add(getMessage(XlsMessageConstants.NOT_ENOUGH_INPUT_ROW));
                    break;
                }
            }
        }
        XlsImportConstants currentCell = XlsImportConstants.CLIENT_NUM_CELL;
        int friendlyRowNumber = 0;
        /* Parse client data */
        if (errorsList.isEmpty()) {
            while (rowIterator.hasNext()) {
                try {
                    row = (HSSFRow) rowIterator.next();
                    friendlyRowNumber = row.getRowNum() + 1;
                    /* Get data from sheet */
                    currentCell = XlsImportConstants.CLIENT_NUM_CELL;
                    String clientGlobalNum = getCellStringValue(row, currentCell);
                    if (StringUtils.isBlank(clientGlobalNum)) {
                        // generate number
                        clientGlobalNum = null;
                    } else {
                        // check for duplicates
                        validateGlobalCustNum(clientGlobalNum, globalCustNums);
                        globalCustNums.add(clientGlobalNum);
                    }
                    currentCell = XlsImportConstants.BRANCH_SHORT_NAME_CELL;
                    final String branchShortName = getCellStringValue(row, currentCell);
                    final Short branchOfficeId = getBranchId(branchShortName, allOfficess);
                    currentCell = XlsImportConstants.GROUP_GLOBAL_NUM_CELL;
                    final String groupGlobalNum = getCellStringValue(row, currentCell);
                    validateGroup(groupGlobalNum);
                    if (StringUtils.isBlank(groupGlobalNum) && branchOfficeId == null) {
                        String error = getRowError(friendlyRowNumber) + getMessage(XlsMessageConstants.OFFICE_AND_BRANCH);
                        errorsList.add(error);
                        continue;
                    }
                    currentCell = XlsImportConstants.SALUTATION_CELL;
                    final String salutation = getCellStringValue(row, currentCell);
                    final Integer salutationId = getValueElementId(salutation, salutationsList);
                    validateMandatoryField(salutationId);
                    currentCell = XlsImportConstants.FIRST_NAME_CELL;
                    final String clientFirstName = getCellStringValue(row, currentCell);
                    validateMandatoryField(clientFirstName);
                    currentCell = XlsImportConstants.MIDDLE_NAME_CELL;
                    final String clientMiddleName = getCellStringValue(row, currentCell);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.MIDDLE_NAME)) {
                        validateMandatoryField(clientMiddleName);
                    }
                    currentCell = XlsImportConstants.LAST_NAME_CELL;
                    final String clientLastName = getCellStringValue(row, currentCell);
                    validateMandatoryField(clientLastName);
                    currentCell = XlsImportConstants.SECOND_LAST_NAME_CELL;
                    final String clientSecondLastName = getCellStringValue(row, currentCell);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.SECOND_LAST_NAME)) {
                        validateMandatoryField(clientSecondLastName);
                    }
                    currentCell = XlsImportConstants.GOVERNMENT_ID_CELL;
                    String governmentId = getCellStringValue(row, currentCell);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.GOVERNMENT_ID)) {
                        validateMandatoryField(governmentId);
                    }
                    currentCell = XlsImportConstants.DATE_OF_BIRTH_CELL;
                    final Date dateOfBirth = getCellDateValue(row, currentCell);
                    validateMandatoryField(dateOfBirth);
                    validateAge(dateOfBirth);
                    currentCell = XlsImportConstants.GENDER_CELL;
                    final String gender = getCellStringValue(row, currentCell);
                    final Short genderId = intToShort(getValueElementId(gender, gendersList));
                    validateMandatoryField(genderId);
                    currentCell = XlsImportConstants.MARITAL_STATUS_CELL;
                    final String maritalStatus = getCellStringValue(row, currentCell);
                    final Integer maritalStatusId = getValueElementId(maritalStatus, maritalStatusList);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.MARITAL_STATUS)) {
                        validateMandatoryField(maritalStatusId);
                    }
                    currentCell = XlsImportConstants.NUMBER_OF_CHILDREN_CELL;
                    final Short numberOfChildren = intToShort(getCellIntegerValue(row, currentCell));
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.NUMBER_OF_CHILDREN)) {
                        validateMandatoryField(numberOfChildren);
                    }
                    currentCell = XlsImportConstants.CITIZENSHIP_CELL;
                    final String citizenship = getCellStringValue(row, currentCell);
                    final Integer citizenshipId = getValueElementId(citizenship, citizenshipsList);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.CITIZENSHIP)) {
                        validateMandatoryField(citizenshipId);
                    }
                    currentCell = XlsImportConstants.ETHINICITY_CELL;
                    final String ethinicity = getCellStringValue(row, currentCell);
                    final Integer ethinicityId = getValueElementId(ethinicity, ethinicitiesList);
                    if (fieldConfig.isFieldHidden(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.ETHNICITY)) {
                        validateMandatoryField(ethinicityId);
                    }
                    currentCell = XlsImportConstants.EDUCATION_LEVEL_CELL;
                    final String educationLevel = getCellStringValue(row, currentCell);
                    final Integer educationLevelId = getValueElementId(educationLevel, educationLevelsList);
                    if (fieldConfig.isFieldHidden(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.EDUCATION_LEVEL)) {
                        validateMandatoryField(educationLevelId);
                    }
                    currentCell = XlsImportConstants.ACTIVITIES_CELL;
                    final String activites = getCellStringValue(row, currentCell);
                    final Integer activityId = getValueElementId(activites, buisnessActivitiesList);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.BUSINESS_ACTIVITIES)) {
                        validateMandatoryField(activityId);
                    }
                    currentCell = XlsImportConstants.POVERTY_STATUS_CELL;
                    final String povertyStatus = getCellStringValue(row, currentCell);
                    final Short povertyStatusId = intToShort(getValueElementId(povertyStatus, povertyStatusList));
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.POVERTY_STATUS)) {
                        validateMandatoryField(povertyStatusId);
                    }
                    currentCell = XlsImportConstants.HANDICAPPED_CELL;
                    final String handicapped = getCellStringValue(row, currentCell);
                    final Integer handicappedId = getValueElementId(handicapped, handicappedList);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.HANDICAPPED)) {
                        validateMandatoryField(handicappedId);
                    }
                    currentCell = XlsImportConstants.SPOUSE_FATHER_RELATIONSHIP_CELL;
                    final String spouseOrFather = getCellStringValue(row, currentCell);
                    final Short spouseFatherNameType = getSpouseNameType(spouseOrFather);
                    final boolean familyMandatory = fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.FAMILY_DETAILS);
                    if (familyMandatory) {
                        validateMandatoryField(spouseFatherNameType);
                    }
                    currentCell = XlsImportConstants.SPOUSE_FIRST_NAME_CELL;
                    final String spouseFirstName = getCellStringValue(row, currentCell);
                    if (familyMandatory) {
                        validateMandatoryField(spouseFirstName);
                    }
                    currentCell = XlsImportConstants.SPOUSE_MIDDLE_NAME_CELL;
                    final String spouseMiddleName = getCellStringValue(row, currentCell);
                    currentCell = XlsImportConstants.SPOUSE_SECOND_LAST_NAME_CELL;
                    final String spouseSecondLastName = getCellStringValue(row, currentCell);
                    if (familyMandatory && fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.SPOUSE_FATHER_SECOND_LAST_NAME)) {
                        validateMandatoryField(spouseSecondLastName);
                    }
                    currentCell = XlsImportConstants.SPOUSE_LAST_NAME_CELL;
                    final String spouseLastName = getCellStringValue(row, currentCell);
                    if (familyMandatory) {
                        validateMandatoryField(spouseLastName);
                    }
                    currentCell = XlsImportConstants.ADDRESS_CELL;
                    final String address = getCellStringValue(row, currentCell);
                    if (fieldConfig.isFieldManadatory(CLIENT_ENTITY + HiddenMandatoryFieldNamesConstants.ADDRESS1)) {
                        validateMandatoryField(address);
                    }
                    currentCell = XlsImportConstants.CITY_DISTRICT_CELL;
                    final String cityDistrict = getCellStringValue(row, currentCell);
                    currentCell = XlsImportConstants.STATE_CELL;
                    final String state = getCellStringValue(row, currentCell);
                    currentCell = XlsImportConstants.COUNTRY_CELL;
                    final String country = getCellStringValue(row, currentCell);
                    currentCell = XlsImportConstants.POSTAL_CODE_CELL;
                    final String postalCode = getCellStringValue(row, currentCell);
                    currentCell = XlsImportConstants.TELEPHONE_CELL;
                    final String telephone = getCellStringValue(row, currentCell);
                    currentCell = XlsImportConstants.RECRUITED_BY_CELL;
                    final String recruitedBy = getCellStringValue(row, currentCell);
                    validateMandatoryField(recruitedBy);
                    final Short formedBy = getOfficerId(recruitedBy);
                    currentCell = XlsImportConstants.STATUS_CELL;
                    final String status = getCellStringValue(row, currentCell);
                    final Short statusId = statusToShort(status);
                    currentCell = XlsImportConstants.LOAN_OFFICER_CELL;
                    final String loanOfficer = getCellStringValue(row, currentCell);
                    if (!StringUtils.isBlank(groupGlobalNum) && !StringUtils.isBlank(loanOfficer)) {
                        throw new CellException(getMessage(XlsMessageConstants.LOAN_OFFICER_FOR_GROUP_CLIENT));
                    }
                    currentCell = XlsImportConstants.ACTIVATION_DATE_CELL;
                    final LocalDate activationDate = DateUtils.getLocalDateFromDate(getCellDateValue(row, currentCell));
                    if (activationDate != null && !status.equals(getMessage(XlsMessageConstants.ACTIVE))) {
                        throw new CellException(getMessage(XlsMessageConstants.ACTIVE_STATUS_FOR_ACTIVATION_DATE));
                    }
                    /* Meeting data */
                    currentCell = XlsImportConstants.MEETING_FREQUENCY_CELL;
                    final Integer recurrenceType = getRecurrenceType(getCellStringValue(row, currentCell));
                    currentCell = XlsImportConstants.MEETING_RECUR_EVERY_WEEK_CELL;
                    final Integer recurEveryWeek = getCellIntegerValue(row, currentCell);
                    currentCell = XlsImportConstants.MEETING_ON_WEEK_CELL;
                    final Integer weeklyMeetingDay = getDayValue(getCellStringValue(row, currentCell));
                    currentCell = XlsImportConstants.MEETING_OPT1_DAY_CELL;
                    final Integer opt1Day = getCellIntegerValue(row, currentCell);
                    validateMonthDay(opt1Day);
                    currentCell = XlsImportConstants.MEETING_OPT1_EVERY_CELL;
                    final Integer opt1Every = getCellIntegerValue(row, currentCell);
                    validatePositive(opt1Every);
                    currentCell = XlsImportConstants.MEETING_OPT2_THE_CELL;
                    final Integer opt2The = getDayRankValue(getCellStringValue(row, currentCell));
                    currentCell = XlsImportConstants.MEETING_OPT2_DAY_CELL;
                    final Integer opt2Day = getDayValue(getCellStringValue(row, currentCell));
                    currentCell = XlsImportConstants.MEETING_OPT2_EVERY_CELL;
                    final Integer opt2Every = getCellIntegerValue(row, currentCell);
                    validatePositive(opt2Every);
                    currentCell = XlsImportConstants.MEETING_LOCATION_CELL;
                    final String meetingLocation = getCellStringValue(row, currentCell);
                    Integer recurrenceDayNumber = 0;
                    Integer recurrenceWeekOfMonth = 0;
                    Integer recurrenceDayOfWeek = 0;
                    Integer recurEvery = 0;
                    /*
                         * Validate meeting data
                         */
                    if (!StringUtils.isBlank(groupGlobalNum) && recurrenceType != null) {
                        // no meeting allowed for a group
                        throw new RowException(getMessage(XlsMessageConstants.MEETING_FOR_GROUP));
                    } else if (recurrenceType == null) {
                        // make sure everything is empty
                        if (recurEveryWeek != null || weeklyMeetingDay != null || opt1Day != null || opt1Every != null || opt2Day != null || opt2Every != null || opt2The != null || !StringUtils.isBlank(meetingLocation)) {
                            throw new RowException(getMessage(XlsMessageConstants.INCOMPLETE_MEETING_DATA));
                        }
                    } else if (recurrenceType == RecurrenceType.WEEKLY.getValue().intValue()) {
                        // make sure weekly data is set
                        if (recurEveryWeek == null || weeklyMeetingDay == null) {
                            throw new RowException(getMessage(XlsMessageConstants.INCOMPLETE_MEETING_DATA));
                        }
                        // make sure monthly details are empty
                        if (opt1Day != null || opt1Every != null || opt2Day != null || opt2Every != null || opt2The != null) {
                            throw new RowException(getMessage(XlsMessageConstants.MONTHLY_MEETING_DETAILS_NOT_EMPTY));
                        }
                        // set data
                        recurrenceDayOfWeek = weeklyMeetingDay;
                        recurEvery = recurEveryWeek;
                        // validate location
                        validateMandatoryField(meetingLocation);
                    } else {
                        // make sure weekly details are empty
                        if (recurEveryWeek != null || weeklyMeetingDay != null) {
                            throw new RowException(getMessage(XlsMessageConstants.WEEKLY_MEETING_DETAILS_NOT_EMPTY));
                        }
                        if (opt1Day == null) {
                            // make sure option 2 is set
                            if (opt2Day == null || opt2Every == null || opt2The == null) {
                                throw new RowException(getMessage(XlsMessageConstants.INCOMPLETE_MEETING_DATA));
                            }
                            // make sure option 1 is empty
                            if (opt1Every != null) {
                                throw new RowException(getMessage(XlsMessageConstants.OPTIONS_EXCLUSIVE));
                            }
                            // set data
                            recurrenceWeekOfMonth = opt2The;
                            recurrenceDayOfWeek = opt2Day;
                            recurEvery = opt2Every;
                        } else {
                            // make sure option 1 is set
                            if (opt1Every == null) {
                                throw new RowException(getMessage(XlsMessageConstants.INCOMPLETE_MEETING_DATA));
                            }
                            // make sure option 2 is empty
                            if (opt2Day != null || opt2Every != null || opt2The != null) {
                                throw new RowException(getMessage(XlsMessageConstants.OPTIONS_EXCLUSIVE));
                            }
                            // set data
                            recurrenceDayNumber = opt1Day;
                            recurEvery = opt1Every;
                        }
                        // validate location
                        validateMandatoryField(meetingLocation);
                    }
                    /*
                         * Create meeting data
                         */
                    MeetingDto meetingDto = null;
                    if (recurrenceType != null) {
                        final LocalDate meetingStartDate = new LocalDate();
                        final MeetingRecurrenceDto meetingRecurrenceDto = new MeetingRecurrenceDto(recurrenceDayNumber, recurrenceWeekOfMonth, recurrenceDayOfWeek);
                        final MeetingDetailsDto meetingDetailsDto = new MeetingDetailsDto(recurrenceType, null, recurEvery, meetingRecurrenceDto);
                        final MeetingTypeDto meetingTypeDto = new MeetingTypeDto(MeetingType.CUSTOMER_MEETING.getValue().intValue(), null, null);
                        meetingDto = new MeetingDto(meetingStartDate, meetingLocation, meetingTypeDto, meetingDetailsDto);
                    } else {
                    }
                    String clientName = buildName(clientFirstName, clientMiddleName, clientLastName, clientSecondLastName);
                    customerDao.validateClientForDuplicateNameOrGovtId(clientName, dateOfBirth, governmentId);
                    /* Create dto's */
                    /* address */
                    final Address addressObject = new Address(address, null, null, cityDistrict, state, country, postalCode, telephone);
                    final AddressDto addressDto = Address.toDto(addressObject);
                    /* Personal details */
                    final ClientNameDetailDto clientNameDetailDto = new ClientNameDetailDto(CLIENT_NAME_TYPE, salutationId, clientFirstName, clientMiddleName, clientLastName, clientSecondLastName);
                    final ClientPersonalDetailDto clientPersonalDetailDto = new ClientPersonalDetailDto(ethinicityId, citizenshipId, handicappedId, activityId, maritalStatusId, educationLevelId, numberOfChildren, genderId, povertyStatusId);
                    /* Spouse details */
                    ClientNameDetailDto spouseNameDetailDto = null;
                    if (spouseFatherNameType == null) {
                        spouseNameDetailDto = new ClientNameDetailDto();
                        spouseNameDetailDto.setFirstName("");
                        spouseNameDetailDto.setLastName("");
                    } else {
                        spouseNameDetailDto = new ClientNameDetailDto(spouseFatherNameType, null, spouseFirstName, spouseMiddleName, spouseLastName, spouseSecondLastName);
                    }
                    /* branch office */
                    Short officeId = 0;
                    Short loanOfficerId = null;
                    Short groupFlagValue = 1;
                    if (StringUtils.isBlank(groupGlobalNum)) {
                        if (statusId == CustomerStatus.CLIENT_ACTIVE.getValue() && meetingDto == null) {
                            String error = getRowError(friendlyRowNumber) + getMessage(XlsMessageConstants.NO_MEETING_ERROR);
                            errorsList.add(error);
                            continue;
                        }
                        groupFlagValue = 0;
                        officeId = branchOfficeId;
                        List<PersonnelBO> officers = legacyPersonnelDao.getActiveLoanOfficersUnderOffice(officeId);
                        if (officers.isEmpty()) {
                            String error = getCellError(friendlyRowNumber, XlsImportConstants.BRANCH_SHORT_NAME_CELL) + getMessage(XlsMessageConstants.NO_OFFICERS_ERROR, branchShortName);
                            errorsList.add(error);
                            continue;
                        }
                        loanOfficerId = null;
                        for (PersonnelBO officer : officers) {
                            if (officer.getDisplayName().equals(loanOfficer)) {
                                loanOfficerId = officer.getPersonnelId();
                                break;
                            }
                        }
                    } else {
                        validateGroupStatus(groupGlobalNum, statusId);
                    }
                    /* Not imported values */
                    final boolean trained = false;
                    final Date trainedDate = null;
                    final java.sql.Date mfiJoiningDate = null;
                    final String externalId = "";
                    final InputStream picture = null;
                    final List<ApplicableAccountFeeDto> feesToApply = null;
                    final List<ClientNameDetailDto> familyNames = null;
                    final List<ClientFamilyDetailDto> familyDetails = null;
                    final List<Short> selectedSavingsProducts = null;
                    /* Final dto */
                    final ClientCreationDetail clientCreationDetail = new ClientCreationDetail(selectedSavingsProducts, clientName, statusId, mfiJoiningDate, externalId, addressDto, formedBy, dateOfBirth, governmentId, trained, trainedDate, groupFlagValue, clientNameDetailDto, clientPersonalDetailDto, spouseNameDetailDto, picture, feesToApply, groupGlobalNum, familyNames, familyDetails, loanOfficerId, officeId, activationDate);
                    validateDuplicateCustomers(clientCreationDetail, parsedClientDetails);
                    final ImportedClientDetail importedClientDetail = new ImportedClientDetail(clientCreationDetail, clientGlobalNum, meetingDto);
                    parsedClientDetails.add(importedClientDetail);
                } catch (RowException ex) {
                    final String error = getRowError(friendlyRowNumber) + ex.getMessage();
                    errorsList.add(error);
                } catch (CustomerException ex) {
                    final String error = getRowError(friendlyRowNumber) + getMessage(XlsMessageConstants.DUPLICATE_CLIENT_ERROR);
                    errorsList.add(error);
                } catch (Exception ex) {
                    final String error = getCellError(friendlyRowNumber, currentCell) + ex.getMessage();
                    errorsList.add(error);
                }
            }
        }
    } catch (Exception ex) {
        errorsList.add(getMessage(XlsMessageConstants.ERROR_READING_DOCUMENT, ex.getMessage()));
    }
    return new ParsedClientsDto(errorsList, parsedClientDetails);
}
Also used : OfficeDto(org.mifos.dto.domain.OfficeDto) Address(org.mifos.framework.business.util.Address) FieldConfig(org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig) ArrayList(java.util.ArrayList) HSSFRow(org.apache.poi.hssf.usermodel.HSSFRow) HSSFRichTextString(org.apache.poi.hssf.usermodel.HSSFRichTextString) LocalDate(org.joda.time.LocalDate) ClientCreationDetail(org.mifos.dto.domain.ClientCreationDetail) ParsedClientsDto(org.mifos.dto.domain.ParsedClientsDto) ClientFamilyDetailDto(org.mifos.dto.screen.ClientFamilyDetailDto) PersonnelBO(org.mifos.customers.personnel.business.PersonnelBO) ClientNameDetailDto(org.mifos.dto.screen.ClientNameDetailDto) Iterator(java.util.Iterator) MeetingDetailsDto(org.mifos.dto.domain.MeetingDetailsDto) CustomerException(org.mifos.customers.exceptions.CustomerException) InputStream(java.io.InputStream) ClientPersonalDetailDto(org.mifos.dto.screen.ClientPersonalDetailDto) AddressDto(org.mifos.dto.domain.AddressDto) ApplicableAccountFeeDto(org.mifos.dto.domain.ApplicableAccountFeeDto) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) Date(java.util.Date) LocalDate(org.joda.time.LocalDate) CustomerException(org.mifos.customers.exceptions.CustomerException) ConfigurationException(org.mifos.config.exceptions.ConfigurationException) MeetingDto(org.mifos.dto.domain.MeetingDto) MeetingRecurrenceDto(org.mifos.dto.domain.MeetingRecurrenceDto) MeetingTypeDto(org.mifos.dto.domain.MeetingTypeDto) ImportedClientDetail(org.mifos.dto.domain.ImportedClientDetail) HSSFSheet(org.apache.poi.hssf.usermodel.HSSFSheet) ValueListElement(org.mifos.dto.domain.ValueListElement)

Example 3 with FieldConfig

use of org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig in project head by mifos.

the class ClientCustActionStrutsTest method setUp.

@Before
public void setUp() throws Exception {
    userContext = TestObjectFactory.getContext();
    userContext.setPreferredLocale(new Locale("en", "GB"));
    request.getSession().setAttribute(Constants.USERCONTEXT, userContext);
    addRequestParameter("recordLoanOfficerId", "1");
    addRequestParameter("recordOfficeId", "1");
    request.getSession(false).setAttribute("ActivityContext", TestObjectFactory.getActivityContext());
    flowKey = createFlow(request, ClientCustAction.class);
    request.getSession().setAttribute(Constants.USERCONTEXT, userContext);
    EntityMasterData.getInstance().init();
    ClientRules.init();
    FieldConfig fieldConfig = FieldConfig.getInstance();
    fieldConfig.init();
    getActionServlet().getServletContext().setAttribute(Constants.FIELD_CONFIGURATION, fieldConfig.getEntityMandatoryFieldMap());
}
Also used : Locale(java.util.Locale) FieldConfig(org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig) Before(org.junit.Before)

Example 4 with FieldConfig

use of org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig in project head by mifos.

the class MultipleLoanAccountsCreationActionStrutsTest method testCreate.

@SuppressWarnings("unchecked")
@Test
public void testCreate() throws Exception {
    SecurityContext securityContext = new SecurityContextImpl();
    MifosUser principal = new MifosUserBuilder().nonLoanOfficer().withAdminRole().build();
    Authentication authentication = new TestingAuthenticationToken(principal, principal);
    securityContext.setAuthentication(authentication);
    SecurityContextHolder.setContext(securityContext);
    EntityMasterData.getInstance().init();
    FieldConfig fieldConfig = FieldConfig.getInstance();
    fieldConfig.init();
    request.setAttribute(Constants.CURRENTFLOWKEY, flowKey);
    createInitialCustomers();
    LoanOfferingBO loanOffering = getLoanOffering("vcxvxc", "a123", ApplicableTo.CLIENTS, WEEKLY, EVERY_WEEK);
    setRequestPathInfo("/multipleloansaction.do");
    addRequestParameter("method", "get");
    addRequestParameter("branchOfficeId", center.getOffice().getOfficeId().toString());
    addRequestParameter("loanOfficerId", center.getPersonnel().getPersonnelId().toString());
    addRequestParameter("prdOfferingId", loanOffering.getPrdOfferingId().toString());
    SessionUtils.setAttribute(LoanConstants.IS_CENTER_HIERARCHY_EXISTS, Constants.YES, request);
    addRequestParameter("centerId", center.getCustomerId().toString());
    addRequestParameter("centerSearchId", center.getSearchId().toString());
    addRequestParameter(Constants.CURRENTFLOWKEY, flowKey);
    actionPerform();
    setRequestPathInfo("/multipleloansaction.do");
    addRequestParameter("clientDetails[0].loanAmount", loanOffering.getEligibleLoanAmountSameForAllLoan().getDefaultLoanAmount().toString());
    addRequestParameter(Constants.CURRENTFLOWKEY, (String) request.getAttribute(Constants.CURRENTFLOWKEY));
    addRequestParameter("stateSelected", "1");
    addRequestParameter("clientDetails[0].selected", "true");
    addRequestParameter(Constants.CURRENTFLOWKEY, (String) request.getAttribute(Constants.CURRENTFLOWKEY));
    addRequestParameter("method", "create");
    addRequestParameter("stateSelected", "1");
    actionPerform();
    verifyActionErrors(new String[] { LoanExceptionConstants.CUSTOMER_PURPOSE_OF_LOAN_FIELD });
    addRequestParameter("clientDetails[0].businessActivity", "0001");
    performNoErrors();
    verifyForward(ActionForwards.create_success.toString());
    List<String> accountNumbers = ((List<String>) request.getAttribute(LoanConstants.ACCOUNTS_LIST));
    Assert.assertEquals(1, accountNumbers.size());
    LoanBO loan = ApplicationContextProvider.getBean(LoanBusinessService.class).findBySystemId(accountNumbers.get(0));
    Assert.assertEquals(loanOffering.getEligibleLoanAmountSameForAllLoan().getDefaultLoanAmount().toString(), loan.getLoanAmount().toString());
    Assert.assertEquals(loanOffering.getDefInterestRate(), loan.getInterestRate());
    Assert.assertEquals(loanOffering.getEligibleInstallmentSameForAllLoan().getDefaultNoOfInstall(), loan.getNoOfInstallments());
    Assert.assertEquals(Short.valueOf("1"), loan.getGracePeriodDuration());
    Assert.assertEquals(Short.valueOf("1"), loan.getAccountState().getId());
    Assert.assertNull(request.getAttribute(Constants.CURRENTFLOWKEY));
    loan = null;
}
Also used : SecurityContextImpl(org.springframework.security.core.context.SecurityContextImpl) LoanBusinessService(org.mifos.accounts.loan.business.service.LoanBusinessService) Authentication(org.springframework.security.core.Authentication) FieldConfig(org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig) LoanBO(org.mifos.accounts.loan.business.LoanBO) LoanAmountSameForAllLoanBO(org.mifos.accounts.productdefinition.business.LoanAmountSameForAllLoanBO) SecurityContext(org.springframework.security.core.context.SecurityContext) LoanOfferingBO(org.mifos.accounts.productdefinition.business.LoanOfferingBO) MifosUser(org.mifos.security.MifosUser) MifosUserBuilder(org.mifos.builders.MifosUserBuilder) TestingAuthenticationToken(org.springframework.security.authentication.TestingAuthenticationToken) Test(org.junit.Test)

Example 5 with FieldConfig

use of org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig in project head by mifos.

the class GroupActionStrutsTest method setUp.

@Before
public void setUp() throws Exception {
    userContext = TestObjectFactory.getContext();
    request.getSession().setAttribute(Constants.USERCONTEXT, userContext);
    addRequestParameter("recordLoanOfficerId", "1");
    addRequestParameter("recordOfficeId", "1");
    request.getSession(false).setAttribute("ActivityContext", TestObjectFactory.getActivityContext());
    flowKey = createFlow(request, GroupCustAction.class);
    EntityMasterData.getInstance().init();
    FieldConfig fieldConfig = FieldConfig.getInstance();
    fieldConfig.init();
    getActionServlet().getServletContext().setAttribute(Constants.FIELD_CONFIGURATION, fieldConfig.getEntityMandatoryFieldMap());
    SecurityContext securityContext = new SecurityContextImpl();
    MifosUser principal = new MifosUserBuilder().nonLoanOfficer().withAdminRole().build();
    Authentication authentication = new TestingAuthenticationToken(principal, principal);
    securityContext.setAuthentication(authentication);
    SecurityContextHolder.setContext(securityContext);
}
Also used : SecurityContextImpl(org.springframework.security.core.context.SecurityContextImpl) FieldConfig(org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig) Authentication(org.springframework.security.core.Authentication) SecurityContext(org.springframework.security.core.context.SecurityContext) MifosUser(org.mifos.security.MifosUser) MifosUserBuilder(org.mifos.builders.MifosUserBuilder) TestingAuthenticationToken(org.springframework.security.authentication.TestingAuthenticationToken) Before(org.junit.Before)

Aggregations

FieldConfig (org.mifos.framework.components.fieldConfiguration.util.helpers.FieldConfig)8 Before (org.junit.Before)5 MifosUserBuilder (org.mifos.builders.MifosUserBuilder)2 PersonnelBusinessService (org.mifos.customers.personnel.business.service.PersonnelBusinessService)2 MifosUser (org.mifos.security.MifosUser)2 ActivityContext (org.mifos.security.util.ActivityContext)2 TestingAuthenticationToken (org.springframework.security.authentication.TestingAuthenticationToken)2 Authentication (org.springframework.security.core.Authentication)2 SecurityContext (org.springframework.security.core.context.SecurityContext)2 SecurityContextImpl (org.springframework.security.core.context.SecurityContextImpl)2 InputStream (java.io.InputStream)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 Iterator (java.util.Iterator)1 Locale (java.util.Locale)1 HSSFRichTextString (org.apache.poi.hssf.usermodel.HSSFRichTextString)1 HSSFRow (org.apache.poi.hssf.usermodel.HSSFRow)1 HSSFSheet (org.apache.poi.hssf.usermodel.HSSFSheet)1 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)1 LocalDate (org.joda.time.LocalDate)1