Search in sources :

Example 46 with CustomerException

use of org.mifos.customers.exceptions.CustomerException in project head by mifos.

the class CustomerServiceImpl method updateGroupStatus.

@Override
public final void updateGroupStatus(GroupBO group, CustomerStatus oldStatus, CustomerStatus newStatus, CustomerStatusFlag customerStatusFlag, CustomerNoteEntity customerNote) throws CustomerException {
    validateChangeOfStatusForGroup(group, oldStatus, newStatus);
    CustomerStatusFlagEntity customerStatusFlagEntity = populateCustomerStatusFlag(customerStatusFlag);
    try {
        hibernateTransactionHelper.startTransaction();
        hibernateTransactionHelper.beginAuditLoggingFor(group);
        if (group.isActiveForFirstTime(oldStatus.getValue(), newStatus.getValue())) {
            group.setCustomerActivationDate(new DateTime().toDate());
            group.updateCustomerHierarchy();
            CalendarEvent applicableCalendarEvents = this.holidayDao.findCalendarEventsForThisYearAndNext(group.getOfficeId());
            group.regenerateCustomerFeeSchedule(applicableCalendarEvents);
        }
        Set<CustomerBO> groupChildren = group.getChildren();
        if (oldStatus.isGroupPending() && newStatus.isGroupCancelled() && groupChildren != null) {
            for (CustomerBO child : groupChildren) {
                ClientBO client = (ClientBO) child;
                if (client.isPending()) {
                    client.setUserContext(group.getUserContext());
                    hibernateTransactionHelper.beginAuditLoggingFor(client);
                    client.updateCustomerStatus(CustomerStatus.CLIENT_PARTIAL);
                    customerDao.save(client);
                }
            }
        }
        group.updateCustomerStatus(newStatus, customerNote, customerStatusFlagEntity);
        customerDao.save(group);
        hibernateTransactionHelper.commitTransaction();
    } catch (Exception e) {
        this.hibernateTransactionHelper.rollbackTransaction();
        throw new MifosRuntimeException(e);
    } finally {
        this.hibernateTransactionHelper.closeSession();
    }
}
Also used : ClientBO(org.mifos.customers.client.business.ClientBO) CustomerStatusFlagEntity(org.mifos.customers.business.CustomerStatusFlagEntity) CalendarEvent(org.mifos.calendar.CalendarEvent) CustomerBO(org.mifos.customers.business.CustomerBO) DateTime(org.joda.time.DateTime) InvalidDateException(org.mifos.application.admin.servicefacade.InvalidDateException) BusinessRuleException(org.mifos.service.BusinessRuleException) CustomerException(org.mifos.customers.exceptions.CustomerException) MifosRuntimeException(org.mifos.core.MifosRuntimeException) PersistenceException(org.mifos.framework.exceptions.PersistenceException) AccountException(org.mifos.accounts.exceptions.AccountException) MeetingException(org.mifos.application.meeting.exceptions.MeetingException) ApplicationException(org.mifos.framework.exceptions.ApplicationException) MifosRuntimeException(org.mifos.core.MifosRuntimeException)

Example 47 with CustomerException

use of org.mifos.customers.exceptions.CustomerException in project head by mifos.

the class ClientBO method handleAttendance.

// when this method is called from Bulk Entry preview persist will be false
public void handleAttendance(final Date meetingDate, final Short attendance, final boolean persist) throws CustomerException {
    ClientAttendanceBO clientAttendance = getClientAttendanceForMeeting(meetingDate);
    if (clientAttendance == null) {
        clientAttendance = new ClientAttendanceBO();
        clientAttendance.setMeetingDate(meetingDate);
        addClientAttendance(clientAttendance);
    }
    clientAttendance.setAttendance(attendance);
    if (persist) {
        try {
            getCustomerPersistence().createOrUpdate(this);
        } catch (PersistenceException e) {
            throw new CustomerException(e);
        }
    }
}
Also used : CustomerException(org.mifos.customers.exceptions.CustomerException) PersistenceException(org.mifos.framework.exceptions.PersistenceException)

Example 48 with CustomerException

