use of org.mifos.application.master.business.MasterDataEntity in project head by mifos.
the class CustomerDaoHibernate method doFetchListOfMasterDataFor.
@SuppressWarnings("unchecked")
private <T extends MasterDataEntity> List<T> doFetchListOfMasterDataFor(Class<T> type) {
Session session = StaticHibernateUtil.getSessionTL();
List<T> masterEntities = session.createQuery("from " + type.getName()).list();
for (MasterDataEntity masterData : masterEntities) {
Hibernate.initialize(masterData.getNames());
}
return masterEntities;
}
use of org.mifos.application.master.business.MasterDataEntity in project head by mifos.
the class FeeActionStrutsTest method testSuccessfulManage_RateFee.
@Test
public void testSuccessfulManage_RateFee() throws Exception {
fee = TestObjectFactory.createOneTimeRateFee("One Time Fee", FeeCategory.ALLCUSTOMERS, 12.34, FeeFormula.AMOUNT, FeePayment.UPFRONT, null);
LookUpValueEntity lookUpValue = new LookUpValueEntity();
fee.getFeeFrequency().getFeeFrequencyType().setLookUpValue(lookUpValue);
fee.getFeeFrequency().getFeePayment().setLookUpValue(lookUpValue);
((RateFeeBO) fee).getFeeFormula().setLookUpValue(lookUpValue);
String feeId = fee.getFeeId().toString();
request.setAttribute("feeModel", TestObjectFactory.getRateBasedFee(feeId, "StatusID", 12.34, "1"));
request.setAttribute(Constants.CURRENTFLOWKEY, flowKey);
SessionUtils.setAttribute(Constants.BUSINESS_KEY, fee, request);
setRequestPathInfo("/feeaction.do");
addRequestParameter("method", "manage");
addRequestParameter(Constants.CURRENTFLOWKEY, flowKey);
addRequestParameter("feeId", feeId);
actionPerform();
verifyNoActionErrors();
verifyNoActionMessages();
verifyForward(ActionForwards.manage_success.toString());
FeeActionForm actionForm = (FeeActionForm) request.getSession().getAttribute("feeactionform");
Assert.assertEquals("12.34", actionForm.getRate());
Assert.assertEquals("1", actionForm.getFeeFormula());
Assert.assertNull(actionForm.getAmount());
Assert.assertEquals("The size of master data for status", 2, ((List<MasterDataEntity>) SessionUtils.getAttribute(FeeConstants.STATUSLIST, request)).size());
}
use of org.mifos.application.master.business.MasterDataEntity in project head by mifos.
the class InterceptHelper method readFurtherMeta.
private void readFurtherMeta(Object obj, String firstName, String state) {
Class clazz = getClazz(obj);
ClassMetadata customMeta = StaticHibernateUtil.getSessionFactory().getClassMetadata(clazz);
Object[] propertyValues = customMeta.getPropertyValues(obj, EntityMode.POJO);
String[] propertyNames = customMeta.getPropertyNames();
Type[] propertyTypes = customMeta.getPropertyTypes();
String prdStatusName = AuditConstants.PRDSTATUSPATH;
if (obj.getClass().getName().startsWith(prdStatusName)) {
Short id = ((PrdStatusEntity) obj).getOfferingStatusId();
setPrimaryKeyValues(id, firstName.concat(customMeta.getIdentifierPropertyName()), state);
} else {
setPrimaryKeyValues(customMeta, obj, firstName.concat(customMeta.getIdentifierPropertyName()), state);
}
for (int i = 0; i < propertyNames.length; i++) {
logger.debug("readFurtherMeta property : " + propertyNames[i]);
setColumnValues(propertyTypes[i], propertyNames[i], firstName, state, propertyValues[i]);
// Reading masterdata Types
if (propertyTypes[i].isEntityType() && !propertyTypes[i].isComponentType() && propertyValues[i] instanceof MasterDataEntity && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], firstName)) {
populateValueForObjectsOfTypeMasterDataEntity(propertyValues[i], state, firstName.concat(propertyNames[i]));
}
// Reading Collection Types
if (propertyTypes[i].isCollectionType() && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], firstName) && !AuditConfiguration.isObjectPropertiesToBeMerged(entityName, propertyNames[i], firstName)) {
Iterator iterator = ((Set) propertyValues[i]).iterator();
while (iterator.hasNext()) {
Object valueFromSet = iterator.next();
readFurtherMetaForCollectionType(valueFromSet, propertyNames[i], state);
}
}
// Reading Collection Types
if (propertyTypes[i].isCollectionType() && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], firstName) && AuditConfiguration.isObjectPropertiesToBeMerged(entityName, propertyNames[i], firstName)) {
populateAndMergeCollectionTypes(state, propertyValues[i], propertyNames[i], firstName);
}
// Reading further entity type
if (propertyTypes[i].isEntityType() && !propertyTypes[i].isComponentType() && !(propertyValues[i] instanceof MasterDataEntity) && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], firstName)) {
Object obj1 = propertyValues[i];
if (obj1 != null) {
if (obj1 instanceof MeetingBO) {
MeetingBO meeting = (MeetingBO) obj1;
if (propertyNames[i].equalsIgnoreCase("meeting") && meeting.getMeetingId() != null) {
readMeetingEntity(meeting, propertyNames[i], state);
} else {
readFurtherMeta(obj1, propertyNames[i], state);
}
} else {
readFurtherMeta(obj1, propertyNames[i], state);
}
}
}
// Reading further component type
if (!propertyTypes[i].isEntityType() && propertyTypes[i].isComponentType() && !(propertyValues[i] instanceof MasterDataEntity) && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], firstName)) {
Object obj1 = propertyValues[i];
if (obj1 != null) {
readFurtherComponenetMeta(obj1, propertyNames[i], state, propertyTypes[i]);
}
}
// Reading further Money type
if (!propertyTypes[i].isEntityType() && propertyTypes[i].isComponentType() && !(propertyValues[i] instanceof MasterDataEntity) && (propertyValues[i] instanceof Money)) {
Object obj1 = propertyValues[i];
if (obj1 != null) {
readFurtherMoneyType(obj1, firstName.concat(propertyNames[i]), state);
}
}
}
}
use of org.mifos.application.master.business.MasterDataEntity in project head by mifos.
the class InterceptHelper method hibernateMeta.
public Map hibernateMeta(Object object, String state) {
logger.debug("object : " + object);
ClassMetadata customMeta = StaticHibernateUtil.getSessionFactory().getClassMetadata(object.getClass());
Object[] propertyValues = customMeta.getPropertyValues(object, EntityMode.POJO);
String[] propertyNames = customMeta.getPropertyNames();
Type[] propertyTypes = customMeta.getPropertyTypes();
if (state.equalsIgnoreCase(AuditConstants.TRANSACTIONBEGIN)) {
// locale=((BusinessObject)object).getUserContext().getMfiLocale();
locale = ((AbstractBusinessObject) object).getUserContext().getCurrentLocale();
// localeId=((BusinessObject)object).getUserContext().getMfiLocaleId();
localeId = ((AbstractBusinessObject) object).getUserContext().getLocaleId();
logger.debug("initial path class: " + AuditConfiguration.getEntityToClassPath(object.getClass().getName()));
entityName = AuditConfiguration.getEntityToClassPath(object.getClass().getName());
entityId = Integer.valueOf(customMeta.getIdentifier(object, EntityMode.POJO).toString());
}
setPrimaryKeyValues(customMeta, object, customMeta.getIdentifierPropertyName(), state);
for (int i = 0; i < propertyNames.length; i++) {
if (!propertyTypes[i].isEntityType() && !propertyTypes[i].isCollectionType() && !propertyTypes[i].isComponentType()) {
if (state.equalsIgnoreCase(AuditConstants.TRANSACTIONBEGIN)) {
String name = propertyNames[i];
if (AuditConfiguration.checkForPropertyName(entityName, name, localeId)) {
String value = AuditConfiguration.getValueOfCorrespondingId(entityName, name, propertyValues[i], localeId);
initialValues.put(propertyNames[i], value);
} else {
if (propertyValues[i] instanceof Calendar && propertyValues[i] != null) {
initialValues.put(propertyNames[i], ((Calendar) propertyValues[i]).getTime());
} else if (propertyValues[i] instanceof byte[] && propertyValues[i] != null) {
initialValues.put(propertyNames[i], new String((byte[]) propertyValues[i]));
} else if (propertyValues[i] instanceof Date && propertyValues[i] != null) {
try {
Date date = (Date) propertyValues[i];
initialValues.put(propertyNames[i], DateUtils.getUserLocaleDate(locale, new java.sql.Date(date.getTime()).toString()));
} catch (Exception e) {
initialValues.put(propertyNames[i], propertyValues[i].toString());
}
} else {
initialValues.put(propertyNames[i], propertyValues[i]);
}
}
String columnName = AuditConfiguration.getColumnNameForPropertyName(entityName, name);
if (columnName != null && !columnName.equals("")) {
columnNames.put(propertyNames[i], columnName);
} else {
columnNames.put(propertyNames[i], propertyNames[i]);
}
} else {
String name = propertyNames[i];
logger.debug("c hibernateMeta " + name + " : " + propertyValues[i]);
if (AuditConfiguration.checkForPropertyName(entityName, name, localeId)) {
String value = AuditConfiguration.getValueOfCorrespondingId(entityName, name, propertyValues[i], localeId);
changedValues.put(propertyNames[i], value);
} else {
if (propertyValues[i] instanceof Calendar && propertyValues[i] != null) {
changedValues.put(propertyNames[i], ((Calendar) propertyValues[i]).getTime());
} else if (propertyValues[i] instanceof byte[] && propertyValues[i] != null) {
changedValues.put(propertyNames[i], new String((byte[]) propertyValues[i]));
} else if (propertyValues[i] instanceof Date && propertyValues[i] != null) {
try {
Date date = (Date) propertyValues[i];
changedValues.put(propertyNames[i], DateUtils.getUserLocaleDate(locale, new java.sql.Date(date.getTime()).toString()));
} catch (Exception e) {
changedValues.put(propertyNames[i], propertyValues[i].toString());
}
} else {
changedValues.put(propertyNames[i], propertyValues[i]);
}
}
String columnName = AuditConfiguration.getColumnNameForPropertyName(entityName, name);
if (columnName != null && !columnName.equals("")) {
columnNames.put(propertyNames[i], columnName);
} else {
columnNames.put(propertyNames[i], propertyNames[i]);
}
}
}
if (propertyTypes[i].isEntityType() && !propertyTypes[i].isComponentType() && propertyValues[i] instanceof MasterDataEntity && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], null)) {
String personnelStatusName = AuditConstants.PERSONNELSTATUSPATH;
String personnelLevelName = AuditConstants.PERSONNELLEVELPATH;
if (propertyValues[i].getClass().getName().startsWith(personnelStatusName)) {
Short id = ((PersonnelStatusEntity) propertyValues[i]).getId();
populateValueForObjectsOfTypeMasterDataEntity(id, state, propertyNames[i]);
} else if (propertyValues[i].getClass().getName().startsWith(personnelLevelName)) {
Short id = ((PersonnelLevelEntity) propertyValues[i]).getId();
populateValueForObjectsOfTypeMasterDataEntity(id, state, propertyNames[i]);
} else {
populateValueForObjectsOfTypeMasterDataEntity(propertyValues[i], state, propertyNames[i]);
}
}
// Reading Collection Types
if (propertyTypes[i].isCollectionType() && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], null) && AuditConfiguration.isObjectPropertiesToBeMerged(entityName, propertyNames[i], null)) {
populateAndMergeCollectionTypes(state, propertyValues[i], propertyNames[i], null);
}
if (propertyTypes[i].isCollectionType() && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], null) && !AuditConfiguration.isObjectPropertiesToBeMerged(entityName, propertyNames[i], null)) {
Iterator iterator = ((Set) propertyValues[i]).iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
if (obj != null) {
if (obj instanceof LoanOfferingFeesEntity) {
LoanOfferingFeesEntity loanOfferingFeesEntity = (LoanOfferingFeesEntity) obj;
if (propertyNames[i].equalsIgnoreCase("loanOfferingFees") && loanOfferingFeesEntity.getPrdOfferingFeeId() != null) {
readLoanOfferingFeesCollection(loanOfferingFeesEntity, state);
} else {
readFurtherMetaForCollectionType(obj, propertyNames[i], state);
}
} else {
readFurtherMetaForCollectionType(obj, propertyNames[i], state);
}
}
}
}
if (propertyTypes[i].isEntityType() && !propertyTypes[i].isComponentType() && !(propertyValues[i] instanceof MasterDataEntity) && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], null)) {
Object obj = propertyValues[i];
if (obj != null) {
readFurtherMeta(obj, propertyNames[i], state);
}
}
// Reading further Money type
if (!propertyTypes[i].isEntityType() && propertyTypes[i].isComponentType() && !(propertyValues[i] instanceof MasterDataEntity) && (propertyValues[i] instanceof Money)) {
Object obj1 = propertyValues[i];
if (obj1 != null) {
readFurtherMoneyType(obj1, propertyNames[i], state);
}
}
// Reading further component type
if (!propertyTypes[i].isEntityType() && propertyTypes[i].isComponentType() && !(propertyValues[i] instanceof MasterDataEntity) && AuditConfiguration.isObjectToBeLogged(entityName, propertyNames[i], null)) {
Object obj1 = propertyValues[i];
if (obj1 != null) {
readFurtherComponenetMeta(obj1, propertyNames[i], state, propertyTypes[i]);
}
}
}
if (state.equalsIgnoreCase(AuditConstants.TRANSACTIONBEGIN)) {
return initialValues;
} else {
return changedValues;
}
}
use of org.mifos.application.master.business.MasterDataEntity in project head by mifos.
the class PersonAction method load.
@TransactionDemarcate(joinToken = true)
public ActionForward load(ActionMapping mapping, ActionForm form, HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
PersonActionForm personActionForm = (PersonActionForm) form;
Short officeId = getShortValue(personActionForm.getOfficeId());
OfficeBO office = this.officeDao.findOfficeById(officeId);
SessionUtils.setAttribute(PersonnelConstants.OFFICE, office, request);
personActionForm.clear();
//Shahid - keeping the previous session objects for the sake of existing tests, once fully converted to spring
//then we can get rid of the session objects made redundant by the dto
DefinePersonnelDto definePersonnelDto = this.personnelServiceFacade.retrieveInfoForNewUserDefinition(officeId);
SessionUtils.setAttribute("definePersonnelDto", definePersonnelDto, request);
List<ValueListElement> titles = this.customerDao.retrieveTitles();
List<ValueListElement> genders = this.customerDao.retrieveGenders();
List<ValueListElement> maritalStatuses = this.customerDao.retrieveMaritalStatuses();
List<ValueListElement> languages = Localization.getInstance().getLocaleForUI();
List<RoleBO> roles = legacyRolesPermissionsDao.getRoles();
List<PersonnelLevelEntity> personnelLevels = this.customerDao.retrievePersonnelLevels();
SessionUtils.setCollectionAttribute(PersonnelConstants.TITLE_LIST, titles, request);
SessionUtils.setCollectionAttribute(PersonnelConstants.PERSONNEL_LEVEL_LIST, personnelLevels, request);
SessionUtils.setCollectionAttribute(PersonnelConstants.GENDER_LIST, genders, request);
SessionUtils.setCollectionAttribute(PersonnelConstants.MARITAL_STATUS_LIST, maritalStatuses, request);
SessionUtils.setCollectionAttribute(PersonnelConstants.LANGUAGE_LIST, languages, request);
SessionUtils.setCollectionAttribute(PersonnelConstants.ROLES_LIST, roles, request);
SessionUtils.setCollectionAttribute(PersonnelConstants.ROLEMASTERLIST, roles, request);
List<CustomFieldDefinitionEntity> customFieldDefs1 = new ArrayList<CustomFieldDefinitionEntity>();
SessionUtils.setCollectionAttribute(CustomerConstants.CUSTOM_FIELDS_LIST, customFieldDefs1, request);
List<CustomFieldDto> customFields = new ArrayList<CustomFieldDto>();
personActionForm.setCustomFields(customFields);
if (office.getOfficeLevel() != OfficeLevel.BRANCHOFFICE) {
for (MasterDataEntity level : personnelLevels) {
if (level.getId().equals(PersonnelLevel.LOAN_OFFICER.getValue())) {
personnelLevels.remove(level);
break;
}
}
}
personActionForm.setCustomFields(new ArrayList<CustomFieldDto>());
personActionForm.setDateOfJoiningMFI(DateUtils.makeDateAsSentFromBrowser());
return mapping.findForward(ActionForwards.load_success.toString());
}
Aggregations