package org.mifos.reports.admindocuments.service; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.apache.commons.lang.BooleanUtils; import org.mifos.accounts.business.AccountPaymentEntity; import org.mifos.accounts.business.AccountTrxnEntity; import org.mifos.accounts.persistence.LegacyAccountDao; import org.mifos.core.MifosRuntimeException; import org.mifos.dto.domain.AdminDocumentDto; import org.mifos.framework.exceptions.PersistenceException; import org.mifos.reports.admindocuments.AdminDocumentsServiceFacade; import org.mifos.reports.admindocuments.business.AdminDocumentBO; import org.mifos.reports.admindocuments.persistence.LegacyAdminDocumentDao; import org.springframework.beans.factory.annotation.Autowired; public class AdminDocumentsServiceImpl implements AdminDocumentsServiceFacade { @Autowired private LegacyAccountDao legacyAccountDao; @Autowired private LegacyAdminDocumentDao legacyAdminDocumentDao; @Override public List<AdminDocumentDto> getAdminDocumentsForAccountPayment(Integer paymentId) { try { List<AdminDocumentDto> adminDocuments = new ArrayList<AdminDocumentDto>(); AccountPaymentEntity accountPaymentEntity = legacyAccountDao.findPaymentById(paymentId); Set<AccountTrxnEntity> accountTrxnEntities = accountPaymentEntity.getAccountTrxns(); for (AccountTrxnEntity accountTrxnEntity : accountTrxnEntities) { List<AdminDocumentBO> adminDocumentBOs = legacyAdminDocumentDao .getActiveAdminDocumentsByAccountActionId(accountTrxnEntity.getAccountActionEntity().getId()); if (adminDocumentBOs != null && !adminDocumentBOs.isEmpty()) { for (AdminDocumentBO adminDocumentBO : adminDocumentBOs) { AdminDocumentDto adminDocumentDto = new AdminDocumentDto(adminDocumentBO.getAdmindocId().intValue(), adminDocumentBO.getAdminDocumentName(), adminDocumentBO.getAdminDocumentIdentifier(), BooleanUtils.toBoolean(adminDocumentBO.getIsActive().intValue())); if (!adminDocuments.contains(adminDocumentDto)){ adminDocuments.add(adminDocumentDto); } } } } return adminDocuments; } catch (PersistenceException e) { throw new MifosRuntimeException(e); } } }