use of org.mifos.customers.exceptions.CustomerException in project head by mifos.

the class LegacyClientDao method saveClient.

public void saveClient(final ClientBO clientBO) throws CustomerException {
    CustomerPersistence customerPersistence = new CustomerPersistence();
    customerPersistence.saveCustomer(clientBO);
    try {
        if (clientBO.getParentCustomer() != null) {
            customerPersistence.createOrUpdate(clientBO.getParentCustomer());
        }
        // seems fishy... why do savings accounts need updating here?
        new SavingsPersistence().persistSavingAccounts(clientBO);
    } catch (PersistenceException pe) {
        throw new CustomerException(CustomerConstants.CREATE_FAILED_EXCEPTION, pe);
    }
}
Also used : CustomerException(org.mifos.customers.exceptions.CustomerException) SavingsPersistence(org.mifos.accounts.savings.persistence.SavingsPersistence) PersistenceException(org.mifos.framework.exceptions.PersistenceException) CustomerPersistence(org.mifos.customers.persistence.CustomerPersistence)

Example 49 with CustomerException

use of org.mifos.customers.exceptions.CustomerException in project head by mifos.

the class CustomerBO method update.

/**
     * @deprecated - use {@link CustomerDao}.
     */
@Deprecated
public void update() throws CustomerException {
    try {
        setUpdateDetails();
        getCustomerPersistence().createOrUpdate(this);
    } catch (PersistenceException e) {
        throw new CustomerException(CustomerConstants.UPDATE_FAILED_EXCEPTION, e);
    }
}
Also used : CustomerException(org.mifos.customers.exceptions.CustomerException) PersistenceException(org.mifos.framework.exceptions.PersistenceException)

Example 50 with CustomerException

use of org.mifos.customers.exceptions.CustomerException in project head by mifos.

the class CustomerDaoHibernate method validateGroupNameIsNotTakenForOffice.

@SuppressWarnings("unchecked")
@Override
public void validateGroupNameIsNotTakenForOffice(String displayName, Short officeId) throws CustomerException {
    Map<String, Object> queryParameters = new HashMap<String, Object>();
    queryParameters.put(CustomerConstants.DISPLAY_NAME, displayName);
    queryParameters.put(CustomerConstants.OFFICE_ID, officeId);
    List queryResult = this.genericDao.executeNamedQuery("Customer.getGroupCountByGroupNameAndOffice", queryParameters);
    if (Integer.valueOf(queryResult.get(0).toString()) > 0) {
        throw new CustomerException(CustomerConstants.ERRORS_DUPLICATE_CUSTOMER, new Object[] { displayName });
    }
}
Also used : CustomerException(org.mifos.customers.exceptions.CustomerException) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

CustomerException (org.mifos.customers.exceptions.CustomerException)103 Test (org.junit.Test)52 UserContext (org.mifos.security.util.UserContext)29 ClientBO (org.mifos.customers.client.business.ClientBO)23 GroupBuilder (org.mifos.domain.builders.GroupBuilder)21 PersistenceException (org.mifos.framework.exceptions.PersistenceException)21 BusinessRuleException (org.mifos.service.BusinessRuleException)21 CenterBO (org.mifos.customers.center.business.CenterBO)20 GroupBO (org.mifos.customers.group.business.GroupBO)20 AccountException (org.mifos.accounts.exceptions.AccountException)18 CenterBuilder (org.mifos.domain.builders.CenterBuilder)18 ArrayList (java.util.ArrayList)17 MifosRuntimeException (org.mifos.core.MifosRuntimeException)14 AccountFeesEntity (org.mifos.accounts.business.AccountFeesEntity)13 ClientNameDetailDto (org.mifos.dto.screen.ClientNameDetailDto)13 InvalidDateException (org.mifos.application.admin.servicefacade.InvalidDateException)12 MeetingBO (org.mifos.application.meeting.business.MeetingBO)12 PersonnelBO (org.mifos.customers.personnel.business.PersonnelBO)12 MifosUser (org.mifos.security.MifosUser)11 DateTime (org.joda.time.DateTime)10