use of org.mifos.customers.exceptions.CustomerException in project head by mifos.
the class ClientServiceFacadeWebTier method previewClient.
@Override
public ProcessRulesDto previewClient(String governmentId, DateTime dateOfBirth, String clientName, boolean defaultFeeRemoval, Short officeId, Short loanOfficerId) {
try {
MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserContext userContext = toUserContext(user);
boolean clientPendingApprovalStateEnabled = ProcessFlowRules.isClientPendingApprovalStateEnabled();
boolean governmentIdValidationFailing = false;
boolean duplicateNameOnClosedClient = false;
boolean duplicateNameOnBlackListedClient = false;
boolean governmentIdValidationUnclosedFailing = false;
boolean duplicateNameOnClient = false;
List<ClientBO> matchedClients = new ArrayList<ClientBO>();
List<ClientBO> temp;
if (defaultFeeRemoval) {
customerDao.checkPermissionForDefaultFeeRemoval(userContext, officeId, loanOfficerId);
}
if (StringUtils.isNotBlank(governmentId)) {
temp = this.customerDao.validateGovernmentIdForUnclosedClient(governmentId);
if (temp != null) {
matchedClients.addAll(temp);
}
governmentIdValidationUnclosedFailing = temp != null && temp.size() > 0;
if (!governmentIdValidationUnclosedFailing) {
temp = this.customerDao.validateGovernmentIdForClient(governmentId);
if (temp != null) {
matchedClients.addAll(temp);
}
governmentIdValidationFailing = temp != null && temp.size() > 0;
}
}
if (!governmentIdValidationFailing && !governmentIdValidationUnclosedFailing) {
temp = this.customerDao.validateForBlackListedClientsOnNameAndDob(clientName, dateOfBirth);
if (temp != null) {
matchedClients.addAll(temp);
}
duplicateNameOnBlackListedClient = temp != null && temp.size() > 0;
if (!duplicateNameOnBlackListedClient) {
temp = this.customerDao.validateForClosedClientsOnNameAndDob(clientName, dateOfBirth);
if (temp != null) {
matchedClients.addAll(temp);
}
duplicateNameOnClosedClient = temp != null && temp.size() > 0;
if (!duplicateNameOnClosedClient) {
temp = this.customerDao.validateForClientsOnName(clientName);
if (temp != null) {
matchedClients.addAll(temp);
}
duplicateNameOnClient = temp != null && temp.size() > 0;
}
}
}
List<MatchedClientDto> matched = new ArrayList<MatchedClientDto>();
for (ClientBO client : matchedClients) {
matched.add(new MatchedClientDto(client.getGlobalCustNum(), client.getDisplayName(), client.getAddress().getPhoneNumber(), client.getGovernmentId(), client.getDisplayAddress(), client.getOffice().getOfficeName(), client.getOffice().getGlobalOfficeNum()));
}
return new ProcessRulesDto(clientPendingApprovalStateEnabled, governmentIdValidationFailing, duplicateNameOnClosedClient, duplicateNameOnBlackListedClient, governmentIdValidationUnclosedFailing, duplicateNameOnClient, matched);
} catch (CustomerException e) {
throw new BusinessRuleException(e.getKey(), e);
}
}
use of org.mifos.customers.exceptions.CustomerException in project head by mifos.
the class ClientServiceFacadeWebTier method updateFamilyInfo.
@Override
public void updateFamilyInfo(ClientFamilyInfoUpdate clientFamilyInfoUpdate) {
MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserContext userContext = toUserContext(user);
try {
this.customerService.updateClientFamilyInfo(userContext, clientFamilyInfoUpdate);
} catch (CustomerException e) {
throw new BusinessRuleException(e.getKey(), e);
}
}
use of org.mifos.customers.exceptions.CustomerException in project head by mifos.
the class ClientServiceFacadeWebTier method retreiveClientDetailsForRemovalFromGroup.
@Override
public ClientRemovalFromGroupDto retreiveClientDetailsForRemovalFromGroup(String globalCustNum) {
try {
MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserContext userContext = toUserContext(user);
ClientBO client = this.customerDao.findClientBySystemId(globalCustNum);
client.updateDetails(userContext);
client.checkIfClientIsATitleHolder();
List<OfficeDetailsDto> activeBranches = this.officeDao.findActiveBranches(userContext.getBranchId());
boolean isCenterHierarchyExists = ClientRules.getCenterHierarchyExists();
boolean isActive = client.isActive();
Short loanOfficerId = client.getPersonnel().getPersonnelId();
CenterCreation clientDetails = new CenterCreation(client.getOfficeId(), userContext.getId(), userContext.getLevelId(), userContext.getPreferredLocale());
List<PersonnelDto> loanOfficers = this.personnelDao.findActiveLoanOfficersForOffice(clientDetails);
return new ClientRemovalFromGroupDto(client.getGlobalCustNum(), isActive, isCenterHierarchyExists, loanOfficerId, loanOfficers, activeBranches);
} catch (CustomerException e) {
throw new BusinessRuleException(e.getKey(), e);
}
}
use of org.mifos.customers.exceptions.CustomerException in project head by mifos.
the class ClientBO method createDepositSchedule.
/**
* delete when usage in constructor is removed...
*/
@Deprecated
public void createDepositSchedule(final List<Days> workingDays, final List<Holiday> holidays) throws CustomerException {
try {
if (getParentCustomer() != null) {
List<SavingsBO> savingsList = getCustomerPersistence().retrieveSavingsAccountForCustomer(getParentCustomer().getCustomerId());
if (getParentCustomer().getParentCustomer() != null) {
savingsList.addAll(getCustomerPersistence().retrieveSavingsAccountForCustomer(getParentCustomer().getParentCustomer().getCustomerId()));
}
for (SavingsBO savings : savingsList) {
savings.setUserContext(getUserContext());
savings.generateAndUpdateDepositActionsForClient(this, workingDays, holidays);
}
}
} catch (PersistenceException pe) {
throw new CustomerException(pe);
} catch (AccountException ae) {
throw new CustomerException(ae);
}
}
use of org.mifos.customers.exceptions.CustomerException in project head by mifos.
the class ClientBO method updatePersonalInfo.
public void updatePersonalInfo(ClientPersonalInfoUpdate personalInfo) throws CustomerException {
this.governmentId = personalInfo.getGovernmentId();
try {
setDateOfBirth(DateUtils.getDateAsSentFromBrowser(personalInfo.getDateOfBirth()));
} catch (InvalidDateException e) {
throw new CustomerException(ClientConstants.INVALID_DOB_EXCEPTION);
}
ClientNameDetailDto clientName = personalInfo.getClientNameDetails();
this.getClientName().updateNameDetails(clientName);
this.firstName = clientName.getFirstName();
this.lastName = clientName.getLastName();
this.secondLastName = clientName.getSecondLastName();
if (personalInfo.getSpouseFather() != null) {
// can be null when family details configuration is turned on
if (this.getSpouseName() != null) {
this.getSpouseName().updateNameDetails(personalInfo.getSpouseFather());
} else {
ClientNameDetailEntity spouseFatherNameDetailEntity = new ClientNameDetailEntity(this, personalInfo.getSpouseFather().getSecondLastName(), personalInfo.getSpouseFather());
addNameDetailSet(spouseFatherNameDetailEntity);
}
}
this.updateClientDetails(personalInfo.getClientDetail());
setDisplayName(personalInfo.getClientDisplayName());
Address address = null;
if (personalInfo.getAddress() != null) {
;
}
{
address = new Address(personalInfo.getAddress().getLine1(), personalInfo.getAddress().getLine2(), personalInfo.getAddress().getLine3(), personalInfo.getAddress().getCity(), personalInfo.getAddress().getState(), personalInfo.getAddress().getCountry(), personalInfo.getAddress().getZip(), personalInfo.getAddress().getPhoneNumber());
updateAddress(address);
}
}
Aggregations