Search in sources :

Example 6 with HibernateTransactionHelper

use of org.mifos.framework.hibernate.helper.HibernateTransactionHelper in project head by mifos.

the class AdminServiceFacadeWebTier method createSavingsProduct.

@Override
public PrdOfferingDto createSavingsProduct(SavingsProductDto savingsProductRequest) {
    // enforced by integrity constraints on table also.
    this.savingsProductDao.validateProductWithSameNameDoesNotExist(savingsProductRequest.getProductDetails().getName());
    this.savingsProductDao.validateProductWithSameShortNameDoesNotExist(savingsProductRequest.getProductDetails().getShortName());
    // domain rule validation - put on domain entity
    validateStartDateIsNotBeforeToday(savingsProductRequest.getProductDetails().getStartDate());
    validateStartDateIsNotOverOneYearFromToday(savingsProductRequest.getProductDetails().getStartDate());
    validateEndDateIsPastStartDate(savingsProductRequest.getProductDetails().getStartDate(), savingsProductRequest.getProductDetails().getEndDate());
    MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    SavingsOfferingBO savingsProduct = new SavingsProductAssembler(this.loanProductDao, this.savingsProductDao, this.generalLedgerDao).fromDto(user, savingsProductRequest);
    HibernateTransactionHelper transactionHelper = new HibernateTransactionHelperForStaticHibernateUtil();
    try {
        transactionHelper.startTransaction();
        this.savingsProductDao.save(savingsProduct);
        transactionHelper.commitTransaction();
        return savingsProduct.toDto();
    } catch (Exception e) {
        transactionHelper.rollbackTransaction();
        throw new MifosRuntimeException(e);
    } finally {
        transactionHelper.closeSession();
    }
}
Also used : HibernateTransactionHelper(org.mifos.framework.hibernate.helper.HibernateTransactionHelper) HibernateTransactionHelperForStaticHibernateUtil(org.mifos.framework.hibernate.helper.HibernateTransactionHelperForStaticHibernateUtil) SavingsOfferingBO(org.mifos.accounts.productdefinition.business.SavingsOfferingBO) MifosUser(org.mifos.security.MifosUser) SystemException(org.mifos.framework.exceptions.SystemException) MifosRuntimeException(org.mifos.core.MifosRuntimeException) ApplicationException(org.mifos.framework.exceptions.ApplicationException) BusinessRuleException(org.mifos.service.BusinessRuleException) PersistenceException(org.mifos.framework.exceptions.PersistenceException) ServiceException(org.mifos.framework.exceptions.ServiceException) MifosRuntimeException(org.mifos.core.MifosRuntimeException)

Aggregations

MifosRuntimeException (org.mifos.core.MifosRuntimeException)6 ApplicationException (org.mifos.framework.exceptions.ApplicationException)6 PersistenceException (org.mifos.framework.exceptions.PersistenceException)6 ServiceException (org.mifos.framework.exceptions.ServiceException)6 SystemException (org.mifos.framework.exceptions.SystemException)6 HibernateTransactionHelper (org.mifos.framework.hibernate.helper.HibernateTransactionHelper)6 HibernateTransactionHelperForStaticHibernateUtil (org.mifos.framework.hibernate.helper.HibernateTransactionHelperForStaticHibernateUtil)6 MifosUser (org.mifos.security.MifosUser)6 BusinessRuleException (org.mifos.service.BusinessRuleException)6 UserContextFactory (org.mifos.accounts.servicefacade.UserContextFactory)4 UserContext (org.mifos.security.util.UserContext)4 LoanOfferingBO (org.mifos.accounts.productdefinition.business.LoanOfferingBO)2 ProductCategoryBO (org.mifos.accounts.productdefinition.business.ProductCategoryBO)2 SavingsOfferingBO (org.mifos.accounts.productdefinition.business.SavingsOfferingBO)2 LocalDate (org.joda.time.LocalDate)1 PrdOfferingMeetingEntity (org.mifos.accounts.productdefinition.business.PrdOfferingMeetingEntity)1 ProductTypeEntity (org.mifos.accounts.productdefinition.business.ProductTypeEntity)1 MeetingBO (org.mifos.application.meeting.business.MeetingBO)1