Report related changes
This commit is contained in:
@@ -45,9 +45,6 @@ group = 'org.mifosplatform'
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
maven {
|
||||
url "http://nexus.pentaho.org/content/repositories/pentaho-public-release-repos/"
|
||||
}
|
||||
// mavenLocal() // useful for local dev using MariaDB4j SNAPSHOTs (not needed for real-world non-SNAPHOT builds)
|
||||
}
|
||||
|
||||
@@ -97,11 +94,6 @@ task dist(type:Zip){
|
||||
include '**/*'
|
||||
into('apps')
|
||||
}
|
||||
from('src/main/pentahoReports/') {
|
||||
fileMode = 0755
|
||||
include '*'
|
||||
into('pentahoReports')
|
||||
}
|
||||
from('../api-docs/') {
|
||||
fileMode = 0755
|
||||
include '*'
|
||||
@@ -122,20 +114,7 @@ task dist(type:Zip){
|
||||
into(baseName + '-' + version)
|
||||
}
|
||||
|
||||
task deployPentahoReports() {
|
||||
def pentahoReportDir = System.properties['user.home'] + System.properties['file.separator'] + '.mifosx' + System.properties['file.separator'] + 'pentahoReports'
|
||||
copy {
|
||||
from "src/main/pentahoReports"
|
||||
into pentahoReportDir
|
||||
}
|
||||
|
||||
doLast {
|
||||
println ':deployPentahoReports - moving pentaho reports under: ' + pentahoReportDir
|
||||
}
|
||||
}
|
||||
|
||||
war {
|
||||
it.dependsOn deployPentahoReports
|
||||
war.finalizedBy(bootRepackage)
|
||||
}
|
||||
|
||||
|
||||
@@ -50,22 +50,6 @@ dependencies {
|
||||
[group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'],
|
||||
// [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion],
|
||||
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'],
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions', version: '3.9.1-GA'],
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions-scripting', version: '3.9.1-GA'],
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-wizard-core', version: '3.9.1-GA'],
|
||||
[group: 'pentaho-report-designer', name: 'pentaho-reporting-engine-wizard-xul', version: '3.9.1-GA'],
|
||||
|
||||
[group: 'pentaho-library', name: 'libbase', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libdocbundle', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libfonts', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libformat', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libformula', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libloader', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'librepository', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libserializer', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libsparkline', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libxml', version: '1.2.8'],
|
||||
|
||||
[group: 'org.apache.poi',name: 'poi', version: '3.9'],
|
||||
[group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'],
|
||||
|
||||
@@ -49,23 +49,7 @@ dependencies {
|
||||
[group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'],
|
||||
[group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion],
|
||||
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'],
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions', version: '3.9.1-GA'],
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions-scripting', version: '3.9.1-GA'],
|
||||
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-wizard-core', version: '3.9.1-GA'],
|
||||
[group: 'pentaho-report-designer', name: 'pentaho-reporting-engine-wizard-xul', version: '3.9.1-GA'],
|
||||
|
||||
[group: 'pentaho-library', name: 'libbase', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libdocbundle', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libfonts', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libformat', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libformula', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libloader', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'librepository', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libserializer', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libsparkline', version: '1.2.8'],
|
||||
[group: 'pentaho-library',name: 'libxml', version: '1.2.8'],
|
||||
|
||||
|
||||
[group: 'org.apache.poi',name: 'poi', version: '3.9'],
|
||||
[group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'],
|
||||
[group: 'org.apache.poi',name: 'poi-ooxml-schemas', version: '3.9'],
|
||||
|
||||
+14
-18
@@ -7,7 +7,6 @@ package org.mifosplatform.infrastructure.dataqueries.api;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -30,6 +29,8 @@ import org.mifosplatform.infrastructure.dataqueries.data.GenericResultsetData;
|
||||
import org.mifosplatform.infrastructure.dataqueries.data.ReportData;
|
||||
import org.mifosplatform.infrastructure.dataqueries.service.GenericDataService;
|
||||
import org.mifosplatform.infrastructure.dataqueries.service.ReadReportingService;
|
||||
import org.mifosplatform.infrastructure.report.provider.ReportingProcessServiceProvider;
|
||||
import org.mifosplatform.infrastructure.report.service.ReportingProcessService;
|
||||
import org.mifosplatform.infrastructure.security.exception.NoAuthorizationException;
|
||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.mifosplatform.useradministration.domain.AppUser;
|
||||
@@ -46,14 +47,17 @@ public class RunreportsApiResource {
|
||||
private final ToApiJsonSerializer<ReportData> toApiJsonSerializer;
|
||||
private final ReadReportingService readExtraDataAndReportingService;
|
||||
private final GenericDataService genericDataService;
|
||||
private final ReportingProcessServiceProvider reportingProcessServiceProvider;
|
||||
|
||||
@Autowired
|
||||
public RunreportsApiResource(final PlatformSecurityContext context, final ReadReportingService readExtraDataAndReportingService,
|
||||
final GenericDataService genericDataService, final ToApiJsonSerializer<ReportData> toApiJsonSerializer) {
|
||||
final GenericDataService genericDataService, final ToApiJsonSerializer<ReportData> toApiJsonSerializer,
|
||||
final ReportingProcessServiceProvider reportingProcessServiceProvider) {
|
||||
this.context = context;
|
||||
this.readExtraDataAndReportingService = readExtraDataAndReportingService;
|
||||
this.genericDataService = genericDataService;
|
||||
this.toApiJsonSerializer = toApiJsonSerializer;
|
||||
this.reportingProcessServiceProvider = reportingProcessServiceProvider;
|
||||
}
|
||||
|
||||
@GET
|
||||
@@ -74,12 +78,9 @@ public class RunreportsApiResource {
|
||||
String parameterTypeValue = null;
|
||||
if (!parameterType) {
|
||||
parameterTypeValue = "report";
|
||||
if (this.readExtraDataAndReportingService.getReportType(reportName).equalsIgnoreCase("Pentaho")) {
|
||||
final Map<String, String> reportParams = getReportParams(queryParams, true);
|
||||
final Locale locale = ApiParameterHelper.extractLocale(queryParams);
|
||||
return this.readExtraDataAndReportingService.processPentahoRequest(reportName, queryParams.getFirst("output-type"),
|
||||
reportParams, locale);
|
||||
}
|
||||
String reportType = this.readExtraDataAndReportingService.getReportType(reportName);
|
||||
ReportingProcessService reportingProcessService = this.reportingProcessServiceProvider.findReportingProcessService(reportType);
|
||||
if (reportingProcessService != null) { return reportingProcessService.processRequest(reportName, queryParams); }
|
||||
} else {
|
||||
parameterTypeValue = "parameter";
|
||||
}
|
||||
@@ -87,7 +88,7 @@ public class RunreportsApiResource {
|
||||
// PDF format
|
||||
|
||||
if (exportPdf) {
|
||||
final Map<String, String> reportParams = getReportParams(queryParams, false);
|
||||
final Map<String, String> reportParams = getReportParams(queryParams);
|
||||
final String pdfFileName = this.readExtraDataAndReportingService
|
||||
.retrieveReportPDF(reportName, parameterTypeValue, reportParams);
|
||||
|
||||
@@ -102,7 +103,7 @@ public class RunreportsApiResource {
|
||||
}
|
||||
|
||||
if (!exportCsv) {
|
||||
final Map<String, String> reportParams = getReportParams(queryParams, false);
|
||||
final Map<String, String> reportParams = getReportParams(queryParams);
|
||||
|
||||
final GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName,
|
||||
parameterTypeValue, reportParams);
|
||||
@@ -124,7 +125,7 @@ public class RunreportsApiResource {
|
||||
}
|
||||
|
||||
// CSV Export
|
||||
final Map<String, String> reportParams = getReportParams(queryParams, false);
|
||||
final Map<String, String> reportParams = getReportParams(queryParams);
|
||||
final StreamingOutput result = this.readExtraDataAndReportingService
|
||||
.retrieveReportCSV(reportName, parameterTypeValue, reportParams);
|
||||
|
||||
@@ -143,7 +144,7 @@ public class RunreportsApiResource {
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, String> getReportParams(final MultivaluedMap<String, String> queryParams, final Boolean isPentaho) {
|
||||
private Map<String, String> getReportParams(final MultivaluedMap<String, String> queryParams) {
|
||||
|
||||
final Map<String, String> reportParams = new HashMap<>();
|
||||
final Set<String> keys = queryParams.keySet();
|
||||
@@ -152,12 +153,7 @@ public class RunreportsApiResource {
|
||||
for (final String k : keys) {
|
||||
|
||||
if (k.startsWith("R_")) {
|
||||
if (isPentaho) {
|
||||
pKey = k.substring(2);
|
||||
} else {
|
||||
pKey = "${" + k.substring(2) + "}";
|
||||
}
|
||||
|
||||
pKey = "${" + k.substring(2) + "}";
|
||||
pValue = queryParams.get(k).get(0);
|
||||
reportParams.put(pKey, pValue);
|
||||
}
|
||||
|
||||
-4
@@ -6,10 +6,8 @@
|
||||
package org.mifosplatform.infrastructure.dataqueries.service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
|
||||
import org.mifosplatform.infrastructure.dataqueries.data.GenericResultsetData;
|
||||
@@ -22,8 +20,6 @@ public interface ReadReportingService {
|
||||
|
||||
GenericResultsetData retrieveGenericResultset(String name, String type, Map<String, String> extractedQueryParams);
|
||||
|
||||
Response processPentahoRequest(String reportName, String outputType, Map<String, String> queryParams, Locale locale);
|
||||
|
||||
String retrieveReportPDF(String name, String type, Map<String, String> extractedQueryParams);
|
||||
|
||||
String getReportType(String reportName);
|
||||
|
||||
+1
-174
@@ -6,34 +6,24 @@
|
||||
package org.mifosplatform.infrastructure.dataqueries.service;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.sql.Connection;
|
||||
import java.sql.Date;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
||||
import org.mifosplatform.infrastructure.core.domain.MifosPlatformTenant;
|
||||
import org.mifosplatform.infrastructure.core.domain.MifosPlatformTenantConnection;
|
||||
import org.mifosplatform.infrastructure.core.exception.PlatformDataIntegrityException;
|
||||
import org.mifosplatform.infrastructure.core.service.RoutingDataSource;
|
||||
import org.mifosplatform.infrastructure.core.service.ThreadLocalContextUtil;
|
||||
import org.mifosplatform.infrastructure.dataqueries.data.GenericResultsetData;
|
||||
import org.mifosplatform.infrastructure.dataqueries.data.ReportData;
|
||||
import org.mifosplatform.infrastructure.dataqueries.data.ReportParameterData;
|
||||
@@ -44,20 +34,6 @@ import org.mifosplatform.infrastructure.dataqueries.exception.ReportNotFoundExce
|
||||
import org.mifosplatform.infrastructure.documentmanagement.contentrepository.FileSystemContentRepository;
|
||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.mifosplatform.useradministration.domain.AppUser;
|
||||
import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot;
|
||||
import org.pentaho.reporting.engine.classic.core.DefaultReportEnvironment;
|
||||
import org.pentaho.reporting.engine.classic.core.MasterReport;
|
||||
import org.pentaho.reporting.engine.classic.core.ReportProcessingException;
|
||||
import org.pentaho.reporting.engine.classic.core.modules.output.pageable.pdf.PdfReportUtil;
|
||||
import org.pentaho.reporting.engine.classic.core.modules.output.table.csv.CSVReportUtil;
|
||||
import org.pentaho.reporting.engine.classic.core.modules.output.table.html.HtmlReportUtil;
|
||||
import org.pentaho.reporting.engine.classic.core.modules.output.table.xls.ExcelReportUtil;
|
||||
import org.pentaho.reporting.engine.classic.core.parameters.ParameterDefinitionEntry;
|
||||
import org.pentaho.reporting.engine.classic.core.parameters.ReportParameterDefinition;
|
||||
import org.pentaho.reporting.engine.classic.core.util.ReportParameterValues;
|
||||
import org.pentaho.reporting.libraries.resourceloader.Resource;
|
||||
import org.pentaho.reporting.libraries.resourceloader.ResourceException;
|
||||
import org.pentaho.reporting.libraries.resourceloader.ResourceManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -80,14 +56,10 @@ public class ReadReportingServiceImpl implements ReadReportingService {
|
||||
private final DataSource dataSource;
|
||||
private final PlatformSecurityContext context;
|
||||
private final GenericDataService genericDataService;
|
||||
private boolean noPentaho = false;
|
||||
|
||||
@Autowired
|
||||
public ReadReportingServiceImpl(final PlatformSecurityContext context, final RoutingDataSource dataSource,
|
||||
final GenericDataService genericDataService) {
|
||||
// kick off pentaho reports server
|
||||
ClassicEngineBoot.getInstance().start();
|
||||
this.noPentaho = false;
|
||||
|
||||
this.context = context;
|
||||
this.dataSource = dataSource;
|
||||
@@ -223,7 +195,7 @@ public class ReadReportingServiceImpl implements ReadReportingService {
|
||||
|
||||
final SqlRowSet rs = this.jdbcTemplate.queryForRowSet(inputSqlWrapped);
|
||||
|
||||
if (rs.next()) { return rs.getString("the_sql"); }
|
||||
if (rs.next() && rs.getString("the_sql") != null) { return rs.getString("the_sql"); }
|
||||
throw new ReportNotFoundException(inputSql);
|
||||
}
|
||||
|
||||
@@ -240,151 +212,6 @@ public class ReadReportingServiceImpl implements ReadReportingService {
|
||||
throw new ReportNotFoundException(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Response processPentahoRequest(final String reportName, final String outputTypeParam, final Map<String, String> queryParams,
|
||||
final Locale locale) {
|
||||
|
||||
String outputType = "HTML";
|
||||
if (StringUtils.isNotBlank(outputTypeParam)) {
|
||||
outputType = outputTypeParam;
|
||||
}
|
||||
|
||||
if (!(outputType.equalsIgnoreCase("HTML") || outputType.equalsIgnoreCase("PDF") || outputType.equalsIgnoreCase("XLS")
|
||||
|| outputType.equalsIgnoreCase("XLSX") || outputType.equalsIgnoreCase("CSV"))) { throw new PlatformDataIntegrityException(
|
||||
"error.msg.invalid.outputType", "No matching Output Type: " + outputType); }
|
||||
|
||||
if (this.noPentaho) { throw new PlatformDataIntegrityException("error.msg.no.pentaho", "Pentaho is not enabled",
|
||||
"Pentaho is not enabled"); }
|
||||
|
||||
final String reportPath = FileSystemContentRepository.MIFOSX_BASE_DIR + File.separator + "pentahoReports" + File.separator
|
||||
+ reportName + ".prpt";
|
||||
logger.info("Report path: " + reportPath);
|
||||
|
||||
// load report definition
|
||||
final ResourceManager manager = new ResourceManager();
|
||||
manager.registerDefaults();
|
||||
Resource res;
|
||||
|
||||
try {
|
||||
res = manager.createDirectly(reportPath, MasterReport.class);
|
||||
final MasterReport masterReport = (MasterReport) res.getResource();
|
||||
final DefaultReportEnvironment reportEnvironment = (DefaultReportEnvironment) masterReport.getReportEnvironment();
|
||||
if (locale != null) {
|
||||
reportEnvironment.setLocale(locale);
|
||||
}
|
||||
addParametersToReport(masterReport, queryParams);
|
||||
|
||||
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
|
||||
if ("PDF".equalsIgnoreCase(outputType)) {
|
||||
PdfReportUtil.createPDF(masterReport, baos);
|
||||
return Response.ok().entity(baos.toByteArray()).type("application/pdf").build();
|
||||
}
|
||||
|
||||
if ("XLS".equalsIgnoreCase(outputType)) {
|
||||
ExcelReportUtil.createXLS(masterReport, baos);
|
||||
return Response.ok().entity(baos.toByteArray()).type("application/vnd.ms-excel")
|
||||
.header("Content-Disposition", "attachment;filename=" + reportName.replaceAll(" ", "") + ".xls").build();
|
||||
}
|
||||
|
||||
if ("XLSX".equalsIgnoreCase(outputType)) {
|
||||
ExcelReportUtil.createXLSX(masterReport, baos);
|
||||
return Response.ok().entity(baos.toByteArray()).type("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||
.header("Content-Disposition", "attachment;filename=" + reportName.replaceAll(" ", "") + ".xlsx").build();
|
||||
}
|
||||
|
||||
if ("CSV".equalsIgnoreCase(outputType)) {
|
||||
CSVReportUtil.createCSV(masterReport, baos, "UTF-8");
|
||||
return Response.ok().entity(baos.toByteArray()).type("text/csv")
|
||||
.header("Content-Disposition", "attachment;filename=" + reportName.replaceAll(" ", "") + ".csv").build();
|
||||
}
|
||||
|
||||
if ("HTML".equalsIgnoreCase(outputType)) {
|
||||
HtmlReportUtil.createStreamHTML(masterReport, baos);
|
||||
return Response.ok().entity(baos.toByteArray()).type("text/html").build();
|
||||
}
|
||||
} catch (final ResourceException e) {
|
||||
throw new PlatformDataIntegrityException("error.msg.reporting.error", e.getMessage());
|
||||
} catch (final ReportProcessingException e) {
|
||||
throw new PlatformDataIntegrityException("error.msg.reporting.error", e.getMessage());
|
||||
} catch (final IOException e) {
|
||||
throw new PlatformDataIntegrityException("error.msg.reporting.error", e.getMessage());
|
||||
}
|
||||
|
||||
throw new PlatformDataIntegrityException("error.msg.invalid.outputType", "No matching Output Type: " + outputType);
|
||||
}
|
||||
|
||||
private void addParametersToReport(final MasterReport report, final Map<String, String> queryParams) {
|
||||
|
||||
final AppUser currentUser = this.context.authenticatedUser();
|
||||
|
||||
try {
|
||||
|
||||
final ReportParameterValues rptParamValues = report.getParameterValues();
|
||||
final ReportParameterDefinition paramsDefinition = report.getParameterDefinition();
|
||||
|
||||
/*
|
||||
* only allow integer, long, date and string parameter types and
|
||||
* assume all mandatory - could go more detailed like Pawel did in
|
||||
* Mifos later and could match incoming and pentaho parameters
|
||||
* better... currently assuming they come in ok... and if not an
|
||||
* error
|
||||
*/
|
||||
for (final ParameterDefinitionEntry paramDefEntry : paramsDefinition.getParameterDefinitions()) {
|
||||
final String paramName = paramDefEntry.getName();
|
||||
if (!((paramName.equals("tenantUrl")) || (paramName.equals("userhierarchy") || (paramName.equals("username")) || (paramName
|
||||
.equals("password") || (paramName.equals("userid")))))) {
|
||||
logger.info("paramName:" + paramName);
|
||||
final String pValue = queryParams.get(paramName);
|
||||
if (StringUtils.isBlank(pValue)) { throw new PlatformDataIntegrityException("error.msg.reporting.error",
|
||||
"Pentaho Parameter: " + paramName + " - not Provided"); }
|
||||
|
||||
final Class<?> clazz = paramDefEntry.getValueType();
|
||||
logger.info("addParametersToReport(" + paramName + " : " + pValue + " : " + clazz.getCanonicalName() + ")");
|
||||
if (clazz.getCanonicalName().equalsIgnoreCase("java.lang.Integer")) {
|
||||
rptParamValues.put(paramName, Integer.parseInt(pValue));
|
||||
} else if (clazz.getCanonicalName().equalsIgnoreCase("java.lang.Long")) {
|
||||
rptParamValues.put(paramName, Long.parseLong(pValue));
|
||||
} else if (clazz.getCanonicalName().equalsIgnoreCase("java.sql.Date")) {
|
||||
rptParamValues.put(paramName, Date.valueOf(pValue));
|
||||
} else {
|
||||
rptParamValues.put(paramName, pValue);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// tenant database name and current user's office hierarchy
|
||||
// passed as parameters to allow multitenant penaho reporting
|
||||
// and
|
||||
// data scoping
|
||||
final Connection connection = this.dataSource.getConnection();
|
||||
String tenantUrl;
|
||||
try {
|
||||
tenantUrl = connection.getMetaData().getURL();
|
||||
} finally {
|
||||
connection.close();
|
||||
}
|
||||
final String userhierarchy = currentUser.getOffice().getHierarchy();
|
||||
logger.info("db URL:" + tenantUrl + " userhierarchy:" + userhierarchy);
|
||||
rptParamValues.put("userhierarchy", userhierarchy);
|
||||
|
||||
final Long userid = currentUser.getId();
|
||||
logger.info("db URL:" + tenantUrl + " userid:" + userid);
|
||||
rptParamValues.put("userid", userid);
|
||||
|
||||
final MifosPlatformTenant tenant = ThreadLocalContextUtil.getTenant();
|
||||
final MifosPlatformTenantConnection tenantConnection = tenant.getConnection();
|
||||
|
||||
rptParamValues.put("tenantUrl", tenantUrl);
|
||||
rptParamValues.put("username", tenantConnection.getSchemaUsername());
|
||||
rptParamValues.put("password", tenantConnection.getSchemaPassword());
|
||||
} catch (final Exception e) {
|
||||
logger.error("error.msg.reporting.error:" + e.getMessage());
|
||||
throw new PlatformDataIntegrityException("error.msg.reporting.error", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String retrieveReportPDF(final String reportName, final String type, final Map<String, String> queryParams) {
|
||||
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package org.mifosplatform.infrastructure.report.annotation;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
@Documented
|
||||
public @interface ReportService {
|
||||
|
||||
/**
|
||||
* @return the type of the report
|
||||
*/
|
||||
String type();
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package org.mifosplatform.infrastructure.report.provider;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.mifosplatform.infrastructure.report.annotation.ReportService;
|
||||
import org.mifosplatform.infrastructure.report.service.ReportingProcessService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@Scope("singleton")
|
||||
public class ReportingProcessServiceProvider implements ApplicationContextAware {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ReportingProcessServiceProvider.class);
|
||||
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
Map<String, String> reportingProcessServices = null;
|
||||
|
||||
ReportingProcessServiceProvider() {
|
||||
super();
|
||||
}
|
||||
|
||||
public ReportingProcessService findReportingProcessService(final String reportType) {
|
||||
if (this.reportingProcessServices.containsKey(reportType)) { return (ReportingProcessService) this.applicationContext
|
||||
.getBean(this.reportingProcessServices.get(reportType)); }
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||
this.applicationContext = applicationContext;
|
||||
this.initializeRegistry();
|
||||
}
|
||||
|
||||
private void initializeRegistry() {
|
||||
if (this.reportingProcessServices == null) {
|
||||
this.reportingProcessServices = new HashMap<>();
|
||||
|
||||
final String[] reportServiceBeans = this.applicationContext.getBeanNamesForAnnotation(ReportService.class);
|
||||
if (ArrayUtils.isNotEmpty(reportServiceBeans)) {
|
||||
for (final String reportName : reportServiceBeans) {
|
||||
LOGGER.info("Register report service '" + reportName + "' ...");
|
||||
final ReportService service = this.applicationContext.findAnnotationOnBean(reportName, ReportService.class);
|
||||
try {
|
||||
this.reportingProcessServices.put(service.type(), reportName);
|
||||
} catch (final Throwable th) {
|
||||
LOGGER.error("Unable to register reporting service '" + reportName + "'!", th);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
package org.mifosplatform.infrastructure.report.service;
|
||||
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
public interface ReportingProcessService {
|
||||
|
||||
Response processRequest(String reportName, MultivaluedMap<String, String> queryParams);
|
||||
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,26 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.loan.Officer=Loan Officer
|
||||
label.column.client=Client
|
||||
label.column.Loan.Account.No=Loan Account No.
|
||||
label.column.Product=Product
|
||||
label.column.Fund=Fund
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Disbursed.Date=Disbursed Date
|
||||
label.column.Expected.Matured.On=Expected Matured On
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
label.groupby.Branch=Branch
|
||||
label.title.Active.Loans.Details=Active Loans - Details
|
||||
lable.group.tolat=Total
|
||||
Binary file not shown.
@@ -1,25 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.No.of.Clients=No. of Clients
|
||||
label.column.No.Active.Loans=No. Active Loans
|
||||
label.column.No.of.Loans.in.Arrears=No. of Loans in Arrears
|
||||
label.column.Total.Loans.Disbursed=Total Loans Disbursed
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Total.Interest=Total Interest
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Total.Fees=Total Fees
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Total.Penalties=Total Penalties
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
label.column.Portfolio.at.Risk%=Portfolio at Risk %
|
||||
label.groupby.column.Branch=Branch
|
||||
|
||||
label.title.Active.Loans.Details=Active Loan-Summary
|
||||
BIN
Binary file not shown.
-25
@@ -1,25 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.No.of.Clients=No. of Clients
|
||||
label.column.No.Active.Loans=No. Active Loans
|
||||
label.column.No.of.Loans.in.Arrears=No. of Loans in Arrears
|
||||
label.column.Total.Loans.Disbursed=Total Loans Disbursed
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Total.Interest=Total Interest
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Total.Fees=Total Fees
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Total.Penalties=Total Penalties
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
label.column.Portfolio.at.Risk%=Portfolio at Risk %
|
||||
lable.title.Active.Loans.Passed.Final.Maturity.Summary=Active Loans Passed Final Maturity Summary
|
||||
|
||||
|
||||
BIN
Binary file not shown.
-27
@@ -1,27 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.column.Client=Client
|
||||
label.column.Loan.Account.No=Loan Account No.
|
||||
label.column.Product=Product
|
||||
label.column.Fund=Fund
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Disbursed.Date=Disbursed Date
|
||||
label.column.Expected.Matured.On=Expected Matured On
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
|
||||
lable.title.Active.Loans.Passed.Final.Maturity=Active Loans Passed Final Maturity
|
||||
|
||||
lable.title.group.Branch=Branch
|
||||
BIN
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Client.Account.No=Client Account No
|
||||
label.column.Client=Client
|
||||
label.column.Loan.Account.No=Loan Account No
|
||||
label.column.Product=Product
|
||||
label.column.Fund=Fund
|
||||
label.column.Loan.Principal.Amount=Loan Principal Amount
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Disbursed.Date=Disbursed Date
|
||||
label.column.Total.Loan(P+I+F+Pen)=Total Loan (P+I+F+Pen)
|
||||
label.column.Total.Repaid(P+I+F+Pen)=Total Repaid (P+I+F+Pen)
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.title.Active.Loans.by.Disbursal.Period=Active Loans by Disbursal Period
|
||||
lable.grouptotal.by.date=Total
|
||||
lable.grouptotal.by.Branch= Branch Total
|
||||
label.groupby.column.Disbursed.Date=Disbursed Date
|
||||
label.groupby.column.Branch=Branch
|
||||
lable.title.Disbursal.Period.from=Disbursal Period from
|
||||
lable.title.Disbursal.Period.to=To
|
||||
BIN
Binary file not shown.
-24
@@ -1,24 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.No.of.Clients=No. of Clients
|
||||
label.column.No.Active.Loans=No. Active Loans
|
||||
label.column.No.of.Loans.in.Arrears=No. of Loans in Arrears
|
||||
label.column.Total.Loans.Disbursed=Total Loans Disbursed
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Total.Interest=Total Interest
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Total.Fees=Total Fees
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Total.Penalties=Total Penalties
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
label.column.Portfolio.at.Risk%=Portfolio at Risk %
|
||||
label.groupby.column.Branch=Branch
|
||||
lable.title.Active.Loans.In.Last.Installment.Summary=Active Loans In Last Installment Summary
|
||||
BIN
Binary file not shown.
@@ -1,26 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.column.Client.Account.No=Client Account No
|
||||
label.column.Client=Client
|
||||
label.column.Loan.Account.No=Loan Account No
|
||||
label.column.Product=Product
|
||||
label.column.Fund=Fund
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Disbursed=Disbursed
|
||||
label.column.Expected.Matured.On=Expected Matured On
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
label.groupby.column.Branch=Branch
|
||||
lable.title.Active.Loans.In.Last.Installment=Active Loans In Last Installment
|
||||
@@ -1,16 +0,0 @@
|
||||
active_loan_summery.=Active Loan Summary per Branch
|
||||
branch.=Branch
|
||||
centers.=No of Centers
|
||||
groups.=No of Groups
|
||||
clients.=No of Clients
|
||||
activeloan.=No of Active Loan
|
||||
loanarrears.=No of Loan in Arrears
|
||||
disbursed.=Total Loans Disbursed
|
||||
principalrepaid.=Total Principal Repaid
|
||||
interestrepaid.=Total Interest Repaid
|
||||
principaloutstand.=Total Principal Outstanding
|
||||
interestoutstand.=Total Interest Outstanding
|
||||
amountarreas.=Amount in Arrears
|
||||
total.=Total
|
||||
PrintedBy\:=Printed By :
|
||||
On\:=On :
|
||||
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Client.Name=Client Name
|
||||
label.column.Account.Number=Account Number
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Original.Principal=Original Principal
|
||||
label.column.Original.Interest=Original Interest
|
||||
label.column.Principal.Paid=Principal Paid
|
||||
label.column.Interest.Paid=Interest Paid
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Days.in.Arrears=Days in Arrears
|
||||
label.column.Weeks.In.Arrears.Band=Weeks In Arrears Band
|
||||
label.column.Days.in.Arrears.Band=Days in Arrears Band
|
||||
|
||||
|
||||
lable.title.Aging.Detail=Aging Detail
|
||||
|
||||
lable.title.group.Branch=Branch
|
||||
BIN
Binary file not shown.
@@ -1,12 +0,0 @@
|
||||
label.column.currency=currency
|
||||
label.column.Days.In.Arrears=Days In Arrears
|
||||
label.column.No.Of.Loans=No Of Loans
|
||||
label.column.Original.Principal=Original Principal
|
||||
label.column.Original.Interest=Original Interest
|
||||
label.column.Principal.Paid=Principal Paid
|
||||
label.column.Interest.Paid=Interest Paid
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
lable.title.Aging.Summary.Months=Aging Summary (Arrears in Months)
|
||||
|
||||
lable.title.group.Branch=Branch
|
||||
BIN
Binary file not shown.
@@ -1,13 +0,0 @@
|
||||
label.column.Currency=Currency
|
||||
label.column.Weeks.In.Arrears=Weeks In Arrears(Up To)
|
||||
label.column.N.Of.Loans=No Of Loans
|
||||
label.column.Original.Principal=Original Principal
|
||||
label.column.Original.Interest=Original Interest
|
||||
label.column.Principal.Paid=Principal Paid
|
||||
label.column.Interest.Paid=Interest Paid
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
|
||||
lable.title.Aging.Summary.in.Weeks=Aging Summary (Arrears in Weeks)
|
||||
|
||||
lable.title.group.Branch=Branch
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,10 +0,0 @@
|
||||
label.column.ID=ID
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Name=Name
|
||||
label.column.Status=Status
|
||||
label.column.Activation=Activation
|
||||
label.column.External.Id=External Id
|
||||
|
||||
lable.title.Client.Listing=Client Listing
|
||||
lable.title.group.Branch=Branch
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
label.column.Transaction.ID=Transaction ID
|
||||
label.column.Transaction.Date=Transaction Date
|
||||
label.column.Transaction.Type=Transaction Type
|
||||
label.column.Debit=Debit
|
||||
label.column.Credit=Credit
|
||||
label.column.Balance=Balance
|
||||
label.column.Reversed=Reversed
|
||||
lable.title.Saving.Transaction=Client Saving Transaction
|
||||
lable.title.Transaction.from=From :
|
||||
lable.title.Saving.Transaction.To= To :
|
||||
lable.title.Client.Name=Client Name
|
||||
lable.title.Savings.Account.Name/No=Account Name/No
|
||||
lable.title.Branch=Branch
|
||||
lable.title.Staff=Staff
|
||||
lable.title.Interest=Interest Rate
|
||||
lable.title.Balance=Balance
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
|
||||
Binary file not shown.
@@ -1,18 +0,0 @@
|
||||
label.column.Transaction.ID=Transaction Id
|
||||
label.column.Transaction.Date=Date de transaction
|
||||
label.column.Transaction.Type=Type de transaction
|
||||
label.column.Debit=Débit
|
||||
label.column.Credit=Crédit
|
||||
label.column.Balance=Solde
|
||||
label.column.Reversed=Reversed
|
||||
lable.title.Transaction.from=À partir de la date :
|
||||
lable.title.Saving.Transaction.To= Jusqu’à la date :
|
||||
lable.title.Client.Name=Client Nom
|
||||
lable.title.Savings.Account.Name/No=Account Name/No
|
||||
lable.title.Branch=Branch
|
||||
lable.title.Staff=Staff
|
||||
lable.title.Interest=Interest Rate
|
||||
lable.title.Balance=Balance
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
collection.=Collection Report
|
||||
receipt.=Receipt No
|
||||
group.=Group Name
|
||||
client.=Clients Name
|
||||
loanAccNo.=Loan Account No
|
||||
pricAmt.=Principal Amount
|
||||
intAmt.=Interest Amount
|
||||
totalAmt.=Total Receipt Amount
|
||||
feeAmt.=Fees
|
||||
penaltyAmt.=Penalty
|
||||
others.=Others
|
||||
mifos.=Mifos User
|
||||
actdate.=Action Date
|
||||
created.=Created Date
|
||||
office.=Branch :
|
||||
ondate.=From :
|
||||
todate.=To :
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
center\:=Center :
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
disbursalReport=Disbursal Report
|
||||
receiptNo=Receipt No:
|
||||
phoneNo=Phone No:
|
||||
accountId=Account ID:
|
||||
clientGroup=Client/Group
|
||||
loanAmount=Loan Amount
|
||||
disbDate=Disbursed Date
|
||||
loanType=Loan Type
|
||||
loanOfficer=Loan Officer
|
||||
PrintedBy\:=Printed By :
|
||||
On\:=On :
|
||||
center\:=Center :
|
||||
centerName=Center Name
|
||||
groupName=Group Name
|
||||
disbursedAmount=Disbursed Amount
|
||||
clientName=Client Name
|
||||
serviceTax=Service Tax
|
||||
annualSubscription=Annual Subscription
|
||||
processingFees=Processing Fees
|
||||
disbursedDate=Disbursed Date
|
||||
createdDate=Created Date
|
||||
mifosUser=Mifos User
|
||||
fees=Fees
|
||||
BIN
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
|
||||
label.column.Office=Office
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.column.Client.Account.Number=Client Account Number
|
||||
label.column.Name=Name
|
||||
label.column.Product=Product
|
||||
label.column.Loan.Account.Number=Loan Account Number
|
||||
label.column.Due.Date=Due Date
|
||||
label.column.Installment=Installment
|
||||
label.column.Currency=Currency
|
||||
label.column.Principal.Due=Principal Due
|
||||
label.column.Interest.Due=Interest Due
|
||||
label.column.Fees.Due=Fees Due
|
||||
label.column.Penalty.Due=Penalty Due
|
||||
label.column.Total.Due=Total Due
|
||||
label.column.Total.Overdue=Total Overdue
|
||||
|
||||
|
||||
lable.title.Expected.Payments.By.Date.Basic=Expected Payments By Date - Basic
|
||||
lable.title.group.Branch=Branch
|
||||
Binary file not shown.
BIN
Binary file not shown.
-8
@@ -1,8 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Fund=Fund
|
||||
label.column.Currency=Currency
|
||||
label.column.Disbursed.amount=Disbursed_amount
|
||||
|
||||
|
||||
lable.title.Funds.Disbursed.Between.Dates.Summary.by.Office=Funds Disbursed Between Dates Summary by Office
|
||||
|
||||
BIN
Binary file not shown.
-4
@@ -1,4 +0,0 @@
|
||||
label.column.Fund=Fund
|
||||
label.column.Currency=Currency
|
||||
label.column.disbursed_amount=disbursed_amount
|
||||
lable.title.Funds.Disbursed.Between.Dates.Summary=Funds Disbursed Between Dates Summary
|
||||
@@ -1,18 +0,0 @@
|
||||
lable.detail.Vch_No_Unit=Vch No./Unit
|
||||
lable.detail.AC.code=GL Code
|
||||
lable.detail.Account_Description=Account Description
|
||||
lable.detail.Narration=Description
|
||||
lable.detail.Debits=Debits
|
||||
lable.detail.Credits=Credits
|
||||
lable.detail.Opening_Balance=BALANCE BROUGHT FORWARD (b/f)
|
||||
lable.detail.Day_Total=Day Total
|
||||
lable.detail.Closing_Balance=Closing Balance
|
||||
lable.detail.date=Date
|
||||
lable.detail.Cash_Book_From=Ledger Report From Date :
|
||||
lable.detail.Run_Date=Run Date :
|
||||
lable.detail.Cash_Code= Ledger Account :
|
||||
lable.header=GENERAL LEDGER REPORT
|
||||
lable.page=Page No
|
||||
lable.detail.AfterTxn=Balance
|
||||
lable.detail.office = Office :
|
||||
lable.detail.todate = To Date :
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
Loan_Account_Statement.=Loan Account Statement
|
||||
Date.=Date
|
||||
type.=Type
|
||||
disbur.=Disbursement
|
||||
repayment.=Repayment
|
||||
contra.=Contra
|
||||
waiveint=WaiveInterest
|
||||
repaydisbur=Repayment At Disburesement
|
||||
writeoff.=Write-off
|
||||
marked_resch.=Marked for Rescheduling
|
||||
recover.=Recover Repayment
|
||||
waive_cha.=Waive Charges
|
||||
apply_char.=Apply charges
|
||||
apply_int.=Apply Interest
|
||||
description.=Description
|
||||
amount.=Amount
|
||||
principal.=Principal
|
||||
interest.=Interest
|
||||
recepit_no.=Recepit No
|
||||
paymentype.=Payment Type
|
||||
Binary file not shown.
@@ -1,42 +0,0 @@
|
||||
title.Loan.Transaction.Receipt=Receipt
|
||||
label.ClientName=Client Name:
|
||||
label.ClientAccountNumber=Client Account Number:
|
||||
label.ProductName=Client Account Title:
|
||||
label.Operation=Operation:
|
||||
label.Operation.Deposit=Deposit
|
||||
label.Operation.Withdrawal=Withdrawal
|
||||
label.Operation.Amount=Amount:
|
||||
label.Operation.Amount.InFigures=In Figures:
|
||||
label.Operation.Amount.InWords=In Words:
|
||||
label.Operation.Description=Description:
|
||||
label.receipt.text1=Your account has been
|
||||
label.receipt.credited=credited
|
||||
label.receipt.debited=debited
|
||||
label.receipt.text2= with
|
||||
label.receipt.text.dot=.
|
||||
label.receipt.ClientName=Client Name and Signature
|
||||
label.receipt.TxnDateTime=Date and Time of Transaction:
|
||||
label.receipt.Operator=Cashier Name:
|
||||
label.receipt.TxnID=Transaction ID:
|
||||
txn_type.1=Disbursement
|
||||
txn_type.2=Repayment
|
||||
txn_type.3=Contra
|
||||
txn_type.4=Waive Interest
|
||||
txn_type.5=Repayment At Disbursement
|
||||
txn_type.6=Write-Off
|
||||
txn_type.7=Marked for Rescheduling
|
||||
txn_type.8=Recovery Repayment
|
||||
txn_type.9=Waive Charges
|
||||
txn_type.10=Apply Charges
|
||||
txn_type.11=Apply Interest
|
||||
accounting_txn_type.1=debited
|
||||
accounting_txn_type.2=credited
|
||||
accounting_txn_type.3=contra-ed
|
||||
accounting_txn_type.4=credited
|
||||
accounting_txn_type.5=credited
|
||||
accounting_txn_type.6=credited
|
||||
accounting_txn_type.7=credited
|
||||
accounting_txn_type.8=debited
|
||||
accounting_txn_type.9=credited
|
||||
accounting_txn_type.10=debitd
|
||||
accounting_txn_type.11=debited
|
||||
Binary file not shown.
BIN
Binary file not shown.
-12
@@ -1,12 +0,0 @@
|
||||
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Product=Product
|
||||
label.column.Currency=Currency
|
||||
|
||||
label.column.Year=Year
|
||||
label.column.Month=Month
|
||||
label.column.Principal=Principal
|
||||
|
||||
lable.title.Loans.Awaiting.Disbursal.Summary.by.Month=Loans Awaiting Disbursal Summary by Month
|
||||
lable.Group.title.Branch=Branch
|
||||
|
||||
BIN
Binary file not shown.
@@ -1,13 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Product=Product
|
||||
label.column.Currency=Currency
|
||||
label.column.Fund=Fund
|
||||
label.column.Principal=Principal
|
||||
lable.title.Loans.Awaiting.Disbursal.Summary=Loans Awaiting Disbursal Summary
|
||||
lable.Group.title.Branch=Branch
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,24 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Client.Account.No=Client Account No
|
||||
label.column.Name=Name
|
||||
label.column.Loan.Account.No=Loan Account No.
|
||||
label.column.Product=Product
|
||||
label.column.Fund=Fund
|
||||
label.column.Currency=Currency
|
||||
label.column.Principal=Principal
|
||||
label.column.Term.Frequency=Term Frequency
|
||||
label.column.Term.Frequency.Period=Term Frequency Period
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Approved=Approved
|
||||
label.column.Days.to.Disbursal=Days to Disbursal
|
||||
label.column.Expected.Disbursal=Expected Disbursal
|
||||
label.column.Loan.Purpose=Loan Purpose
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.group.title.Branch.Name=Branch Name
|
||||
|
||||
|
||||
lable.title.Loans.Awaiting.Disbursal=Loans Awaiting Disbursal
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,18 +0,0 @@
|
||||
label.column.Branch/Office=Branch/Office
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Client.Name=Client Name
|
||||
label.column.Currency=Currency
|
||||
label.column.Product=Product
|
||||
label.column.Loan.Account.No=Loan Account No.
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Term.Frequency=Term Frequency
|
||||
label.column.Term.Frequency.Period=Term Frequency Period
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Days.Pending.Approval=Days Pending Approval
|
||||
label.column.Loan.Purpose=Loan Purpose
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
|
||||
label.group.title.Branch.Name=Branch Name
|
||||
|
||||
|
||||
lable.title.Loans.Pending.Approval=Loans Pending Approval
|
||||
Binary file not shown.
@@ -1,22 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Client=Client
|
||||
label.column.Loan.Account.No=Loan Account No.
|
||||
label.column.Product=Product
|
||||
label.column.Fund=Fund
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Total.Repaid=Total Repaid
|
||||
label.column.Annual.Nominal.Interest.Rate=Annual Nominal Interest Rate
|
||||
label.column.Disbursed=Disbursed
|
||||
label.column.Closed=Closed
|
||||
label.column.Principal.Repaid=Principal Repaid
|
||||
label.column.Interest.Repaid=Interest Repaid
|
||||
label.column.Fees.Repaid=Fees Repaid
|
||||
label.column.Penalties.Repaid=Penalties Repaid
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.group.title.Branch.Name=Branch Name
|
||||
|
||||
|
||||
lable.title.Obligation.Met.Loans.Details=Obligation Met Loans Details
|
||||
|
||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.No.of.Clients=No. of Clients
|
||||
label.column.Total.Loan.Amount=Total Loan Amount
|
||||
label.column.Total.Principal.Repaid=Total Principal Repaid
|
||||
label.column.Total.Interest.Repaid=Total Interest Repaid
|
||||
label.column.Total.Fees.Repaid=Total Fees Repaid
|
||||
label.column.Total.Penalties.Repaid=Total Penalties Repaid
|
||||
label.column.Total.Interest.Waived=Total Interest Waived
|
||||
label.column.Total.Fees.Waived=Total Fees Waived
|
||||
label.column.Total.Penalties.Waived=Total Penalties Waived
|
||||
label.group.title.Branch=Branch
|
||||
label.column.
|
||||
|
||||
|
||||
lable.title.Obligation.Met.Loans.Summary=Obligation Met Loans Summary
|
||||
|
||||
Binary file not shown.
@@ -1,15 +0,0 @@
|
||||
label.group.title.Branch=Branch
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
|
||||
|
||||
|
||||
lable.title.Portfolio.At.Risk.By.Branch=Portfolio At Risk By Branch
|
||||
Binary file not shown.
@@ -1,16 +0,0 @@
|
||||
label.column.Currency=Currency
|
||||
label.column.Principal.Outstanding=Principal Outstanding
|
||||
label.column.Principal.Overdue=Principal Overdue
|
||||
label.column.Interest.Outstanding=Interest Outstanding
|
||||
label.column.Interest.Overdue=Interest Overdue
|
||||
label.column.Fees.Outstanding=Fees Outstanding
|
||||
label.column.Fees.Overdue=Fees Overdue
|
||||
label.column.Penalties.Outstanding=Penalties Outstanding
|
||||
label.column.Penalties.Overdue=Penalties Overdue
|
||||
label.column.Portfolio.at.Risk.per=Portfolio at Risk %
|
||||
|
||||
label.group.title.Branch=Branch
|
||||
lable.title.Portfolio.at.Risk=Portfolio at Risk
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Client.Name=Client Name
|
||||
label.column.Loan.AccountNo=Loan Account No.
|
||||
label.column.Product.Name=Product Name
|
||||
label.column.Disbursed.Date=Disbursed Date
|
||||
label.column.Written.Off.date=Written Off date
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Rescheduled.Principal=Rescheduled Principal
|
||||
label.column.Rescheduled.Interest=Rescheduled Interest
|
||||
label.column.Rescheduled.Fees=Rescheduled Fees
|
||||
label.column.Rescheduled.Penalties=Rescheduled Penalties
|
||||
label.column.Reason.For.Rescheduling=Reason For Rescheduling
|
||||
label.columnLoan.Officer.Name=Loan Officer Name
|
||||
label.group.title.Branch=Branch
|
||||
lable.title.Rescheduled.Loans=Rescheduled Loans
|
||||
@@ -1,9 +0,0 @@
|
||||
Saving_Account_Statement.=Saving Account Statement
|
||||
date.=Date
|
||||
transaction_type=Transaction type
|
||||
receipt_number=Receipt no
|
||||
Description.=Description
|
||||
Credited.=Credited
|
||||
Debited.=Debited
|
||||
Balance.=Balance
|
||||
transaction.=Patment Type
|
||||
Binary file not shown.
@@ -1,14 +0,0 @@
|
||||
label.column.Transaction.ID=Transaction ID
|
||||
label.column.Transaction.Date=Transaction Date
|
||||
label.column.Transaction.Type=Transaction Type
|
||||
label.column.Debit=Debit
|
||||
label.column.Credit=Credit
|
||||
label.column.Balance=Balance
|
||||
label.column.Reversed=Reversed
|
||||
lable.title.Saving.Transaction=Client Saving Transaction
|
||||
lable.title.Transaction.from=Transaction From :
|
||||
lable.title.Saving.Transaction.To= To :
|
||||
lable.title.Client.Name=Client Name :
|
||||
lable.title.Savings.Account.Name/No=Account Name/No. :
|
||||
lable.title.
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
title.Saving.Transaction.Receipt=Receipt
|
||||
label.ClientName=Client Name:
|
||||
label.ClientAccountNumber=Client Account Number:
|
||||
label.ProductName=Client Account Title:
|
||||
label.Operation=Operation:
|
||||
label.Operation.Deposit=Deposit
|
||||
label.Operation.Withdrawal=Withdrawal
|
||||
label.Operation.Amount=Amount:
|
||||
label.Operation.Amount.InFigures=In Figures:
|
||||
label.Operation.Amount.InWords=In Words:
|
||||
label.Operation.Description=Description:
|
||||
label.receipt.text1=Your account has been
|
||||
label.receipt.credited=credited
|
||||
label.receipt.credited=debited
|
||||
label.receipt.text2= with
|
||||
label.receipt.text.dot=.
|
||||
label.receipt.ClientName=Client Name and Signature
|
||||
label.receipt.TxnDateTime=Date and Time of Transaction:
|
||||
label.receipt.Operator=Cashier Name:
|
||||
label.receipt.TxnID=Transaction ID:
|
||||
txn_type.1=Deposit
|
||||
txn_type.2=Withdrawal
|
||||
txn_type.3=Interest Posting
|
||||
accounting_txn_type.1=credited
|
||||
accounting_txn_type.2=debited
|
||||
accounting_txn_type.3=credited
|
||||
test.msg=Your Account has been $(acc_txn_type) with $(txn_amount, number, "#,###.##")
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
label.column.Transaction.Date=Transaction Date
|
||||
label.column.Transaction.Type=Transaction Type
|
||||
label.column.Office=Office
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.column.Loan.Account.No=Loan Account No
|
||||
label.column.Loan.Product=Loan Product
|
||||
label.column.Currency=Currency
|
||||
label.column.Client.Account.No=Client Account No
|
||||
label.column.Client=Client
|
||||
label.column.Amount=Amount
|
||||
label.column.Principal=Principal
|
||||
label.column.Interest=Interest
|
||||
label.column.Outstanding.Principal=Outstanding Principal
|
||||
label.column.Interest.Income=Interest Income
|
||||
label.column.Principal.Write.Off=Principal Write Off
|
||||
label.group.title.Branch=Branch
|
||||
lable.title.Transaction.Running.Balances=Transaction Running Balances
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Currency=Currency
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Client.Name=Client Name
|
||||
label.column.Loan.Account.No.=Loan Account No.
|
||||
label.column.Product.Name=Product Name
|
||||
label.column.Disbursed.Date=Disbursed Date
|
||||
label.column.Written.Off.date=Written Off date
|
||||
label.column.Loan.Amount=Loan Amount
|
||||
label.column.Written.Off.Principal=Written-Off Principal
|
||||
label.column.Written.Off.Interest=Written-Off Interest
|
||||
label.column.Written.Off.Fees=Written-Off Fees
|
||||
label.column.Written.Off.Penalties=Written-Off Penalties
|
||||
label.column.Reason.For.Write.Off=Reason For Write-Off
|
||||
label.column.Loan.Officer.Name=Loan Officer Name
|
||||
label.group.title.Branch=Branch
|
||||
label.title.Written.Off.Loans=Written-Off Loans
|
||||
@@ -1,15 +0,0 @@
|
||||
balanceOutstanding=Balance Outstanding
|
||||
accountId=Account ID:
|
||||
clientGroup=Client/Group
|
||||
loanAmount=Loan Amount
|
||||
balance=Balance
|
||||
loanStatus=Loan Status
|
||||
disbDate=Disbursed Date
|
||||
gender=Gender
|
||||
loanType=Loan Type
|
||||
fundSource=Fund Source
|
||||
loanOfficer=Loan Officer
|
||||
PrintedBy\:=Printed By :
|
||||
On\:=On :
|
||||
center\:=Center :
|
||||
loanpurpose.=Loan Purpose
|
||||
@@ -1,13 +0,0 @@
|
||||
balanceSheet=Balance Sheet
|
||||
glcode=GL CODE
|
||||
name=Name
|
||||
balance=Balance
|
||||
assets=Assets
|
||||
totalAssets=Total Assets :
|
||||
liability=Liabilities
|
||||
totalLiabilities=Total Liabilities :
|
||||
equity=Equities
|
||||
totalEquities=Total Equities :
|
||||
branchName=Branch :
|
||||
asOn=As On :
|
||||
retainedEarnings=Retained Earnings
|
||||
@@ -1,21 +0,0 @@
|
||||
BranchExpectedCashFlow=Branch Expected Cash Flow
|
||||
From=From :
|
||||
To=To:
|
||||
Office=Office:
|
||||
Currency=Currency :
|
||||
Date=Date
|
||||
ExpectedCashIn=Expected Cash In
|
||||
ExpectedCashOut=Expected Cash Out
|
||||
Principle=Principle
|
||||
Interest=Interest
|
||||
ClientFees=CLient Fees
|
||||
LoanFees=Loan Fees
|
||||
Penalty=Penalty
|
||||
LoanDisbursals=Loan Disbursals
|
||||
NetExpectedCashOut=Net Expected Cash Out
|
||||
Total=Total :
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
MFIName\:=MFI Name:
|
||||
Page=Page
|
||||
VersionAt=Version 1.3.1
|
||||
@@ -1,43 +0,0 @@
|
||||
label.column.Office/Branch=Office/Branch
|
||||
label.column.Client.Account.No=Client Account No.
|
||||
label.column.Name=Name
|
||||
label.column.Client.Status=Client Status
|
||||
label.column.Loan.Officer=Loan Officer
|
||||
label.column.Loan.Account.No=Loan Account No.
|
||||
label.column.External.Id=External Id
|
||||
label.column.Loan=Loan
|
||||
label.column.Status=Status
|
||||
label.column.Fund=Fund
|
||||
label.column.Loan.Purpose=Loan Purpose
|
||||
label.column.Currency=Currency
|
||||
label.column.principal_amount=principal_amount
|
||||
label.column.Arrears.Tolerance.Amount=Arrears Tolerance Amount
|
||||
label.column.principal_amount=principal_amount
|
||||
label.column.Annual_Nominal.Interest_Rate=Annual_Nominal Interest_Rate
|
||||
label.column.Nominal.Interest.Rate.Per.Period=Nominal Interest Rate Per Period
|
||||
label.column.Interest.Rate.Frequency=Interest Rate Frequency
|
||||
label.column.Interest.Method=Interest Method
|
||||
label.column.Interest.Calculated.in.Period=Interest Calculated in Period
|
||||
label.column.Term.Frequency=Term Frequency
|
||||
label.column.Term.Frequency.Period=Term Frequency Period
|
||||
label.column.Repayment.Frequency=Repayment Frequency
|
||||
label.column.Repayment.Frequency.Period=Repayment Frequency Period
|
||||
label.column.Amortization=Amortization
|
||||
label.column.Total.Charges.Due.At.Disbursement=Total Charges Due At Disbursement
|
||||
label.column.Submitted=Submitted
|
||||
label.column.Approved=Approved
|
||||
label.column.Expected.Disbursal=Expected Disbursal
|
||||
label.column.Expected.First.Repayment=Expected First Repayment
|
||||
label.column.Interest.Calculated.From=Interest Calculated From
|
||||
label.column.Disbursed=Disbursed
|
||||
label.column.Expected.Maturity=Expected Maturity
|
||||
label.column.Matured.On=Matured On
|
||||
label.column.Closed=Closed
|
||||
label.column.Rejected=Rejected
|
||||
label.column.Rescheduled=Rescheduled
|
||||
label.column.Withdrawn=Withdrawn
|
||||
label.column.Written.Off=Written Off
|
||||
label.column.
|
||||
label.groupby.Branch=Branch
|
||||
label.title.Client.Loans.Listing=Client Loans Listing
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
clientSavingsSummary=Client Savings Summary
|
||||
transactionDate=Transaction Date
|
||||
details=Details
|
||||
totalDebits=Total Debits
|
||||
totalCredits=Total Credits
|
||||
withdrawal=Withdrawal
|
||||
balance=Balance
|
||||
balancebf=Balance B/F
|
||||
From=From :
|
||||
To=To:
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
MFIName\:=MFI Name:
|
||||
Page=Page
|
||||
VersionAt=Version 1.3.1
|
||||
accountNo=Account No:
|
||||
clientName=Client Name
|
||||
product=Product
|
||||
Total=Total :
|
||||
@@ -1,23 +0,0 @@
|
||||
ExpectedPaymentsByDate=Expected Payments By Date
|
||||
From=From :
|
||||
To=To:
|
||||
Office=Office :
|
||||
DueDate=Due Date :
|
||||
ClientName=Client Name
|
||||
LoanAccountNo=Loan Account No:
|
||||
Product=Product
|
||||
Installment=Installment
|
||||
Date=Date
|
||||
Principal=Principal
|
||||
LoanOfficer=Loan Officer
|
||||
Interest=Interest
|
||||
FeesDue=Fees Due
|
||||
PenaltyDue=Penalty Due
|
||||
TotalDue=Total Due
|
||||
TotalOverDue=Total Over Due
|
||||
Total=Total :
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
MFIName\:=MFI Name:
|
||||
Page=Page
|
||||
VersionAt=Version 1.3.1
|
||||
@@ -1,15 +0,0 @@
|
||||
incomeStatement=Income Statement
|
||||
glcode=GL CODE
|
||||
name=Name
|
||||
balance=Balance
|
||||
income=Income
|
||||
totalIncome=Total Income :
|
||||
expenses=Expenses
|
||||
totalExpenses=Total Expenses :
|
||||
netIncome=Net Income :
|
||||
branchName=Branch :
|
||||
period=Period:
|
||||
to=To
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
Page=Page
|
||||
@@ -1,33 +0,0 @@
|
||||
loanAccountSchedule=Loan Account Schedule
|
||||
Office=Office :
|
||||
LoanOfficer=Loan Officer :
|
||||
ClientName=Client Name :
|
||||
FileID=File ID :
|
||||
LoanAccountNumber=Loan Account Number :
|
||||
LoanAmount=Loan Amount :
|
||||
DisbursalDate=Disbursal Date :
|
||||
NoOfInstallments=Number Of Installments :
|
||||
InterestRate=Interest Rate :
|
||||
Installment=Installment
|
||||
Currency=Currency :
|
||||
PrincipleDue=Principle Due
|
||||
InterestDue=Interest Due
|
||||
FeesDue=Fees Due
|
||||
PenaltyDue=Penalty Due
|
||||
TotalDue=Total Due
|
||||
DateExpected=Date Expected
|
||||
Status=Status
|
||||
Total=Total :
|
||||
ActivityDetails=Activity Details
|
||||
Date=Date
|
||||
Comment=Comment
|
||||
Principle=Principle
|
||||
Interest=Interest
|
||||
Fees=Fees
|
||||
Penalty=Penalty
|
||||
TotalPaid=Total Paid
|
||||
TotalOutstanding=Total Outstanding
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
MFIName\:=MFI Name:
|
||||
Page=Page
|
||||
@@ -1,33 +0,0 @@
|
||||
loanAccountSchedule=Loan Account Schedule
|
||||
Office=Bureau :
|
||||
LoanOfficer=Agent de crédit :
|
||||
ClientName=Client Name :
|
||||
FileID=File ID :
|
||||
LoanAccountNumber=Compte de prêt# :
|
||||
LoanAmount=Loan Amount :
|
||||
DisbursalDate=Décaisser Date :
|
||||
NoOfInstallments=Number Of Installments :
|
||||
InterestRate=Interest Rate :
|
||||
Installment=Installment
|
||||
Currency=la devise :
|
||||
PrincipleDue=Capital dû
|
||||
InterestDue=Intérêts dus
|
||||
FeesDue=Fees Due
|
||||
PenaltyDue=Penalty Due
|
||||
TotalDue=Total dû
|
||||
DateExpected=Date Expected
|
||||
Status=Status
|
||||
Total=Total :
|
||||
ActivityDetails=Activity Details
|
||||
Date=Date
|
||||
Comment=Commentaire
|
||||
Principle=Capital
|
||||
Interest=Intérêt
|
||||
Fees=Frais
|
||||
Penalty=Pénalité
|
||||
TotalPaid=Total Payé
|
||||
TotalOutstanding=Total Impayé
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
MFIName\:=MFI Name:
|
||||
Page=Page
|
||||
@@ -1,16 +0,0 @@
|
||||
savingsTransactions=Savings Transactions
|
||||
transactionDate=Transaction Date
|
||||
details=Details
|
||||
deposit=Deposit
|
||||
withdrawal=Withdrawal
|
||||
balance=Balance
|
||||
From=From :
|
||||
To=To:
|
||||
PrintedBy\:=Printed by:
|
||||
On\:=On:
|
||||
MFIName\:=MFI Name:
|
||||
Page=Page
|
||||
VersionAt=Version 1.3.1
|
||||
accountNo=Account No:
|
||||
clientName=Client Name
|
||||
product=Product
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user